Audit trails and tamper-evident receipts for AI agents
What an AI agent audit trail should record, how hash-chained receipts make edits detectable, and what they can and cannot prove.
By the Voidex team · Updated · 7 min read
What auditors actually ask
- Who or what initiated the action, and with which permissions?
- Which policy version allowed it, and who approved it?
- What exactly was sent, to which system, in which environment?
- Did it work — and how do you know?
- Has this record been changed since?
A transcript of the agent’s conversation answers almost none of these. You need structured records created by the system that enforced the action.
Anatomy of a verification receipt
Verification receipt — A structured, immutable record for one attempted action describing the request, the policy decision, approvals, execution result, postcondition checks with evidence digests, the final outcome and known caveats.
{
"receiptVersion": "voidex.receipt.v1",
"tool": "acme_ledger.create_invoice@1",
"policy": { "decision": "require_approval", "policyVersionId": "polv_…" },
"approvals": [{ "bindingHash": "9f2c…", "decisions": [{ "decision": "approve" }] }],
"execution": { "status": "succeeded", "attempts": 1, "httpStatus": 201 },
"checks": [{ "type": "arithmetic_invariant", "status": "failed" }],
"outcome": "verification_failed",
"caveats": ["…"],
"prevHash": "41ab…",
"hash": "c07e…"
}Issue receipts for blocked, rejected and failed attempts too. “We stopped this” is evidence as well.
Making records tamper-evident
- Store audit events and receipts in append-only tables; block updates and deletes in the database itself.
- Compute each receipt’s hash over its canonical content plus the previous receipt’s hash.
- Keep the chain head per workspace and provide an endpoint that recomputes the chain.
- Store digests of evidence and payloads rather than raw sensitive data, so receipts can outlive payload retention.
What a hash chain does not prove
How Voidex does it
Voidex writes a voidex.receipt.v1 receipt for every attempted action, appends it to a per-workspace SHA-256 hash chain and exposes a chain verification endpoint. Audit events and receipts are append-only at the database level. Receipts can be exported as JSON and viewed in the console with an integrity check. See Security & trust for what is implemented.
Frequently asked questions
- What should an AI agent audit log contain?
- The initiator and its permissions, the exact action and target, the policy version and decision, approvals with who and when, the execution result, independent verification results, the final outcome and caveats — stored append-only.
- Does a hash chain prove an AI agent action was correct?
- No. It proves the stored records were not modified after they were written. Correctness comes from independent verification checks recorded in each receipt.
- Should blocked AI agent actions be logged?
- Yes. Recording blocked, rejected and failed attempts shows that controls worked and is often what auditors ask for first.