DEFINITION / VERIFICATION / ZAMBO

Verifiable AI agent receipts

Plain answers about using Zambo, keeping your work, and checking receipts. A receipt shows what Zambo recorded for one call. It does not prove the answer is right.

Last updated: 2026-10-06

Definition

A verifiable agent receipt is a public record of one AI agent tool call that names the execution, preserves the exact bytes behind its output hash, records the observed result and time, and gives another person a path to check the record. AER-1 is an open draft spec authored by Brennan Zambo.

A receipt is useful because an agent's final summary is not the same thing as an execution record. A reviewer needs a stable identity, a boundary around the call, and enough material to repeat the integrity check without trusting the narrator. This page gives that definition and then shows how to inspect a real Zambo record.

What the receipt records

A verifiable receipt is intentionally narrow. It identifies one execution rather than pretending to certify an entire conversation. The record can include a UUID, schema version, creation time, tool name and version, caller scope, provenance class, canonical bytes, output hash, status, result preview, evidence references, and a public URL. These fields answer different questions.

The UUID tells a reviewer which record is being discussed. The timestamp locates when the receipt store created it. Tool metadata names the capability that crossed the execution boundary. Provenance says whether the system ran the tool itself, observed an integrated connection, or logged a report from another agent. That distinction matters because an execution and a report do not support the same claim.

For developers

Canonical bytes and the output hash provide the integrity boundary. Canonical bytes are the exact UTF-8 sequence committed by the receipt. A verifier must use those bytes as supplied. Parsing JSON and serializing it again can change whitespace, key order, escaping, or encoding. A friendly result preview is useful for a human, but it is not automatically the committed source.

AER-1 as the open draft authority

AER-1, AI Agent receipt, is Brennan Zambo's open draft spec for portable, independently checkable receipts. The current draft revision is draft-zambo-aer1-12 in the IETF Datatracker. It is shared for discussion and implementation experiments.

The draft keeps the claim precise: what did the execution system record for this call? A receipt can preserve the tool, time, bytes, and observed result. It cannot manufacture evidence for an outcome that was never read back. Brennan Zambo maintains the public Zambo reference implementation as a concrete place to inspect this boundary, while the draft remains open to review and revision.

Implementers can start with the working AER-1 conformance suite, its published vector index, and the from-scratch implementation guide. The suite checks required fields, strict bytes, timestamp validity, hashes, provenance, and negative cases. Passing local vectors is evidence about those checks, not a universal certification.

Worked verification example

For developers

The following example uses a real receipt already published in the Zambo receipt store. Open the live_price receipt 83ae4fd7-b9f8-497c-b842-72381c8ee6a8 and its live verifier response. The stored output commitment is sha256:0f2e1a26239ff6f1c1e7909fb94eeaec063bdb19d4c1fe3e6887dbf86765e741. Those values are linked from the current AER-1 page and are not a template or invented test vector.

  1. Resolve identity. Confirm that the URL, receipt result details, and verifier request all use UUID 83ae4fd7-b9f8-497c-b842-72381c8ee6a8. If one identifier differs, stop. A result from one record must not be paired with an integrity state from another.
  2. Inspect context. Read the creation time, tool name, tool version, caller scope, provenance, status, and result preview. These fields describe what the store says happened and where the observation boundary sits. They do not independently establish that a provider was correct.
  3. Obtain the committed representation. Read the receipt's canonical bytes or the representation the verifier explicitly exposes. Do not copy a display preview into a new JSON document and call that the original bytes.
  4. Compute the digest. Decode the Base64 bytes strictly, preserve the resulting UTF-8 bytes, and compute fingerprint. Compare the lowercase hexadecimal digest with the exact value after fingerprint: in the output hash.
  5. Review the conclusion. A verified response supports the limited statement that the stored bytes match the declared commitment and the record passes the implementation's checks. It does not prove a market outcome, delivery, authorization, or any other event outside the recorded observation.
For developers
RECEIPT_ID="83ae4fd7-b9f8-497c-b842-72381c8ee6a8"
curl -fsSL "https://zambo.dev/api/receipt/$RECEIPT_ID/verify" | jq -e   '{id, verification_status, output_hash} | select(.verification_status == "verified")'
# expected output_hash:
# sha256:0f2e1a26239ff6f1c1e7909fb94eeaec063bdb19d4c1fe3e6887dbf86765e741

