Envelope hash
Theenvelope_hash stored on each snapshot is computed as:
Chain linkage
Each snapshot stores aprev_hash pointing to the envelope_hash of the preceding version. This forms a hash chain:
Server-side verification
Pass theverify query parameter on any snapshot read:
| Value | Behavior |
|---|---|
none | No verification (default). |
hash | Re-computes the RFC 8785 hash and compares against envelope_hash. |
chain | Validates the full prev_hash chain back to the root snapshot. |
verification block:
Offline verification
Export the full ledger withGET .../snapshots/export and run the tally verify-ledger CLI against the bundle to verify hashes and chain integrity without any network dependency.
Chain proof endpoint
GET .../chain-proof returns an ordered list of snapshot_id, envelope_hash, and prev_hash values — the minimum data needed for an independent chain audit without transferring full envelope payloads.