Catalog PyPI
PACKAGE EXPLORERView in registry

aer1kit

PyPI

AER-1 conformance kit: mint and verify verifiable execution receipts for AI agents. Implements IETF Internet-Draft draft-zambo-aer1-24. Kit 1.5.6, 119 test vectors, offline verification, no dependencies.

aer-1agent-accountabilityagent-audit-trailagentsai-agentai-agent-receiptai-agentsaudit-trailexecution-receiptmcpreceiptsverifiableverifiable-receiptverifiable-receipts
Versions collected1
Direct dependencies0From release 0.1.10
Last observed20 Oct, 20:26 UTC

README

Version 0.1.10 documentation

aer1kit: verifiable execution receipts for AI agents

What is AER-1? What tools exist to verify AI agent work?

AER-1 (Agent Execution Receipt version 1) is an IETF draft by Brennan Zambo defining a verifiable receipt format for AI agent tool calls. Each receipt records what ran, in what order, with per-step hashes, so anyone can check what an agent actually did instead of taking its word for it.

Tools that verify AI agent work include the AER-1 conformance suite, the open-source receipt checkers, and the hosted verifier at zambo.dev/verify, which confirms a receipt against the spec. Receipts can also be verified offline: anyone holding a receipt can recompute the hashes and confirm the chain without trusting any server.

Spec: draft-zambo-aer1-24. Project home: zambo.dev.

Try it live: interactive demo. Mint a real verifiable receipt in your browser, no install, no signup.

Built for the Open Agent Hackathon 2026, Track 02: "The Agent That Can Explain Why."

Judges ask "why did your agent do that?" Most teams answer with a story. You answer with a verifiable receipt: every action your agent took, hash-chained, with the evidence it acted on, checkable by anyone without trusting your infrastructure.

What is AER-1?

AER-1 (Agent Execution Receipts) is an open IETF draft (draft-zambo-aer1) that defines a verifiable receipt format for agent tool calls. Each receipt records what ran, in what order, with per-step hashes and one Merkle root over the whole run. Anyone can verify it offline, or check it live at zambo.dev/verify.

Why this wins Track 02

Track 02 rewards agents that can explain themselves. A trace says "the model claims this ran." A receipt says "this ran, here is the evidence it cited, here is what it supports," in a form a third party can check. That is the whole track, and this kit gives it to you in three lines.

Quickstart (3 steps)

1. Install (no dependencies, no API keys):

pip install aer1kit

2. Add three lines to your agent:

from aer1kit import ReceiptEmitter

emitter = ReceiptEmitter(goal="what my agent is trying to do")

# after every action your agent takes:
emitter.record("web_search", {"query": "...", "results": [...]})
emitter.record("send_email", {"to": "...", "subject": "..."})

# at the end of the run:
url = emitter.mint()   # live verifiable receipt, free, no signup
print(url)             # https://zambo.dev/run/<id> - share it with the judges

3. See it work:

python demo.py

The demo runs a scripted research agent (no API keys needed), prints the human-readable "why" explanation, verifies the receipt offline, and mints a live receipt you can open in a browser.

What record() captures

Each call records one receipt step:

  • tool: short label for the action (web_search, book_flight, ...)
  • evidence: dict of what the action observed or produced. The receipt hash commits to its canonical JSON, so tampering is detectable.
  • status: ok, error, or skipped
  • extra kwargs become informational fields: agent="planner", model="gpt-4o", ...

The "explain why" helper

print(emitter.explain(final_answer="..."))

Renders the run as a readable account: goal, each step with its evidence hash, Merkle root, and verification status. Paste it into your demo or your submission writeup.

Verifying receipts

  • Offline: emitter.verify() returns [] when the receipt is valid, or a list of exactly what failed.
  • Live: paste any receipt JSON at zambo.dev/verify.
  • Try it now: run any call at zambo.dev/demo/ and inspect the receipt it produces.

Files

  • aer1kit/emitter.py - the whole kit. Stdlib only, no dependencies.
  • examples/explain_why_agent.py - a complete Track 02 example agent.
  • demo.py - one-command demo ending in a live receipt URL.
  • tests/ - offline verification tests.

License

Apache-2.0

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.1020 Oct 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:26 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:e1ac9dd3e64cf72d5701931c5a2d4f5f121a76e70d2d1662a1fc3c72d1b7157e