JSPM

veratum

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q15150F
  • License MIT

Tamper-proof cryptographic audit trails for AI decisions. One-line integration for OpenAI, Anthropic, and any LLM provider.

Package Exports

  • veratum

Readme

veratum

Tamper-proof cryptographic audit trails for AI decisions. One line of code.

Install

npm install veratum

Quick Start

import { wrap } from 'veratum'
import OpenAI from 'openai'

// Wrap your AI client — receipts generated automatically
const openai = wrap(new OpenAI())

const response = await openai.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'Assess risk for applicant #12345' }]
})
// Cryptographic receipt auto-generated, hash-chained, and uploaded

Works with OpenAI, Anthropic, and any LLM client.

import { wrap } from 'veratum'
import Anthropic from '@anthropic-ai/sdk'

const anthropic = wrap(new Anthropic())
const msg = await anthropic.messages.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Review insurance claim #98765' }]
})

Configuration

Set your API key via environment variable or constructor:

export VERATUM_API_KEY=vrt_your_key_here
import { VeratumClient } from 'veratum'

const client = new VeratumClient({
  apiKey: 'vrt_...',
  vertical: 'insurance',
  endpoint: 'https://...',
})

const ai = client.wrap(new OpenAI(), {
  capturePreview: true,
  onReceipt: (r) => console.log('Receipt:', r.entry_hash),
})

Manual Receipt Creation

const receipt = await client.createReceipt(
  { messages: [{ role: 'user', content: '...' }] },
  { choices: [{ message: { content: '...' } }] },
  { model: 'gpt-4o', jurisdiction: 'EU' }
)

Offline Verification

import { verifyReceipt, verifyChain } from 'veratum'

const result = verifyReceipt(receipt)
// { valid: true, entry_hash_match: true, ... }

const chain = verifyChain([receipt1, receipt2, receipt3])
// { valid: true, chain_intact: true, sequence_valid: true, ... }

How It Works

Every AI call generates a receipt with SHA-256 hashed input/output, hash chain linkage (prev_hash -> entry_hash), timestamps, token counts, and latency. Receipts use RFC 8785 JSON Canonicalization for cross-platform verification. Buffered and uploaded asynchronously with zero impact on AI call latency.

Zero Dependencies

Uses only Node.js built-in crypto. No runtime dependencies.

License

MIT