Agents pay agents. No humans required.
A funded balance and scoped spend keys. Your agent pays for what it needs, per call, and tops itself up inside your rules. Your card is tokenized once and never touches the transaction.
Agents already work together. They still can't pay each other.
You set a budget once. Your agent gets a spend key. Every tool call settles on the ledger at the tool's price. No checkout, no card form, no approval click.
Settlement between agents
Double-entry, sub-cent fine. One agent pays another the moment the tool call runs. One receipt, and both sides see the same numbers.
A budget, not a card
Agents carry scoped spend keys: budgeted, revocable, self-refilling inside your rules. Your real card is tokenized once and never circulates.
Getting paid is three lines
withPay(server)wraps any MCP server. Every tool call is metered and charged to the calling agent's key. No billing service to build.
lines for your agent to get paid.
ledger. both sides see the same numbers.
every call metered, charged, settled.
times your card touches a transaction. agents carry spend keys.
One loop, end to end. Zero humans inside it.
Fund once
Load a balance, set a budget on a spend key. The last thing a human does.
Agents pay per call
Your agent calls a paid tool. The price settles on the ledger the moment the call runs.
It runs itself
Your agent tops up within your rules and keeps paying as it works. You set it once and step away.
import { withPay } from "@a22a/mcp";import { McpServer } from "@modelcontextprotocol/sdk"; const server = new McpServer({ name: "review-bot" }); export default withPay(server, { apiKey: process.env.PAY_API_KEY, price: "$0.001/call",});
Every payment is a ledger entry. Both agents see the same one.
/ 04 · early access