Check the math.
An Accords receipt states a digest of its own contents. This page recomputes that digest in your browser and compares.
Nothing leaves the page; there is no server to trust. View source if you like.
Load a specimen or paste a receipt. The digest is recomputed here, in your browser.
SIG — ed25519 · not verified. Venue keys are unpublished; this tool verifies content integrity (the bundle digest) only. It will never show a pass it didn’t compute.
What exactly gets hashed
The receipt’s fields are sorted by label in code-unit order (never locale collation, so the same receipt hashes identically everywhere), serialized as a JSON array of [label, value] pairs, encoded as UTF-8, and digested with SHA-256. The digest is written lowercase hex. Duplicate labels keep their input order.
The interchange shape this page accepts:
{
"version": "accords.receipt/0",
"fields": [ { "label": "ACTION", "value": "…" } ],
"bundleHash": "sha256:<64 hex chars>",
"signature": null
}The verifier and every specimen on this site share the same canonicalization code — they can’t drift apart. Signed receipts add an ed25519 signature over the digest, checked against published venue keys; that check lands here when the keys do.