The Sannvit Ledger is an append-only, hash-chained audit trail for AI agent activity. Every LLM call, tool invocation, and retrieval an agent makes is sealed into a per-org SHA-256 hash chain — independently re-verifiable by anyone, not just by the system that wrote it. It runs entirely inside your own infrastructure: self-hosted via Docker Compose or Kubernetes, no data leaves your walls.
Application logs are a claim, not evidence — an administrator can edit a row, retention is measured in days, and there's no distinction between what an AI asserted and what was independently recorded. A regulator, auditor, or opposing counsel asking "what did your AI do, and what did it rely on" needs more than that: sealed records nobody can silently rewrite, years of retention, and a chain of custody from decision back to the input it depended on.
on_error callback instead of propagating.record_hash / prev_hash pair per record). The SDK only reports what happened; the server computes every hash.lifecycle record — the gap itself becomes part of the audit trail, not a silent hole in it.| Component | What it does |
|---|---|
| Postgres | The only database — the ledger schema plus Keycloak's own schema |
| Keycloak | Authentication for the dashboard and service-to-service tokens |
| Ledger API | Ingests agent activity, seals it into the hash chain, runs the alerting/integrity-check loop |
| Dashboard | Review, alerting, and evidence export |
| Blob storage | Payload content, addressed by content hash — bundled via RustFS or your own S3-compatible bucket |
| SDKs | Client libraries agents call into — Python, TypeScript, Go, Java, C# |