Skip to content

Units and pricing

Willow RPC offers a Free plan. Beyond it, usage is paid from a prepaid balance, or through a monthly plan that includes units and proof credit. /v1/prices always reports the current prices.

A unit is up to 4 KB of gzipped response. Most calls cost 1 unit, and a full Ethereum block with its transactions costs about 20.

  • Every request Willow serves costs at least 1 unit.
  • Each item in a batch is metered separately.
  • Refusals are not billed, except as described for state methods below.
  • State methods have flat prices: 3 units for a forwarded method such as eth_sendRawTransaction, 5 for a verified read such as eth_getBalance, and 25 for eth_call, or 3 units per provider request if that is more. A reverted or halted eth_call and a provider’s error for a forwarded method are billed as results. A call refused because it reads too much state or ran out of time costs 3 units per provider request made. State methods are available on plans that include them (see Plans); on other plans they return -32601.
  • Log proofs are priced per block, not in units. Transaction and receipt proofs are metered in units like any other response, on every plan.
  • History fetches are also metered in units, by the size of the blocks fetched.

Send Accept-Encoding: gzip. The size is metered gzipped in either case, and the response is delivered faster.

PlanPriceUnitsLog proofsState methodsRequests per second
Free$0, no card10M a monthNot includedNot included25
Pay as you goPrepaid, from $10$2 per 1MPaid from the balanceIncluded100
Builder$49 a month50M a month, then $1.20 per 1M$10 of proof credit a month, then the balanceIncluded100
Scale$299 a month400M a month, then $0.90 per 1M$50 of proof credit a month, then the balanceIncluded300
  • Free requires no payment card. When the month’s units are exhausted, requests are refused with HTTP 402 until the next month, or until credit is added.
  • Pay as you go begins when credit is added to a Free account. The Free units remaining that month remain available for reads until the month ends. Thereafter, every unit is charged to the balance at $2 per 1M.
  • Builder and Scale include units and proof credit each month. Beyond the included units, usage costs $1.20 per 1M units on Builder and $0.90 per 1M on Scale, paid from the balance, or billed to the card as overage if enabled.
  • Custom plans are for high volume: per-request pricing, invoiced monthly, and higher rate limits. They are requested with Talk to us on the Billing page. A custom plan includes state methods only if its agreement does.

Builder and Scale are paid by card (a Stripe subscription) or from the balance each month. Plans are selected, changed, and cancelled on the Billing page. A cancelled plan remains active until the end of its month.

A log proof is priced per block, at one flat price per chain:

ChainPrice per proven blockPer 1,000 blocks
Ethereum$0.020$20
Base$0.006$6
OP Mainnet$0.006$6
Arbitrum One$0.00025$0.25
Unichain$0.00025$0.25
Ink$0.00025$0.25
Robinhood Chain$0.00025$0.25
  • One price, proven or not. A block that is already proven costs the same as one that must be proven on request.
  • No block is charged twice. Willow retains, permanently, the block ranges each account has paid for. A repeated request for a proof over blocks already paid for, or retrieval of the result of a job, incurs no further charge.
  • Charged before proving. A request for blocks without a proof is charged for the entire requested range before the job is queued. A job that fails permanently is refunded.
  • Credit applied first. Builder and Scale proof credit is applied first, then the balance. Proof credit is monthly, and any remainder expires at the end of the month.
  • Quotes. willow_quoteLogsProof reports the cost of a request, without charge. See Quotes and acceptance.

The balance is a prepaid amount. It pays for units beyond the plan’s included units, and for proofs.

Credit is purchased by card on the Billing page, from $10 up to $5,000 per transaction, through Stripe Checkout.

Every credit and charge is listed in the ledger on the Billing page.

A spend cap limits the amount the balance can be charged in a month, for usage and proofs combined. When the month’s charges reach the cap, requests are refused with HTTP 402 until the cap is raised or the next month starts. The cap is set, changed, or removed on the Billing page.

Overage allows a Builder or Scale account to continue past a zero balance, with the excess billed to its card afterward. It is disabled by default, requires a card subscription, and requires a spend cap, so charges never exceed an amount set by the account holder.

If a card payment fails, a grace period applies during which the payment can be corrected on the billing portal. After the grace period, the account’s keys are suspended, and requests with them are refused with HTTP 401 until the payment succeeds.

GET https://api.willow.tech/v1/prices returns every price above as JSON, for programs and agents: the unit, each plan, the price per proven block on each chain, and the top-up limits. Monetary amounts are expressed in micro-dollars (1 USD = 1,000,000).

Terminal window
curl -s https://api.willow.tech/v1/prices
{
"currency": "USD",
"money_unit": "micro-dollars (1 USD = 1,000,000)",
"unit": { "unit_bytes": 4096, "refusals_billed": false, … },
"plans": [
{ "id": "free", "display_name": "Free", "monthly_micros": 0, "included_units": 10000000,
"requests_per_second": 25, "proofs": false, … },
…
],
"proofs": {
"chains": [ { "chain_id": 1, "chain_name": "ethereum", "micros_per_block": 20000, … }, … ]
},
"credits": { "min_topup_micros": 10000000, "max_topup_micros": 5000000000, … },
"agents": { "starter_balance_micros": 10000000, … }
}