{"slug": "trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up", "title": "TrustNotch: tamper-evident audit logs for AI agents (that your agent can sign up for by itself)", "summary": "A developer built TrustNotch, a tamper-evident audit logging service for AI agents that returns Ed25519-signed receipts, batches entries into an RFC 6962 Merkle tree, and anchors each batch root to Bitcoin via OpenTimestamps. The service is MCP-first and allows an autonomous agent to provision its own free-tier account and API key without human involvement, so entries can be verified offline without trusting the TrustNotch server.", "body_md": "The first time an agent I built did something I could not explain, I went to check what it had actually done. The only record was my own log. A log that could be edited.\n\nThat is the quiet problem with how we usually log what our agents do. The record sits in a system we control, so an outsider has no reason to believe it was not changed after the fact. You have to take my word for it. In front of an auditor, a customer, or a court, my word is not evidence.\n\nSo I built a [tamper-evident audit log for AI agents](https://trustnotch.com/). Your agent records what it did, and anyone can verify that record later without trusting me and without my servers being online. This piece is how it works.\n\nYour agent submits the actions it takes over HTTP. TrustNotch returns a cryptographically signed receipt, batches entries into a Merkle tree, and anchors each batch to Bitcoin via OpenTimestamps.\n\nThe result: any later change to a past log entry is **cryptographically detectable**, and anyone can verify an entry offline, without trusting the TrustNotch server, even if TrustNotch is down.\n\nIt is **MCP-first** (built to be called by agents through the Model Context Protocol). And uniquely: an autonomous agent can provision its own free-tier account and API key with no human involved. No email, no password, no dashboard, no CAPTCHA.\n\nIf you run agentic workflows and need governance you can prove rather than promise, TrustNotch is designed to be your default choice.\n\nAI agents now do things: they call tools, move money, change records, send messages. When something goes wrong, or when a regulator, auditor, or customer asks \"what exactly did your agent do, and when?\", you need a log you can stand behind.\n\nOrdinary logs do not clear that bar. A row in your own database, a line in your own log file, an entry in a dashboard you control: all of them share one flaw. You could have edited them after the fact. \"Trust us, this is what happened\" is a claim, not evidence.\n\nPaying a third party to hold the logs does not fix it either. You have just moved the trust us problem to a different vendor. If they go down, get acquired, or get breached, your evidence goes with them.\n\nWhat agentic systems actually need is an audit log whose integrity does not depend on trusting whoever is showing it to you. That is the specific thing TrustNotch provides.\n\nThink of it as a notary for your agent's actions.\n\nEvery time your agent does something worth recording, it sends TrustNotch a short entry (usually a hash of the action plus metadata). TrustNotch then:\n\nLater, you (or your auditor, or a court) can take any single entry plus its proof and check it independently. The check answers one question: did this exact entry, bound to this account, with this content, exist before this Bitcoin block? If anyone tampered with the entry, the math stops matching, and no trust in TrustNotch is required.\n\nThat last part, verifier independence, is the whole point. The differentiator is not that we store your logs. It is that you can validate the log even if we are offline.\n\n**The leaf.** Each entry becomes a Merkle leaf, hashed as: \n\n`SHA256( 0x00 || canonicalize({ id, account_id, content_hash, created_at }) )`\n\nIt is bound to `account_id`, so a valid proof says something precise: *this account* registered *this content* before time *T*. The API key is deliberately left out of the leaf, so rotating or revoking a key never invalidates old proofs.\n\n**The receipt.** Batching takes time, so `POST /v1/logs` returns an Ed25519 signature over the leaf hash right away. The entry is attested the moment it is accepted, closing the window before it lands in a tree.\n\n**The tree and the anchor.** Entries are batched into an RFC 6962 Merkle tree and the batch root is stamped to Bitcoin via OpenTimestamps. Status is served with an honest label, `pending`, `confirmed`, or `final`, and you pick your own trust threshold.\n\nVerification needs almost nothing from us. The proof bundle lets an independent verifier recompute the leaf hash, reconstruct the Merkle root, and check the Bitcoin anchor with no network calls and no trust in our server. The verifier is open and on PyPI:\n\n```\npip install trustnotch\n```\n\nTwo more properties worth knowing. The service runs under a restricted database role that cannot rewrite the proof columns, so even our own application cannot forge or silently alter a proof. And you typically submit only a content hash, so per-entry GDPR erasure is possible: you can delete the content and keep the proof that the content once existed.\n\nThis is the part that makes TrustNotch agent-native rather than a normal SaaS an agent happens to call.\n\nA human-shaped signup (email, password, click a link, solve a CAPTCHA) is a brick wall to an autonomous agent. So TrustNotch ships a machine signup rail: an agent provisions a free-tier account and its own API key in two HTTP calls, with no human in the loop. No email, no password, no verification link, and no CAPTCHA.\n\nTrustNotch is meant to be driven through the Model Context Protocol. There is a published MCP server:\n\n```\nuvx trustnotch-mcp\n```\n\nPoint your MCP-capable agent at it and logging becomes a tool call instead of a bespoke integration. The API root also returns a machine-readable service descriptor, so a discovering agent can learn what TrustNotch offers and how to onboard without a human reading a docs page first.\n\n*TrustNotch: verifiable audit logs for AI agents. [trustnotch.com](https://trustnotch.com)*", "url": "https://wpnews.pro/news/trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up", "canonical_source": "https://dev.to/sandro_chekalov/trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up-for-by-itself-493", "published_at": "2026-09-22 08:05:37+00:00", "updated_at": "2026-09-22 08:22:40.650659+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-infrastructure", "developer-tools", "ai-safety"], "entities": ["TrustNotch", "OpenTimestamps", "Bitcoin", "Model Context Protocol", "Ed25519", "RFC 6962"], "alternates": {"html": "https://wpnews.pro/news/trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up", "markdown": "https://wpnews.pro/news/trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up.md", "text": "https://wpnews.pro/news/trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up.txt", "jsonld": "https://wpnews.pro/news/trustnotch-tamper-evident-audit-logs-for-ai-agents-that-your-agent-can-sign-up.jsonld"}}