Verifiable receipts coding agents: prove what your agent actually built

Verifiable receipts give coding agents something they have never had: checkable proof of the work. Every file edit, test run, shell command, and API call mints a verifiable execution receipt at the moment it runs: canonical bytes, a SHA-256 commitment, a timestamp. When the agent says it built it, you recompute the receipts instead of taking its word. AER-1, published as an IETF Internet-Draft, is the open format.

See a coding receipt in action: run one free call and get a real verifiable receipt, no signup.

Need more than the free tier? $0.99 unlocks unlimited runs for 24 hours, no signup, no subscription.

Updated October 8, 2026.

The coding-agent trust gap

A coding agent finishes and reports what it did. The report is the agent's own account of its own work: files it claims to have edited, tests it claims to have run, commands it claims succeeded. "Done" is a claim, and the evidence for the claim is the claimant's testimony. When something is wrong, the debugging starts from a record nobody can check.

Verifiable receipts close the gap at the source. Instead of the agent telling you what it did after the fact, each tool call mints a receipt at the moment it runs, with the execution layer as the witness. The report becomes checkable: recompute, confirm, move on.

What a coding receipt covers

  • File writes, with a commitment over the exact bytes written. Diff the recorded bytes against your repository and confirm the edit is really there.
  • Test runs, with a commitment over the exit code and the output. A green test in the receipt chain means the test actually ran and passed, not that the agent said it did.
  • Shell commands, with the command and what came back recorded canonically. The migration that "definitely ran" is now checkable.
  • API calls and dependency changes, each as its own receipt in the same chain, sequenced so nothing can be quietly skipped.

Every receipt carries canonical input and output bytes, a SHA-256 commitment, a timestamp, and a sequence position. A gap in the sequence is visible, so a skipped step cannot hide.

The verify loop for developers

  1. Recompute. Each receipt's commitment is recomputed from its canonical bytes. A match means the recorded action is exactly what executed.
  2. Diff. Compare recorded file writes against your repository state. The code on disk should be the code in the receipts.
  3. Confirm the sequence. Check for gaps: every step the agent claims should have a receipt, and every receipt should be one the agent claims.

The loop takes minutes and replaces the most expensive part of working with coding agents: figuring out what actually happened. When the receipts check out, the only remaining question is whether the code is good, which is the review you were going to do anyway.

The honest boundary

Receipts prove execution, not correctness. A test-run receipt proves the test ran and passed, not that the test was a good one. A file-write receipt proves the bytes landed, not that the change was wise. An agent can faithfully execute a bad refactor and mint perfect receipts for it.

Verify execution with the receipt, and keep reviewing the code on its merits. The receipts move "did it happen" from a question to a fact, which leaves "is it right" as the only question that needs your judgment.

Start in one command

JavaScript and TypeScript agents start here:

npm install aer-1

Python agents have collectors for the major frameworks on PyPI: aer1-smolagents, aer1-openai-agents, aer1-crewai, aer1-langgraph, aer1-autogen, and more. Each one turns the framework's own execution events into verifiable receipts with no change to how the agent is written.

Mint your first coding receipt right now, free, no signup.

Working in an editor agent instead? The main site answers how do I get receipts for AI work in Cursor without changing my workflow.