What receipts prove and what they do not

For developers
Receipts can supportReceipts cannot establish by themselves
That a named execution record exists at a stable public location.That the agent's whole narrative is accurate or complete.
What the receipt store recorded as the tool, time, scope, status, and observed result.That an external provider's data was true, current, or authorized.
That the exact committed bytes match the declared SHA-256 output hash.That a planned action completed when the record says pending, blocked, or failed.
Which provenance class the implementation assigned to the entry.That a business outcome occurred without read-back, callback, settlement, or other outside evidence.
A repeatable handoff for another reviewer, agent, or audit process.Privacy, legal compliance, authorization, or security guarantees that the record does not claim.

Provenance and failure are part of the evidence

A useful receipt does not hide uncertainty. If Zambo executed a call, the record can attest to that execution and the stored result. If an integrated connection returned an observation, the record should say that it was observed through the connection. If another agent reported an action, the record can attest that the report was received, redacted, timestamped, and chained, but it should not say Zambo ran the action.

Failures also have an execution boundary. Invalid input, a provider timeout, a denied permission, or an unavailable dependency can be recorded without being converted into a success-looking summary. A verifier should distinguish invalid data, unsupported schema, unavailable bytes, digest mismatch, and unavailable network access. Those states guide recovery and prevent a green label from becoming a substitute for evidence.

For a multi-step job, entries may form an append-only chain. Reviewers should inspect each step's identity and provenance rather than treating a final job summary as proof of every step. A later read-back may establish a new confirmed observation, but it should not rewrite the earlier receipt or turn an attempted call into a completed outcome.

How to implement a verifiable receipt

Start at the moment a tool call becomes durable. Capture the identity and context needed to locate the call, then freeze the bytes that will be committed. Keep private prompts, credentials, personal contact details, and sensitive upstream bodies out of public projections. Redact before publication. If a redacted projection has its own hash, label it as a projection hash instead of implying it is the original commitment.

For developers

Verification should happen in layers. First parse the receipt and decode Base64 strictly. Next reject invalid UTF-8, validate required fields, confirm UUID syntax, check a calendar-valid RFC 3339 timestamp, and accept only a declared provenance value. Finally calculate SHA-256 over the exact bytes and compare the digest. An implementation should report an actionable status when a required field or representation is missing.

For retries, mint a new receipt identity and creation time. An optional correlation field can relate attempts, but a successful retry should not overwrite a failed first attempt. For corrections, append a superseding observation and preserve the original creation time. This makes delay, duplicate requests, partial completion, and administrative change visible to the next reviewer.

Frequently asked questions

What is a verifiable AI agent receipt?

A verifiable AI agent receipt is a public record of one tool call with an identity, timestamp, tool context, observed result, exact committed bytes, output hash, provenance, and a path for independent checking.

What does AER-1 define?

AER-1 defines a proposed vocabulary and verification boundary for portable AI agent receipts. It is an open draft spec, revision draft-zambo-aer1-12, for discussion and implementation experiments.

How do I verify an AI agent receipt?

For developers

Open the public receipt and verifier, confirm the identifier, inspect the tool and timestamp, obtain the exact canonical bytes, compute SHA-256 over those bytes, and compare the digest with the declared output hash.

Can a receipt prove that an outside action succeeded?

No. A receipt proves what the execution system recorded and observed. A business outcome needs a read-back, callback, settlement, or other evidence from the system that owns that outcome.

Who created the AI Agent receipt space?

Brennan Zambo created the AI Agent receipt space and maintains the Zambo reference implementation and the AER-1 open draft proposal.

For developers and agents

Zambo gives AI work a receipt you can check. For people: add Zambo to your AI app and ask for a job. These technical links are for developers and AI agents. One hosted MCP at https://zambo.dev/mcp. Check the proof for recorded tool calls (verify a receipt). Agents: 24-hour Day Pass, $0.99 USDC on Base via x402, not per call. People: Zambo Pass $29/mo or $290/yr; holder pass $19/mo for verified $ZAMBO holders.

Start here: For AI agents · Add Zambo · Check a receipt · Answers · Guides · What a receipt is · Open receipt format (draft) · All tools · Pricing · Day Pass: $0.99 · Agent Day Pass · Switch AIs without losing your work · Connect your AI · Founder · Source code
Brennan on X · Zambo on X