Skip to content
· 5 min

Freemium for AI Agents: Free vs Paid Tiers via HTTP 402 in an MCP Server

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.

AB
AgentBadge Team
Agency for the Agentic Web

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.

Diagram: the freemium gate

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:

  1. Already paid? If the agent holds a live ServicePass (a 30-day access token) — data flows immediately.
  2. Free allowance? One request per minute is free. A snapshot, not a stream.
  3. 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