upto
Variable-amount payments — the payer signs a maximum, you settle only what was used. EVM only.
upto is for prices you can’t know until the work is done: per-token LLM billing, per-second streaming, per-byte transfer. The payer signs a Permit2 authorization for a maximum amount; when your server settles, it specifies the amount actually consumed, up to that maximum.
How it works
- Your server advertises
uptorequirements with the ceiling amount. - The payer signs a Permit2 authorization for that maximum.
- Your server verifies the payload, does the metered work, and calls
/settlewith the actual amount consumed. - Solvador transfers the actual amount — never more than the signed maximum.
The settle response reports what was actually charged in its amount field:
{
"success": true,
"transaction": "0x6fe1…c40b",
"network": "eip155:8453",
"payer": "0xPayerAddress",
"amount": "4200"
}Here the payer authorized up to some maximum, but only 4200 atomic units ($0.0042 in USDC) were settled.
Gasless approvals
Permit2-based flows need a one-time on-chain approval from the payer to the canonical Permit2 contract. For permit()-capable tokens like USDC, Solvador sponsors that approval so payer onboarding is fully gasless — advertised as the eip2612GasSponsoring extension in GET /supported.
Availability
upto is registered on all 11 EVM networks. It is not available on Solana, NEAR, or the XRP Ledger — use exact there.