Receipt 002 · demo, runs in this tab
Forge this handoff
A signed handoff is issued in your browser. Attack it six ways. Watch each attack land on a different reason code, right next to the field it touched.
The signed handoff
Issued and signed in this tab. The tampered field lights up when you attack.
Attack it
Each attack mutates the packet, then the checker runs. Tap to expand the verdict.
Unforgeable.
All six attacks repelled, each on a different reason code. That is the whole point: tampering is always evidence.
How the check works
Five links, checked in the same order as the real checker. The first broken link names the verdict.
- 1. Sender in registry. The sender must be known, so there is a key to check against.
unknown_agent:from - 2. Signature valid. Recomputed over the signed envelope, which includes the plan, and compared.
signature_invalid - 3. Not a replay. The idempotency key must not be claimed already.
duplicate_idempotency_key - 4. Approvals cover actions. Approvals are separate signed credentials; each is verified.
approval_missing,approval_signature_invalid - 5. Evidence pinned. Every file hashed against its pin.
evidence_hash_mismatch
This is a teaching model: it runs five of the real checker's seven checks, with the same reason codes, and uses HMAC with per-visit demo keys to keep the cryptography dependency-free. The real checker uses Ed25519, and the playground signs with it in your browser. Either way, what you are seeing is tamper evidence: the check detects alteration and names the broken link. It does not prevent someone from altering their own copy.