Tamper-proof receipts
for AI agents

Every tool call gets a cryptographic receipt backed by a Merkle proof. One decorator. Zero dependencies. Verification in microseconds.

AI agents are flying blind

One decorator. Cryptographic receipts.

from ads_foundation import ProofTrailMonitor monitor = ProofTrailMonitor() @monitor.track_tool_call def query_db(customer_id: str) -> dict: return {"balance": 15420.50} with monitor.session(agent_id="support_bot") as session: result = query_db("cust_987") receipt = session.get_latest_receipt() assert session.verify_receipt(receipt) # Merkle proof checks out print(result) # {"balance": 15420.50} -- decorator is transparent

Functions return the same values. But now every call is hashed into a Merkle chain with a proof you can verify independently.

Built and shipped

0 Runtime dependencies
179 Tests passing
<9 µs Proof verification
Live Hosted API

Published at ENASE 2026. Based on PhD research in authenticated data structures.

Compliance-ready