Protocol 03
Spec v0.1Your agent can pay. It cannot decide how much.
When work costs money, a service answers 402 and the agent hands its human a link. The human sets a limit once. After that the agent gets on with it, and every charge lands on a statement you can read.
$npx interagentic popcorn.club orders create --qty 2402 Payment Required — 9.00 credits Ask your human to approve a budget: id.interagentic.dev/approve/4c7e… # human approves $50/month for popcorn.club$npx interagentic popcorn.club orders create --qty 2✓ ord_8fJ2 — 9.00 credits used 41.00 remaining this monthWhat a credit is
Prepaid access to services we resell.
You buy services from The Interagentic Company, which curates providers and offers them under one account. Credits are how that prepaid arrangement is measured. They are not money, and nothing here tries to be a payment network.
The distinction matters in practice, not just legally. A credit is only ever redeemable against services The Interagentic Company itself provides or has an agreement to resell. There is no exchange, no secondary market, and no way for one account to pay another. What you are buying is capacity with a vendor we have already negotiated with — the credit is just the unit it is counted in.
For the agent, this collapses a genuinely hard problem. It never holds a card, never sees an invoice, and cannot be talked into spending outside the limit its human set. The worst a compromised agent can do is exhaust a budget you chose.
In plain terms
- Not a currency, and not electronic money.
- Redeemable only with The Interagentic Company and the providers it resells.
- Not transferable between accounts, and not tradable.
- Not redeemable for cash.
- Issued by one company, spendable in one place — a closed loop.
Full conditions are in the terms.
The flow
A refusal the agent can act on.
402 is not an error here — it is a negotiation. The response carries everything the agent needs to get a decision from a person and then carry on.
- 1agentservice
Attempt the call
Nothing special. The agent does not know or care that this action costs anything.POST /api/v1/orders { "qty": 2 }
- 2serviceagent
Be told the price
The amount is denominated ininteragentic-credit, which is a unit of account for this closed loop and not a currency code. - 3agenthuman
Hand over a link
Deterministic, so the agent can construct it offline. The requesting service, the amount and the reason are all in the URL — the human sees exactly what they are agreeing to.https://id.interagentic.dev/approve ?service=popcorn.club &amount=9.00 &reason=2+bags+of+Classic
- 4humanbroker
Set a limit, once
Approve this charge only, or a recurring cap for this service. The agent cannot change it afterwards, and revoking it takes one click. - 5agentservice
Retry, and it works
Every later call within the limit goes straight through. The agent never asks again until the limit is reached.
HTTP/1.1 402 Payment Required
X-Payment: interagentic-credit; amount=9.00
Link: <https://id.interagentic.dev/approve/4c7e…>; rel="approve"
Content-Type: application/json
{
"error": "payment_required",
"asset": "interagentic-credit",
"amount": "9.00",
"description": "2 × Classic popcorn",
"approveUrl": "https://id.interagentic.dev/approve/4c7e…"
}Shaped like x402
The pattern follows the x402 convention for machine-payable endpoints, so a client that already understands 402 flows needs almost no new code. The asset is ours and stays inside our loop.Controls
The human holds every lever.
Limits live with the broker, not with the agent and not with the service. An agent can read what it is allowed to spend; it can never widen it.
An approval
servicestringrequired- Exactly one domain. An approval for one service grants nothing anywhere else.
limitnumber- The ceiling for the period. Omit it and the approval covers this single charge only.
periodstringonce,dailyormonthly. Resets are calculated by the broker, never by the service.expiresAtstring- Optional hard stop. After it passes the agent is back to asking.
$npx interagentic credits remaining 41.00 approvals popcorn.club 50.00 / month extraorbital 25.00 / month $npx interagentic credits ledger --limit 3 09-17 popcorn.club 2 × Classic 9.00 09-16 extraorbital mongo/orders 1.20 09-14 extraorbital s3/assets 0.40Attribution is per agent
Every line records which agent triggered the charge, which vendor delivered it, and what it was for. If you run ten agents against one account, you can tell them apart — and revoke one without touching the others.Every protocol here is a spec you can implement yourself.
There is no gatekeeper. Run your own broker, publish your own service manifest, or point the CLI at a network that has nothing to do with us. The specs are the product.