Every governed action in EnfinitOS produces a proof event. Proof events are grouped into proof packs — signed, hash-chained documents that anyone with the published verification key can verify without contacting EnfinitOS.Documentation Index
Fetch the complete documentation index at: https://enfinitos.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Pack shape
A proof pack is a canonical JSON document with three top-level fields:Canonical-JSON serialisation
The signature is computed over the canonical JSON serialisation of{ header, body }. Canonical means: sorted keys, no whitespace,
deterministic number formatting. The auditor library reproduces the
exact serialisation before checking the signature.
Hash chain
header.previousPackHash is the SHA-256 of the previous pack’s
signed bytes for the same tenant. The first pack issued to a
tenant uses a hash of 32 zero bytes.
A missing or tampered pack breaks the chain at the next pack’s
previousPackHash field. The auditor walks the chain end-to-end
and reports the first break.
What the auditor does, in code-level detail
- Decode the pack into header, body, signature.
- Reproduce the canonical-JSON serialisation of
{ header, body }. - Verify the Ed25519 signature against the verification key
identified by
header.verificationKeyId. - Compare
header.previousPackHashto the hash of the previous pack (or zero hash for sequence 0). - Re-project metering from
body.eventsand assert bit-equality againstbody.meteringProjection. - Re-run settlement reconciliation against the projected
metering and assert bit-equality against
body.settlementReconciliation.