Usage-Based Billing Comes to x402: Pay for What You Use, Not What You Might
The Dexter facilitator ships the x402 upto scheme — variable-amount settlements where buyers authorize a maximum and sellers charge actual usage. Live on Base, Polygon, and Arbitrum with real on-chain settlements.
The News
APRIL 2026 - Dexter, the most-used independent x402 facilitator by daily transaction volume, today ships production support for the upto payment scheme - the x402 protocol's answer to usage-based billing.
With upto, a buyer authorizes a maximum payment amount, and the seller settles for the actual cost of the service consumed. The buyer is cryptographically guaranteed to never be charged more than their authorized maximum. If usage is zero, no on-chain transaction occurs and nothing is charged.
Dexter is the first independent facilitator to ship upto in production, with verified settlements on three mainnet chains.
Why This Matters
The x402 protocol's original exact scheme requires knowing the price before the request is made. That works for fixed-price APIs - a weather lookup costs $0.01, every time.
But the fastest-growing category of paid APIs is AI inference, where cost varies by orders of magnitude depending on the request. A short GPT-4 response might cost $0.002. A long one with tool use might cost $0.50. Charging $0.50 flat means overcharging 99% of requests. Charging $0.002 flat means losing money on complex ones.
The upto scheme solves this. The buyer signs a Permit2 authorization for the maximum they're willing to spend - say $1.00. The seller processes the request, measures actual usage, and tells the facilitator to settle for the real cost - say $0.04. The Permit2 witness struct cryptographically binds the facilitator's address, so only the designated facilitator can execute the settlement, and only for an amount up to the authorized maximum.
This is the payment primitive that makes x402 viable for AI agent billing at scale.
How It Works
- Buyer signs a Permit2
PermitWitnessTransferFromauthorization with an upto-specific witness that includes the facilitator's address and the maximum amount - Seller verifies the payment through the facilitator - confirms the signature is valid, the buyer has sufficient balance, and the facilitator binding is correct
- Seller does the work - runs inference, processes data, serves content
- Seller settles for actual usage - tells the facilitator to charge the real cost (must be ≤ the authorized maximum)
- Facilitator settles on-chain through the
x402UptoPermit2Proxycontract, which enforces the maximum and the facilitator binding
Three settlement override formats are supported: raw atomic units ("42000"), percentage of maximum ("25%"), or dollar amount ("$0.04").
If the actual usage is $0, the facilitator returns success with no on-chain transaction - the buyer isn't charged and no gas is spent.
What This Enables
| Use Case | How upto helps |
|---|---|
| LLM inference | Authorize $1.00, pay $0.03 for a short response or $0.80 for a complex one |
| Bandwidth metering | Authorize $5.00, pay per MB transferred |
| Compute pricing | Authorize $10.00, pay per GPU-second consumed |
| Data APIs | Authorize $0.50, pay per record returned |
| Agent tool calls | Authorize a budget, pay actual cost per tool invocation |
Chain Support
The upto scheme is live on every chain where the upstream x402UptoPermit2Proxy contract is deployed:
| Chain | Network | Status | Proxy Contract |
|---|---|---|---|
| Base | eip155:8453 | Live | 0x4020...0002 |
| Polygon | eip155:137 | Live | 0x4020...0002 |
| Arbitrum | eip155:42161 | Live | 0x4020...0002 |
| Base Sepolia | eip155:84532 | Live (testnet) | 0x4020...0002 |
Additional chains will be supported as the x402 Foundation deploys the proxy contract. No facilitator changes required - we add the chain ID and it works.
The exact scheme continues to operate on all nine EVM chains (Base, Polygon, Arbitrum, Optimism, Avalanche, BSC, SKALE Base, and both Sepolia testnets) plus Solana mainnet, devnet, and testnet.
Verified Settlements
All three mainnet chains were tested with real on-chain settlements. Each test authorized $0.10 maximum and settled for $0.01 actual - a 10% utilization rate demonstrating the variable settlement capability:
| Chain | Transaction | Authorized | Settled |
|---|---|---|---|
| Base | 0x3419b1... | $0.10 | $0.01 |
| Polygon | 0x412318... | $0.10 | $0.01 |
| Arbitrum | 0xd55bea... | $0.10 | $0.01 |
For Developers
If your application already uses x402 with the Dexter facilitator, adding upto support requires:
- Check
/supported- upto entries include afacilitatorAddressfield inextra. Your client needs this address for the Permit2 witness. - Sign with the upto witness type - the witness struct adds a
facilitatorfield alongsidetoandvalidAfter. - Set
scheme: "upto"in bothpaymentPayload.acceptedandpaymentRequirements. - At settle time, pass the actual usage amount in
paymentRequirements.amount(must be ≤ the authorized maximum).
The facilitator at x402.dexter.cash handles everything else - signature verification, Permit2 proxy interaction, gas sponsorship, and on-chain settlement.
The Bigger Picture
The x402 Foundation published the upto specification on March 4, 2026 and merged the TypeScript SDK implementation on March 25. Dexter's production deployment follows 17 days later.
This is the second major x402 scheme after exact. A third - streaming sessions via the Machine Payments Protocol - is already live through Dexter's @dexterai/mpp package. Together, these three patterns cover the full spectrum of machine payment use cases: fixed-price (exact), usage-based (upto), and high-frequency streaming (MPP sessions).
The facilitator endpoint at x402.dexter.cash/supported now advertises both exact and upto schemes, with the facilitator's settlement address included in upto entries for client-side witness construction.