Live signatures for every agent action.
The signing layer for the agent economy.
One line of code.
Any agent framework, any payment rail.
pnpm add @atrib/mcpimport { atrib } from "@atrib/mcp"
server.use(atrib())Why atrib exists
Every time an agent calls a tool, something happens that someone (a buyer, a seller, an auditor) needs to record, bill for, or prove. Today, no protocol does that. atrib is the missing layer.
Most MCP servers ship without good visibility into who calls them or how. server.use(atrib()) adds one line of middleware that produces a signed receipt for every response: caller, request, payload, signature. Each receipt links to the call that triggered it, forming a chain of agent activity rather than a flat log of hits. You can see how your tool fits into the larger flow and prove what you returned to anyone who asks. Charging per call later is just routing those receipts into any payment rail; you never write a billing layer.
The layer
One layer, three primitives,
an open loop.
atrib sits between the agents that act and the systems that read those actions.
Everything on the top plugs in through one package.
Everything on the bottom chains into the next pass.
Signature
Every action, provably authored. Ed25519 over canonical JSON.
Chain
Every action, linked to what caused it. A causal graph, by construction.
Receipt
Every chain, readable by anyone. Settled against a policy, with sensible defaults and one-env-var overrides.
Receipts drive settlement. Payments trigger from the chain.
Tamper-proof audit trail. Article 12-ready, day one.
OTel-native. The trace layer you already run.
Receipts drive settlement. Payments trigger from the chain.
Tamper-proof audit trail. Article 12-ready, day one.
OTel-native. The trace layer you already run.
Receipts flow out, settle, audit, and return as the next trace. The loop closes by itself. You didn't write a single line to make that happen.
The surface
One package. Every framework. Every rail.
6 agent frameworks · 6 payment protocols · 36 supported combinations on day one.
New frameworks and protocols ship as additive detectors. The grid grows without a breaking change.
Builds on
Each of these is open and standard. atrib is the protocol that wires them into receipts anyone can verify.
Why you can build on it
Receipts you don't have to trust us for.
- 01Independently verifiable
Any party can verify any record without trusting atrib.
- 02Zero custom crypto
Ed25519, JCS, SHA-256, RFC 6962 Merkle trees. No invented primitives.
- 03Works with what you use
Plugs into existing OTel traces. Integrates every framework, every rail.
- 04Open source, self-hostable
Apache 2.0. Run your own log. The protocol doesn't require us.
Start in a minute
Install the package, drop one line into your server, get a log key.
pnpm add @atrib/mcp