A proof pack is the unit of audit. Every governed action — a delivery event, a rights state transition, a policy change, a metering projection, a settlement reconciliation — eventually appears, signed, in a proof pack.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.
Shape
Canonical-JSON serialisation
The signature is computed over the canonical-JSON serialisation of{ header, body }. Canonical means:
- Object keys sorted lexicographically.
- No whitespace between tokens.
- Integers serialised without trailing
.0. - Floats serialised in their shortest round-trip form.
- Strings serialised with the minimum-escape set per RFC 8785.
Chain semantics
header.previousPackHash is the SHA-256 of the previous pack’s
serialised signed bytes. Sequence 0 uses a hash of 32 zero bytes.
A break in the chain means: there is no pack with the expected
hash. The auditor reports the first break by sequence.
Schema versioning
header.schemaVersion identifies the proof-pack schema. Schema
changes follow strict semver — a backwards-incompatible change
bumps the major version. The auditor refuses to verify a pack whose
schema version it doesn’t recognise.
Embedded events
The events array is ordered bysequence within the pack. Each
event is itself signed (a sub-signature with the same verification
key); this makes events independently verifiable when extracted
from a pack for a regulator request.
Where to find a sample
The conformance vector set underpackages/sdks/auditor-ts/__tests__/vectors/
in the open-source auditor repo includes worked examples — valid
packs, intentionally-broken packs, chain-break scenarios — used as
fixtures by all three language ports (sdk-auditor-ts,
sdk-auditor-py, sdk-auditor-rs).