How to prove an AI agent output existed — x402 + NEAR anchoring in practice AOTrust, a notarization service, issues Provenance Data Records (PDRs) for $0.01 USDC via x402 on Base L2, with Merkle anchoring on NEAR. The service provides cryptographic proof that an AI agent's output existed at a specific time, using blind notarization where only the hash is recorded. The 239-byte PDR includes an Ed25519 signature and can be verified offline without any API call. You deployed an AI agent. It generated a financial report, a code review, a medical summary. A week later, someone questions the output. Did the agent actually produce this? When? Was it modified after the fact? Logs are mutable. Timestamps lie. Git history can be rewritten. What you need is a cryptographic proof — signed by an independent notary — that binds a specific artifact hash to a specific point in time. And it should cost less than a cent. This article walks through a real, working system: AOTrust , a notarization service that issues PDRs Provenance Data Records for $0.01 USDC via x402 on Base L2, with Merkle anchoring on NEAR. curl and python3 for hashing The x402 protocol handles payment inline — the API returns HTTP 402, you pay, you retry with the payment header. No billing portal, no subscription, no prepaid credits. python import hashlib Your agent produced this report report = b"The Q3 revenue projection based on agent analysis is $2.4M..." work hash = hashlib.sha256 report .hexdigest print work hash → e.g. "a1b2c3d4e5f6...64 hex chars..." The hash is what gets notarized. You keep the actual artifact — the notary never sees it. This is a blind notarization : the PDR proves the hash existed at a point in time, without revealing the content. curl -s https://api.aotrust.link/v1/notarize/quote \ -H "Content-Type: application/json" \ -d '{"work hash":"a1b2c3d4e5f6...your sha256 hash..."}' The API responds with HTTP 402 — Payment Required — in x402 format: { "x402Version": 1, "accepts": { "scheme": "exact", "network": "base", "maxAmountRequired": "10000", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA5fE48", "resource": "https://api.aotrust.link/v1/notarize" } } That maxAmountRequired: 10000 is 10,000 micro-USDC = $0.01 . The asset address is USDC on Base. No negotiation, no tiers — flat fee. Sign an EIP-3009 transferWithAuthorization message with your Base wallet any wallet that supports EIP-3009 — most do . Then send the notarization request with the payment attached: curl -s https://api.aotrust.link/v1/notarize \ -H "Content-Type: application/json" \ -H "X-Payment: