How do you sell freemium to an agent with no card and no checkout form? HTTP 402 + x402: a programmable paywall where the agent pays on-chain in seconds.
Freemium for AI agents works via HTTP 402: one free request per minute, then a 402 response carrying an x402 payment challenge β the agent pays on-chain and gets a 30-day ServicePass, no account or checkout needed.
Every SaaS has a free tier and a paid tier. But how do you sell the paid tier when the customer is not a person but a program? An agent has no card, cannot fill a checkout form, cannot type a CVV.
We solved it with HTTP 402 Payment Required β a status code that waited three decades for its moment. It is not an error. It is an invoice.
Every request passes three doors: a live ServicePass means instant real-time; otherwise the free bucket allows one request per minute (a snapshot); otherwise the server answers 402 with an invoice. One USDC transaction (5 USDC on Arc), an on-chain receipt check β and the agent holds a 30-day ServicePass.
How the gate works #
Every request to the tracker passes three checks:
- Already paid? If the agent holds a live ServicePass (a 30-day access token) β data flows immediately.
- Free allowance? One request per minute is free. A snapshot, not a stream.
- Neither? The server answers 402 and attaches an invoice to the response: what, to whom, how much.
Inside the invoice #
The 402 response is not just text. The PAYMENT-REQUIRED
header carries a machine-readable payment description:
{
"x402Version": 2,
"accepts": {
"scheme": "eip3009-client-broadcast",
"network": "eip155:5042002",
"asset": "USDC",
"amount": "5000000",
"payTo": "0xcdd2...699d",
"maxTimeoutSeconds": 345600
}
}
The agent reads it like a price list: the payment scheme (EIP-3009 β a standardized transfer signature), the network (Arc Testnet), the asset (USDC), the amount (5 USDC β the six zeros are decimals, the amount is in base units), the recipient, and the invoice expiry (4 days).
Why not API keys and billing portals #
An API key needs signup, an email, a card, invoices β a human in the loop. 402 + x402 is a programmable paywall: the agent sees the price β signs a transfer β pays β gets access. The whole cycle takes seconds. For a machine, this is the native way to buy things.
One payment pays once #
After paying, the agent retries the request with the transaction hash
attached. The server checks the blockchain β not a claimed signature,
but the real receipt from a block β and opens access. The same hash
cannot be presented twice: the server atomically claims it, and a second
attempt gets tx_replayed. Even ten parallel requests with
the same hash β exactly one gets through.
Next: the payment itself on Arc β and why gas there is paid in USDC.
Links
- Agent guide (endpoints, limits, examples): agentbadge.xyz/bstock-guide
- All articles in the series: agentbadge.xyz/blog
- MCP endpoint:
https://agentbadge.xyz/mcp/bstock/tools/get_delta