The x402 Payment Protocol
How HTTP 402 Payment Required became a real payment rail: the request/quote/sign/settle handshake, the EIP-3009 stablecoin authorization underneath it, the facilitator model, and what it means for payment engineers coming from card rails.
Payment schemes
A scheme defines how the payment payload is formed, verified, and settled. Schemes are pluggable; three are specified today:
| Scheme | Semantics | Typical use |
|---|---|---|
| exact | Settled amount must equal the quoted amount exactly. | Fixed-price API calls, paywalled content — the default. |
| upto | Client authorizes a maximum; the actual settled amount may be lower. | Metered usage — settle for tokens/compute actually consumed. |
| batch-settlement | Multiple verified payments settled in one on-chain transaction. | High-frequency micro-payments where per-transfer gas dominates. |
How exact works per chain
EIP-3009 TransferWithAuthorization
The client signs an EIP-712 typed message; anyone can submit it to the token contract, which validates the signature and moves funds. Requires token support — USDC implements it natively; most other ERC-20s do not, which in practice makes x402 a USDC protocol on EVM chains today.
SPL TransferChecked
A partially-signed transaction with a strict instruction layout; the facilitator acts as fee payer and must not appear in any instruction accounts. Works with any SPL / Token-2022 token.
Networks
v2 identifies networks with CAIP-2. The CDP facilitator (the largest) supports Base, Polygon, Arbitrum, World Chain, and Solana, plus their testnets; other facilitators extend to Avalanche, IoTeX, and beyond. Fiat-style identifiers (ach:us, sepa:eu) are syntactically valid, anticipating non-blockchain settlement schemes.
| CAIP-2 | Network | v1 string |
|---|---|---|
| eip155:8453 | Base mainnet | base |
| eip155:84532 | Base Sepolia (testnet) | base-sepolia |
| eip155:1 | Ethereum mainnet | ethereum |
| eip155:137 | Polygon | polygon |
| eip155:42161 | Arbitrum One | — |
| eip155:43114 | Avalanche C-Chain | avalanche |
| solana:5eykt4… | Solana mainnet | solana |
Contract addresses and decimals for settlement assets: Stablecoin Reference →