A log does not survive an audit
An application log can be edited, truncated or lost with nobody noticing; it does not distinguish tampering from normal operation.
A signed receipt exposes any alteration: verification fails if a single byte changed.A TrustReceipt is a signed record of the context and decision recorded by Trusteed for a covered action. Transaction or payment references may be included when available. The receipt alone does not prove buyer intent, payment settlement or that the underlying event occurred, and does not determine legal liability.
v1.0 corpus in place · issuance in production is ON (`/api/v1/health` → `trust_receipts.issuing`) · what does not enqueue a receipt by default is the standalone MCP path · v1.1 hardening behind a flag.
Issuing a receipt does not mean a payment was settled. At the 2026-09-13 review, the public merchant registry reported beta_closed, no production merchants and accepts_real_payments=false. Check /.well-known/merchant-index.json for current availability; demonstrations and checkout previews are not evidence of real purchases.
A Trust Receipt is a signed record of what an AI agent does in your store and what your rules decided. Anyone can check it with standard tools, and if someone changes a single detail the signature no longer matches. It helps you prepare for disputes and audits; on its own it does not prove payment or decide who is right.
Illustrative example · issuing a receipt does not establish a real payment.
An AI agent just bought something in your store. It acted on behalf of a customer; nobody on your team was watching.
What proof is left of that purchase? The agent log, on another company’s servers; your store; the payment provider; shipping. Loose pieces that don’t tell the whole story.
Three months later, a complaint arrives: “I never authorized this purchase.” What you have to respond with is a row in a database, and a row can be edited without leaving a trace.
Enter the Trust Receipt: a signed record of what an agent does in your store and what your rules decided.
Step 1 · The agent asks to buy, with its customer’s instructions: what to buy, how much to spend and where to ship it.
Step 2 · Your rules decide. Before the purchase goes through, it is checked against the rules you have set: allowed, blocked or waiting for your approval.
Step 3 · The receipt is created and signed. What was requested, what your rules decided and the outcome are recorded and sealed on the spot.
Step 4 · Anyone can check it: your payment provider, an auditor or you, with standard tools and no need to ask us.
What if someone changes it later? Change a single detail and the signature no longer matches. Like a tamper seal: it doesn’t stop anyone opening the box, but it shows that someone did.
What’s in it for you: better-prepared disputes, painless audits, less manual work and control over agents.
What a receipt does: proves that the record is authentic and that nobody has touched it since it was signed. What it doesn’t do: it does not prove on its own that the payment or event happened. It does not determine who is right. Issued for the operations and surfaces where it is enabled.
Don’t just log what agents do. Make it verifiable.
The intent the agent declared, your policy's decision, the order created and the final outcome each live in a different system: the agent's logs, your store, your payment provider, your fulfilment. When a dispute, a refund or an audit arrives, redoing that trail by hand is slow and contestable.
An application log can be edited, truncated or lost with nobody noticing; it does not distinguish tampering from normal operation.
A signed receipt exposes any alteration: verification fails if a single byte changed.Knowing which agent acted says nothing about what input it received, what output it produced or under which policy the decision was made.
Every receipt references the canonical hash of the exact input and output of that operation.A payment provider, a court and an auditor consume neither the same format nor the same criteria.
The v1.1 legal posture is implemented, but remains behind a flag and pending external legal review.The receipt signs the hashes and context captured on a covered surface. It strengthens traceability; it does not guarantee a defence or replace the rest of the file.
The full input and output bodies never leave the merchant's encrypted vault; the receipt only references their hash. What is signed and shared is this.
{ "id": "tr_01JY7E4M8XN3QF7A92F", "callId": "call_01JY7E4M79QK", "agentId": "urn:agent:demo-buyer-01", "merchantId": "demo-store", "bucket": "checkout", "tool": "complete_checkout", "inputHash": "sha256:4b8d…21f0", "outputHash": "sha256:9a11…77c2", "signingKeyKid": "trusteed-ed25519-2026-06", "jws": "eyJhbGciOiJFZERTQSJ9…", "jwksSnapshotUrl": ".well-known/jwks/2026-06.json", "schemaVersion": "1.0", "createdAt": "2026-07-27T10:14:32Z"}For v1.0, obtain the issuer's trusted public key from its JWKS and retain the verification material. Verify the JWS with the key selected by kid. Compare canonical input/output hashes only when the original data is available. Historical embedded JWKS and additional time evidence belong to v1.1 hardening, which remains gated; they are not guaranteed by a v1.0 receipt.
Proof is only worth something if it saves a specific person work at the moment they need it.
It reduces manual reconstruction across systems when the surface has issued the receipt.
Standard compact JWS with Ed25519; verification requires the signed record and trusted public key.
The key that signed travels with the receipt itself, not only in a third-party system.
This section is technical guidance, not a certification or a legal opinion. The claims policy is still pending external approval.
Notice: a TrustReceipt is cryptographically verifiable technical evidence. It does not determine legal liability by itself. Its admissibility or weight depends on applicable law, the agreements between the parties and other facts outside the format.
These are the implemented or planned pieces. Their status says whether they can be used today or remain behind a deployment condition.
Without a piece like this, every dispute starts by reconstructing what happened by hand, cross-checking the agent's logs, the store and the payment provider, and trusting nobody touched them.
Anyone who receives it: your payment provider, an auditor or you. The signature is checked with standard JOSE libraries and the issuer's public key, without asking Trusteed for permission. Verifying the signature establishes that the record is authentic, not that the payment settled.
Verification fails: changing a single detail is enough for the signature to stop matching the content. It works like a tamper seal: it does not stop anyone touching the record, but it shows that someone did.
That cannot be claimed universally. Admissibility and weight depend on the jurisdiction, the procedure, the agreements between the parties and the rest of the evidence.
Not to verify a JWS signature. Yes for any qualified-seal claim; that capability is not available.
The current corpus persists the JWS and its references. Hash chaining and checkpoints are ARMED in production (`TRUST_RECEIPT_CHAIN_ENABLED` is set, with a genesis declared on 2026-08-06), but they are still not presented as an operational capability, for a different reason than before: receipts issued before that genesis are not chained, and how many later ones are has not been counted. Armed, not measured: sequence immutability over the whole corpus is not offered.
The architecture provides historical snapshots and a signed revocation list. The code is finished, but deployment and the production probe must be confirmed before relying on them.
This receipt allows retained signed content to be verified outside Trusteed; it does not replace checkout, payment-provider evidence or your system of record.