MCP server: One MCP server.

x402receipts

@x402receiptsRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Record x402 agent purchases as reconciled, auditable receipts; verify any receipt on the ledger.

Blockchain datav1.0.0MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npmx402receipts-mcpv1.0.0

Run

npx -y x402receipts-mcp

MCP client config

{
  "mcpServers": {
    "x402receipts": {
      "command": "npx",
      "args": [
        "-y",
        "x402receipts-mcp"
      ]
    }
  }
}
README2 min read

Accounting infrastructure for autonomous spending. Every x402 purchase an agent makes becomes a receipt, reconciled against the on-chain transaction, with missing or unmatched payments flagged, monthly statements for finance, and evidence anyone can verify.

Use it

In code — one wrapper around the fetch your agent already pays with (npm i x402receipts-sdk):

ts
import { wrapFetchWithPayment } from "@x402/fetch";
import { withRegister } from "x402receipts-sdk";

const register = withRegister(fetch, { endpoint: "https://app.x402receipts.com", payWith: () => pay });
const pay = wrapFetchWithPayment(register, wallet);

As an MCP server (npx -y x402receipts-mcp): record_receipts, verify_receipt, service_info. See packages/mcp.

Over HTTP: POST https://app.x402receipts.com/api/v1/receipts — answers 402 with the x402 challenge; any x402 client pays it.

With an AI coding tool: paste the integration prompt into Claude Code or Cursor.

The format is an open standard

The record, its fingerprint, the append-only log above it, the anchor record and the verification algorithm are published as ARR-1 — Agent Receipt Record, released into the public domain (CC0). JSON Schemas are in spec/arr-1/. Implement it yourself, or check our implementation against it.

ARR-1 builds on existing standards rather than replacing them: the tree is the RFC 9162 profile used by Certificate Transparency, checkpoints are published as HCS-27 messages, accounts are named with CAIP-2/CAIP-10, and agents with HCS-14 identifiers.

In this repo

PathWhat
spec/arr-1/the ARR-1 specification and its JSON Schemas (CC0)
sdk/the x402receipts-sdk npm package (single file, no dependencies)
packages/mcp/the x402receipts-mcp MCP server
examples/plain Node, Vercel AI SDK, LangChain, OpenAI Agents
integrations/agentkit/Coinbase AgentKit action provider
integrations/x402-ecosystem/x402.org ecosystem entry

How it works

  1. Capture — the SDK records each paid call: resource, amount, counterparty, transaction reference, request/response fingerprints, delivery status, and the seller's signed receipt when it issues one (x402 offer-receipt).
  2. Reconcile — the connected wallets are read on Base and Solana; every outgoing USDC payment is matched to a receipt. What doesn't match is an exception, not an average.
  3. Prove — each night, the account's whole receipt log is hashed into one RFC 9162 Merkle tree and its root is written to the Hedera Consensus Service, linked to the previous day's root. Every receipt has a public verification page that redoes the maths in the browser.
  4. Report — the owner signs in with the wallet: spend by supplier, the register, CSV and signed JSON export.

Guide: https://x402receipts.com/guide.html · Status: https://app.x402receipts.com/status · Contact: hello@x402receipts.com

MIT licensed.

Similar modules

Browse Blockchain data