Reproducible x402 Receipts and Signed Evidence
How payment proof, request digests, assertion outcomes, and Ed25519 signatures form an auditable agent transaction.
Two proofs with different jobs
The x402 PAYMENT-RESPONSE proves the facilitator's settlement result. The signed evidence envelope proves what deterministic work the Verification Core performed. Keep both: payment proof answers “was value settled?”, while the evidence signature answers “what request and checks produced this result?”.
Reproduce the verification
- Preserve the exact response body and x402 payment response.
- Locate the evidence key by
kidin https://agent-economy.kgninja.dev/.well-known/jwks.json. - Remove the signature field from the signed envelope exactly as specified by the response schema.
- Canonicalize the envelope with JSON Canonicalization Scheme semantics.
- Verify the Ed25519 signature against the canonical UTF-8 bytes.
- Compare the request hash, evidence digest, quote ID, transaction ID, amount, network, asset, and assertion outcomes with local records.
Replay behavior
An idempotency key is bound to a canonical request. Retrying the same delivered purchase returns the same transaction instead of creating duplicate revenue or cost events. Reusing an idempotency key with different content fails. Quotes expire, but completed transaction records remain auditable.
Data minimization
Raw evidence is processed in memory and is not retained in D1. Durable records contain cryptographic digests and the minimum transaction, settlement, assertion, and accounting fields needed for audit and replay safety. Agents should still avoid sending secrets or unnecessary personal data.
Trust limits
Signature validity does not convert supplied data into real-world truth. It authenticates the service's execution record. An independent verifier must still decide whether the original evidence source and the declared assertions are appropriate for its use case.