Skip to content
VeritioDocs

Veritio documentation

Kind
overview
For
newcomer · developer
Verified against
@veritio/core@0.4.7 · veritio@c4100ee

Veritio records application actions as portable evidence: normalized events, deterministic canonical bytes, ordered record chains, relationships, and independently verifiable exports. You can run the core workflow locally without an account.

The TypeScript tutorial is the complete checked path today: create two events, append them through a store, read the resulting records, verify the chain, then prove that changed or missing evidence fails verification.

  1. Install the verified SDK release.
  2. Record two events into one tenant-local chain.
  3. Change and remove records to observe verification failures.
  4. Choose durable storage or an optional managed path.

That sequence is executable from the checked fixtures used by the pages. It is not a prose-only quickstart.

TypeScript, Python, and Go share the portable event, canonical JSON, deterministic redaction, and event-hash semantics. They do not currently expose identical storage and record-verification APIs, so the tabs below stop at the capability each SDK actually provides.

Terminal window
bun add @veritio/core@0.4.7
src/examples/quickstart/typescript.ts
import { MemoryAuditStore, createAuditEvent, hashAuditEvent, verifyAuditRecords } from '@veritio/core'
const store = new MemoryAuditStore()
const scope = { tenantId: 'org_acme', environment: 'production' }
const event = createAuditEvent({
id: 'evt_member_invited_01',
occurredAt: '2026-08-09T10:00:00.000Z',
actor: { type: 'user', id: 'usr_123' },
action: 'organization.member.invited',
target: { type: 'organization', id: 'org_acme' },
scope,
purpose: 'access_management',
lawfulBasis: 'contract',
retention: 'security_1y',
metadata: { role: 'viewer' },
})
const record = await store.append(event, { idempotencyKey: 'invite:inv_123' })
const records = await store.list(scope)
const verification = verifyAuditRecords(records)
console.log({ sequence: record.sequence, verification, hashPrefix: hashAuditEvent(event).slice(0, 12) })

All three fixtures use the same event identifier, actor, action, target, tenant scope, purpose, lawful basis, retention label, and minimized metadata. The verification suite confirms that all three languages produce the same event-hash prefix.

The host still decides whether the claim is true, resolves the tenant and actor from trusted server context, and minimizes metadata before recording it. Veritio makes the recorded bytes and their later ordering checkable.

You need to… Continue with
Understand event input versus stored records Audit events
See exactly how tampering becomes detectable Hash chain
Integrate an application framework Framework guides
Select authoritative storage Storage overview
Capture agent activity safely Agent events
Look up exact fields and errors Reference

Veritio records evidence supplied by your application. Your host still owns authentication, authorization, tenant resolution, durable storage, encryption, key management, backups, and retention enforcement. Never put secrets, access tokens, raw prompts, full diffs, or unnecessary personal data into event metadata.

Begin with Installation. If @veritio/core@0.4.7 is already installed, continue directly to Record your first audit event.