Billing
Plans, compute units, pay-as-you-go overage, top-ups, and where to see your spend.
Pricing has two pieces: a monthly plan that includes a compute-unit allowance, and pay-as-you-go credit that covers anything above the allowance.
Plans
| Plan | Price / month | Included CU | ≈ Requests | RPS | When to pick it |
|---|---|---|---|---|---|
| Free | $0 | 50,000,000 | ~2M | 25 | Hobby projects, prototypes, evaluation. |
| Pro | $29 | 300,000,000 | ~12.5M | 500 | Small to mid production apps. |
| Scale | $199 | 2,500,000,000 | ~100M | 1,500 | High-throughput backends, indexers. |
"≈ Requests" assumes ~24 CU per request, the average across real traffic
on the gateway. Your own mix decides the real number: plain reads like
eth_blockNumber cost 1 CU, eth_getLogs 75.
You can switch plans at any time at endpoint.originstake.com/dashboard/billing. Downgrades take effect at the end of the current billing cycle; upgrades take effect immediately.
What is a compute unit?
A compute unit (CU) is the gateway's billing unit. Every JSON-RPC method
has a CU weight that reflects how expensive the call is for upstream
nodes. eth_chainId is free, cheap reads like eth_blockNumber cost 1 CU,
and heavy calls like eth_getLogs or debug_* / trace_* cost
meaningfully more.
EVM weights (any method not listed costs 10 CU):
| Method | CU |
|---|---|
eth_chainId | 0 |
eth_blockNumber | 1 |
eth_gasPrice | 1 |
eth_getBalance | 11 |
eth_getCode | 11 |
eth_getStorageAt | 17 |
eth_getTransactionCount | 26 |
eth_call | 26 |
eth_estimateGas | 87 |
eth_getBlockByNumber | 16 |
eth_getBlockByHash | 21 |
eth_getBlockTransactionCountByNumber | 16 |
eth_getTransactionByHash | 17 |
eth_getTransactionReceipt | 15 |
eth_sendRawTransaction | 250 |
eth_getLogs | 75 |
eth_newFilter | 20 |
eth_uninstallFilter | 10 |
eth_getFilterChanges | 20 |
trace_block | 300 |
trace_transaction | 300 |
trace_call | 309 |
debug_traceTransaction | 309 |
debug_traceCall | 309 |
debug_traceBlockByNumber | 309 |
eth_queryBlocks | 75 |
eth_queryTransactions | 75 |
eth_queryLogs | 75 |
eth_queryTraces | 309 |
eth_queryTransfers | 309 |
WebSocket subscriptions are billed per delivered event:
| WebSocket event | CU per event |
|---|---|
newHeads | 1 |
logs | 5 |
newPendingTransactions | 2 |
Your usage view in the dashboard shows the CU consumed per method, so you can see exactly where your budget is going.
Tron weights
Tron methods are weighted so a Pro plan ($29) covers ~10M Tron requests/ month — about 70% cheaper than TronGrid Pro's $99 for the same volume. A few representative weights:
| Method | CU |
|---|---|
wallet/getnowblock, eth_blockNumber | 1 |
wallet/getaccount, walletsolidity/getaccount | 5 |
wallet/triggerconstantcontract, eth_call | 20 |
walletsolidity/gettransactioninfobyid | 15 |
eth_getLogs (dynamic by block range) | 40 - 300 |
wallet/broadcasttransaction, eth_sendRawTransaction | 80 |
Full table on /tron. Solidity-node reads cache more aggressively than full-node reads, so the effective CU per call is typically lower if you can use the solidity surface for historical queries.
How overage works
When your monthly CU usage exceeds your plan's allowance, billing switches to pay-as-you-go:
- Rate: $0.20 per million CU of overage (about $5 per million typical requests).
- Source of funds: your prepaid credit balance.
- Settlement: runs in the background every 10 minutes, deducting from credit as overage CU accrues.
If your credit balance hits zero while you're in overage, your keys are
limited to 1 request per second until you top up. They stay valid
(you get 429, not auth errors), so service resumes within about 10
minutes of a top-up.
You can also disable overage entirely on your account. Then reaching the monthly allowance limits your keys the same way until the next calendar month (UTC), or until you turn overage back on with credit in the account. Look for the toggle on the billing page.
Topping up credit
Two ways to add credit:
1. One-time top-up
Go to the dashboard's billing page and click Top up. We use Polar for checkout. Minimum top-up is $5, maximum is $5,000 per transaction. Credit appears on your account within seconds of payment confirmation.
2. Promo codes
Codes from launch campaigns, partner integrations, or support credits are redeemed at endpoint.originstake.com/dashboard/billing/promo. Codes expire six months after they're issued.
Refunds
Top-ups are non-refundable except in two cases:
- Service incident: if we cause sustained downtime, we credit affected accounts proactively. You don't need to ask.
- Mistaken charge: if you topped up the wrong account or were double-charged, email support with the order id. We process these manually.
Unused credit does not expire and rolls forward indefinitely.
Where to see your spend
In the dashboard:
- /dashboard/billing/credit shows your current credit balance and the last few ledger entries (top-ups, settlements, promo credits).
- /dashboard/usage breaks usage down by app, by key, and by method. Month-to-date CU, daily burn rate, and a projection of when you'll exhaust your plan allowance.
Frequently asked
Do anonymous requests cost me anything? No. Anonymous requests are billed only against the global anonymous budget, which we absorb. Once you authenticate, every request counts.
Do failed requests cost CU?
HTTP-level failures (401, 429, 5xx) are not billed. JSON-RPC
errors that the upstream actually computed (revert, invalid params) are
billed at the method's CU weight, because the upstream did the work.
Do cached responses cost CU? Yes, the same CU as the method. The cache makes repeated reads of finalized data faster for you; it does not change the price.
Can I set a hard spend cap? Yes, two ways. Set allow overage = off on the billing page to stop once your monthly allowance is reached. Or set a credit auto-pause threshold (coming soon) to pause billable traffic when credit drops below a chosen amount.