Evidence kinds/Audit bundle
Audit bundle
audit output evidence
Operator-downloadable .zip containing verifier + workspace identity + chain metadata + framework handoff.
What it is
The audit bundle is a zip download from the workspace dashboard. Contents: verify.mjs (the Apache-2.0 verifier), workspace.json (workspace id + signing public key + chain heads + tier), recent-receipts.jsonl + .csv (last-100 receipt metadata cache), anchor-history.jsonl (signed chain-head observations), README.md (instructions for the regulator).
The bundle equips a regulator to verify a chain air-gapped. The chain itself comes from the operator's separate export (workspaces with millions of entries don't fit in a bundle; the bundle is the verification harness, the chain is supplied separately).
On Enterprise tier, the bundle additionally includes framework handoff packets — per-framework Markdown documents mapping each regulation's articles to the substrate's evidence kinds, with an explicit 'operator must also' gap statement for each.
What it guarantees
- Self-contained verification — no Promethean infrastructure access required.
- Cryptographic chain of trust from workspace identity through signing key through entries.
- Apache-2.0 verifier in the bundle — regulators can read, fork, re-implement.
What it does NOT guarantee
Honest limits. Every primitive has them.
- That the operator hasn't withheld entries — the chain export is the operator's responsibility.
- Substantive compliance with any regulation — the bundle is the verification harness; conformity is operator's.
Regulations that engage this kind
All frameworks Promethean covers (7 templates)
GDPR + EU AI Act + PSD3+PSR + DORA + NIS2 + MDR + HIPAA
Sectors that rely on this kind
Related evidence kinds
FAQ
Does the bundle contain the chain itself?
Only a metadata cache (last 100 receipts). For full verification, the operator exports the full chain separately. Reason: chains can be very large (millions of entries / GB-scale JSONL); putting the bundle in a download workflow doesn't scale.
What's the verifier doing inside the bundle?
verify.mjs is ~500 lines of Node stdlib code. It re-hashes each entry per the canonical form, verifies the Ed25519 signature per entry, walks the prevHash chain, checks monotonic timestamp ordering, validates the OpenTimestamps anchor proofs, optionally scopes to a specific tenant. Exit code 0 = chain integrity verified.