Skip to content

Use case: Compliance & audit

Regulators increasingly ask not just “do you keep audit logs?” but “can you prove they weren’t altered?” When logs are rows in a database the operator controls, the honest answer is “you have to trust us.” That is a weak position in an audit, a dispute, or after a breach.

AeternisLog gives every audit record an independent integrity proof:

  1. Capture. Your systems POST compliance events (access, approvals, transactions) to a domain such as audit — the existing payloads, unchanged.
  2. Anchor. Records are batched and their Merkle root is anchored write-once on a permissioned blockchain the auditor can inspect.
  3. Prove. At audit time, recompute the root from the stored records and show it matches the on-chain anchor. If even one record was altered, the proof fails — visibly.
  • Off-vendor anchor. The proof lives on an independent ledger, not in the same database that holds the data.
  • Point-in-time. Each anchor is timestamped, so it also evidences when the records existed in that form.
  • Independent verification. An auditor can verify with the Python CLI from a CSV export — fully offline, trusting only the on-chain root.
  • Tenant isolation. In a multi-tenant platform, one customer’s audit trail is cryptographically isolated from another’s.
Terminal window
# 1. Your app records a compliance event
POST /api/v1/audit/records {"source":"access","payload":{"user":"u-91","action":"export","resource":"ledger"}}
# 2. Anchor (or let auto-batching do it)
POST /api/v1/audit/records/batch
# 3. Auditor receives a CSV + the on-chain root, and verifies offline
aeternislog verify --file audit-export.csv --expected-root <root> # exit 0 = VALID

Pair this with audit reports (JSON/PDF) for a complete, hand-off-ready package.