Evidence bundles
evidence.zip is the portable evidence package for a receipt. The bundle can be downloaded, archived and checked without access to the ProofRails database.
Core files
The exact file set depends on the receipt path. A completed hosted x402 receipt inspected on 29 July 2026 contained:
delivery.json
manifest.json
manifest.sig
pain001.xml
public_key.pem
receipt.json
tip.json
Other receipt paths can add applicable artifacts. Clients must read manifest.json rather than assume that a named file is always present. A verifiable credential is optional; the presence of vc.json must not be assumed.
Manifest
The manifest records each covered file's name, SHA-256 hash and byte size. Verification fails if a file is missing, its bytes change, or its declared size does not match.
Signature
manifest.sig is an Ed25519 signature over the canonical manifest bytes. public_key.pem contains the public key required to verify that signature.
The signature proves that the holder of the corresponding private key signed the manifest. It does not, by itself, establish who controlled the key or whether the source data was accurate.
Bundle hash
ProofRails calculates SHA-256 over the final ZIP bytes and stores it as a 0x-prefixed bundle hash. EvidenceAnchor commits that 32-byte value on Flare.
Do not calculate the anchor value from an extracted directory or from manifest.json. The committed value is the SHA-256 of the served evidence.zip for the current receipt.
Resource hash
delivery.json can carry the SHA-256 of delivered content or a protected API response. Verify it against the original bytes separately from the ZIP hash. The resource hash binds delivery bytes; the bundle hash binds the complete evidence package.