x402 upto: usage-based pricing for paid APIs
Some API calls cost more or less depending on what they do: tokens generated, bytes moved, compute time. A fixed price does not fit those. The x402 upto scheme is built for them. This guide summarizes the x402 docs on upto and the scheme overview, plus Polygon's per-inference billing page, and says where they are silent.
What upto is
The seller advertises a maximum price for one request, and the buyer signs once for that maximum. After doing the work, the seller settles for the actual usage. The x402 docs require the final amount to be less than or equal to the maximum. Setting the settled amount to "0" means no charge for that request. The seller can express the amount as raw atomic units ("50000"), a percentage of the route maximum ("50%") or a dollar price ("$0.05").
What happens when the seller gives no amount: the scheme page does not say. The behavior commonly described, that the maximum is settled, is not stated there, so confirm it with your SDK and facilitator before relying on it.
upto supports only the authorization flow, according to the scheme overview.
Permit2 and the approval step
On EVM, upto uses Permit2, because the settled amount is not known when the buyer signs. The facilitator advertises a facilitatorAddress in the payment requirements, and the client binds the authorization to that facilitator. Polygon's page adds that replay protection relies on Permit2 nonces and that authorizations carry validAfter and deadline bounds, so an unsettled authorization expires.
The scheme page does not describe the token approval Permit2 needs. The facilitator /supported endpoints do list two extensions, eip2612GasSponsoring and erc20ApprovalGasSponsoring, which our facilitator support page reads as covering that approval, so the buyer does not pay gas for it. The upto docs themselves do not mention these extensions, so treat that reading as unconfirmed by the scheme docs. On Solana, the docs describe a different mechanism: the client escrows the ceiling in an onchain channel, and the facilitator sponsors transaction fees and channel rent.
upto, exact or batch-settlement
- exact: each request has a known, fixed price and the buyer authorizes that amount.
- upto: the cost of one request depends on usage, and the buyer authorizes a ceiling.
- batch-settlement: many small or repeated payments, where settling each separately would be inefficient; authorizations accumulate against a reusable channel.
The overview describes each scheme but gives no explicit decision rules, so the guidance above is our reading of those descriptions.
Illustrative 402 entry
Illustrative only, built from field names in the docs. Field names differ between the scheme page (price) and Polygon's page (maxAmountRequired), and the docs do not give a full example payload. Check your SDK's actual output.
{
"accepts": [{
"scheme": "upto",
"network": "eip155:137",
"maxAmountRequired": "50000",
"payTo": "0xSELLER_ADDRESS",
"extra": { "facilitatorAddress": "0xFACILITATOR_ADDRESS" }
}]
}
With USDC's six decimals, 50000 is $0.05, per Polygon's example. Where facilitatorAddress sits in the payload is not specified in the docs we read, so its placement under extra here is a guess.
Seller checklist
- Set the route
schemetouptoand thepriceto the most a buyer should authorize. - In the handler, call
setSettlementOverrideswith the measured amount. Do not rely on the unspecified no-amount behavior. - Never settle above the maximum; the facilitator settles at or below the authorized amount.
- Confirm your facilitator lists
uptoon your network (see below). - On Solana, choose self-managed (a
receiverAuthorizerSignerhot key) or facilitator-delegated mode. The docs recommend self-managed.
Buyer checklist
- Register
uptonext toexactif you may call both fixed-price and usage-based resources. - Read the maximum before signing; that is the most you can be charged for the call.
- Expect unsettled authorizations to expire at their
deadline. - Check an endpoint before paying it: how to check any x402 endpoint.
Which facilitators list upto
From our facilitator support table (mainnets, fetched 2026-10-10): Coinbase CDP lists upto on Base, Polygon, Arbitrum, World Chain and Solana. Dexter lists it on Base, Polygon, Arbitrum, World Chain and Monad. Daydreams lists it on Base and Ethereum. PayAI, x402.rs and the x402.org reference facilitator list no upto on those mainnets. Facilitators change without notice, so check /supported yourself.
Adoption
In a snapshot from 2026-10-09, 710 Bazaar listings offer upto on 32 hosts, and one host holds 80% of them. See State of the x402 Bazaar for the counts.
Tanod charges exact today and is evaluating upto for OCR and transcription.
Sources: docs.x402.org scheme pages and Polygon's per-inference billing page, read 2026-10-10. Corrections: [email protected].