- PyPI:
pip install avm-proofpack - Source: github.com/chopmob-cloud/avm-proofpack (Apache-2.0)
- Works unchanged on any AVM chain that generates state proofs; verified live against Algorand mainnet and Voi mainnet.
Why it exists
Payment processors, custodians and auditors routinely assert “transaction X settled on chain Y” backed by nothing but their own signature. Algorand and Voi commit, every 256 rounds, to a stake-signed vector commitment over their block headers. That makes settlement claims falsifiable: evidence can be checked against consensus itself rather than against the claimant. Two constraints shape the design:- Public nodes prune. Non-archival nodes serve proof material for roughly the most recent 1,000 rounds. Evidence must be captured near settlement time and stored; it cannot be fetched years later on demand.
- Verification must not trust the capturer. A bundle carries raw canonical bytes, not quoted values. The verifier recomputes everything itself.
Verify a transaction offline
txn256 vector commitment, to the block hash,
the light block header, and finally membership in the state proof message’s
block headers commitment. Every domain separator and commitment shape follows
the go-algorand reference implementation.
Trust model, stated plainly
Offline verification proves internal consistency down to one trust root: the bundle’s own state proof message. Offline alone does not prove that message was produced by the chain’s consensus stake. Raising the trust root is explicit:--corroborate compares the message across independent nodes (do this near
capture time, inside the prune window, or against an archival node). Falcon
signature verification of the state proof itself is the planned next tier. The
CLI refuses to report a bare pass without --corroborate or an explicit
--accept-unattested flag.
x402 settlement evidence
For agentic payments, the bundle binds chain settlement to the receipt layer: an optional, additivechain_binding on verifiable x402
receipts carries the proofpack evidence, so an
offline-verifiable receipt and its on-chain
settlement can be checked together, years later, from files alone. Disclosure
is opt-in for privacy. See the repo’s docs/INTEGRATION.md for the receipt
integration path and SPEC.md
for the bundle format.