Verify a session receipt

Drop a ProofVisor receipt JSON in your browser. The Ed25519 signature verifies right here, offline, against the receipt's embedded public key. No account, no upload. Nothing leaves this page.

📄

Drop a receipt JSON here

Or paste a receipt file into this page (⌘V / Ctrl-V works too).

or
— then tamper with one byte and watch it fail

How this works

Every session on ProofVisor can end with a receipt: a signed JSON that commits to the exact set of events, tokens, tool calls, and policy decisions that happened. The receipt embeds an Ed25519 public key.

Your browser here runs Web Crypto's Ed25519 verify against the embedded key and the raw signed body. If a single byte changed anywhere, the verification fails. Don't take our word for it — after a green verify, click Now tamper with one byte and watch the same receipt turn red.

What this page cannot do is tell you who owns the key. It trusts only the sample receipt's key and the console demo key. A receipt from a real deployment therefore shows "internally consistent, trust anchor not verified": the signature is valid for the key inside the receipt, but you still have to compare that key's fingerprint with the one on the deployment page in the console, or with the key the operator gave you out of band.

The same check runs offline in Node too: node server/scripts/verify-receipt.mjs receipt.json. Same code path, same guarantee.