Skip to content

Pricing: every method priced in public, pay as you go

Supported eth_call requests cost $1.50 per million before free credits; calculate the complete workload using current method weights and limits.

1 USD = 10,000,000 CU. Pay as you go with a minimum top-up of $0.01 in USDC / USDT / USDG. No subscriptions, no credit card; every method priced in public. Rejected requests are not billed.

Plans

Get started free

30,000,000 CU on sign-up. After your first billed call, each 30-day cycle ends with a top-up to 30,000,000 CU if your balance is below it (no rollover). 25 calls per second on average across all keys in your account. No credit card.

Pay as you go

Minimum top-up $0.01. Your first paid top-up removes the account-wide calls-per-second cap; each key is raised to at least 2,000 CU/s (burst 10,000 CU), and higher custom limits are kept. Remaining free credits stay.

Common methods (per 1M calls)

  • eth_call $1.50
  • eth_getLogs $3.00
  • address balances $2.50
  • daily DEX prices $1.50
Read the RPC CU pricing guide →

Full method weight table

Sorted by CU, lowest first.

MethodCU
eth_blockNumber1
eth_chainId1
eth_getBlockByNumber5
eth_blobBaseFee10
eth_feeHistory10
eth_gasPrice10
eth_getBalance10
eth_getBlockByHash10
eth_getBlockReceipts10
eth_getBlockTransactionCountByHash10
eth_getBlockTransactionCountByNumber10
eth_getCode10
eth_getHeaderByHash10
eth_getHeaderByNumber10
eth_getProof10
eth_getRawTransactionByBlockHashAndIndex10
eth_getRawTransactionByBlockNumberAndIndex10
eth_getRawTransactionByHash10
eth_getStorageAt10
eth_getTransactionByBlockHashAndIndex10
eth_getTransactionByBlockNumberAndIndex10
eth_getTransactionByHash10
eth_getTransactionCount10
eth_getTransactionReceipt10
eth_getUncleByBlockHashAndIndex10
eth_getUncleByBlockNumberAndIndex10
eth_getUncleCountByBlockHash10
eth_getUncleCountByBlockNumber10
eth_maxPriorityFeePerGas10
eth_syncing10
net_version10
web3_clientVersion10
web3_sha310
eth_call15
eth_createAccessList20
eth_estimateGas20
eth_simulateV120
eth_getLogs30
eth_sendRawTransaction30
debug_traceBlockByHash100
debug_traceBlockByNumber100
debug_traceCall100
debug_traceTransaction100
trace_block100
trace_call100
trace_get100
trace_replayTransaction100
trace_transaction100

Data API operations

MethodCU
data.chains1
data.status_freshness1
data.block5
data.block_by_hash5
data.nft5
data.token5
data.transaction5
data.block_transactions10
data.tokens_batch10
data.dex_prices15
data.stock15
data.stocks15
data.address_balances25
data.address_transactions25
data.address_transfers25
data.dex_swaps25
data.nfts_by_owner25
data.token_holders25
data.token_transfers25
data.block_traces200
data.transaction_trace200

Webhook push

CU weights from GET /v1/plans. Automatic retries are free.

Free addresses per account per UTC day: 1000

Free address allowance per account per UTC day, shared by all subscription groups regardless of plan. For each group, count its maximum address count while online during that day; allocate the allowance in ascending group ID order. The same address in two groups counts twice; the number of chains in a group does not multiply its address count. A group offline or deleted for the entire day contributes nothing. For each group, the remaining count after its share of the allowance is multiplied by the `push.address_day` CU weight in `method_weights`. The current configured allowance comes from the same pricing policy used for the address-day charge; it is not an account capacity limit or a separate allowance per group.

MethodBilling unitCU
push.address_dayBillable address-day33
push.historySuccessful history request25
push.logDelivered data event150
push.native_transferDelivered data event150
push.token_transferDelivered data event150
Self-service

Up to 1,000,000 addresses per subscription. Available on sign-up.

Standard usage rates

Enterprise

10,000,000 / 100,000,000 addresses per subscription.

Contact us

Both tiers use the same address-day and delivered-event rates.

Chain-specific operations that are unavailable (e.g. unsupported chain or outside trace coverage) return HTTP 422 and are not billed.

These weights are also available as JSON from GET /v1/plans.

All methods and CU weights

Each row is a method and each column is a chain. CU weights come from the public pricing endpoint.

MethodCU per callArbitrum OneBaseBNB Smart ChainEthereumEthereum SepoliaHyperEVMPolygonRobinhood ChainRobinhood Chain Testnet
Data APISupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedNot supported
WebSocket SupportSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupported
Webhook pushSupported · Confirmations 1–120 (default 120)Supported · Confirmations 1–519 (default 1)Supported · Confirmations 1–2 (default 1)Supported · Confirmations 1–82 (default 6)Supported · Confirmations 1–67 (default 6)Supported · Confirmations 1–1 (default 1)Supported · Confirmations 1–200 (default 200)Supported · Confirmations 1–1 (default 1)Supported · Confirmations 1–1 (default 1)
Send TransactionsSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupported
Send Transactions (Keyless Public Endpoint)SupportedSupportedSupportedSupportedSupportedNot supportedSupportedSupportedSupported
State History WindowHistorical state for the most recent 5,000 blocksHistorical state for the most recent 10,000 blocksHistorical state for the most recent 100 blocksHistorical state for the most recent 250,000 blocksUnknownUnknownHistorical state for the most recent 126 blocksHistorical state for the most recent 900 blocksHistorical state for the most recent 1,023 blocks
eth_getLogs Max Block Range1,000 blocks1,000 blocks1,000 blocks1,000 blocks1,000 blocks1,000 blocks1,000 blocks1,000 blocks1,000 blocks
Data API DatasetsBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Balances, Holders, NFTs, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Data FreshnessBlocks, Transactions, Address Transactions, Transfers, Token Metadata, Balances, Holders, NFTs, DEX Swaps, DEX Prices, Tokenized Stocks, Traces, Data FreshnessNot supported
debug_traceBlockByHash100✓Supported—Not supported—Not supported✓Supported—Not supported—Not supported✓Supported✓Supported✓Supported
debug_traceBlockByNumber100✓Supported—Not supported—Not supported✓Supported—Not supported—Not supported✓Supported✓Supported✓Supported
debug_traceCall100✓Supported—Not supported—Not supported✓Supported—Not supported—Not supported✓Supported✓Supported✓Supported
debug_traceTransaction100✓Supported—Not supported—Not supported✓Supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_blobBaseFee10✓Supported✓Supported—Not supported✓Supported✓Supported—Not supported✓Supported✓Supported✓Supported
eth_blockNumber1✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_call15✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_chainId1✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_createAccessList20✓Supported✓Supported—Not supported✓Supported✓Supported—Not supported✓Supported✓Supported✓Supported
eth_estimateGas20✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_feeHistory10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_gasPrice10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getBalance10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getBlockByHash10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getBlockByNumber5✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getBlockReceipts10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getBlockTransactionCountByHash10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getBlockTransactionCountByNumber10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getCode10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getHeaderByHash10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getHeaderByNumber10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getLogs30✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getProof10✓Supported✓Supported—Not supported✓Supported✓Supported—Not supported✓Supported✓Supported✓Supported
eth_getRawTransactionByBlockHashAndIndex10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getRawTransactionByBlockNumberAndIndex10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getRawTransactionByHash10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getStorageAt10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getTransactionByBlockHashAndIndex10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getTransactionByBlockNumberAndIndex10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getTransactionByHash10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getTransactionCount10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getTransactionReceipt10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_getUncleByBlockHashAndIndex10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getUncleByBlockNumberAndIndex10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getUncleCountByBlockHash10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_getUncleCountByBlockNumber10✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_maxPriorityFeePerGas10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_sendRawTransaction30✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
eth_simulateV120✓Supported✓Supported—Not supported—Not supported—Not supported—Not supported✓Supported✓Supported✓Supported
eth_syncing10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
net_version10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
trace_block100—Not supported—Not supported—Not supported✓Supported—Not supported—Not supported—Not supported—Not supported—Not supported
trace_call100—Not supported—Not supported—Not supported✓Supported—Not supported—Not supported—Not supported—Not supported—Not supported
trace_get100—Not supported—Not supported—Not supported✓Supported—Not supported—Not supported—Not supported—Not supported—Not supported
trace_replayTransaction100—Not supported—Not supported—Not supported✓Supported—Not supported—Not supported—Not supported—Not supported—Not supported
trace_transaction100—Not supported—Not supported—Not supported✓Supported—Not supported—Not supported—Not supported—Not supported—Not supported
web3_clientVersion10✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported✓Supported
web3_sha310✓Supported✓Supported—Not supported✓Supported✓Supported—Not supported✓Supported✓Supported✓Supported

Common unsupported requests

  • For trace methods: use debug_traceTransaction with {"tracer":"callTracer"} only when the target chain supports debug_traceTransaction.
  • Filter methods (such as eth_newFilter): poll eth_getLogs instead. Calling eth_subscribe over HTTP returns -32601; on chains where ws is true in /v1/chains, eth_subscribe is available over WebSocket (see Supported Chains in the documentation); otherwise, poll eth_getLogs.
  • For historical queries, check the target chain’s Data API datasets and coverage; see the dataset catalog.

Usage estimator

Pick methods and calls per day to estimate CU usage per cycle, the share of the free-plan quota, and cost at list price.

Total CU per 30-day cycle
9M CU
Share of free-plan cycle quota
30% (free quota 30M CU)
Estimated at list price
$0.90
Average calls per second
0.23 calls/s (free-plan cap 25 calls/s, short bursts allowed)

Allowed & denied methods

For per-chain method availability and policies, see the JSON-RPC Method Policy in the documentation →

Billing details (settlement, rounding and carry-over, balance checks)

Usage is metered in CUs (Compute Units): each JSON-RPC method consumes a set number of CUs based on its weight. Usage is totaled across all chains, JSON-RPC and Data API combined. Testnet requests use the same CU weights as mainnet and draw from the same balance and free credits.

JSON-RPC methods not listed in the weight table are billed at 10 CU.

Every 1,000 CU settles as 1 billing unit.

Settlement

Usage is charged per account per hourly period, rounded down to whole billing units (1 unit = 1,000 CU), with the remainder carrying over to the next period (across periods the total charged is floor(total CU / 1,000)); settlement runs about 15 minutes after the period ends. For example: 508 CU carried over + 2557 CU consumed = 3065 CU charges 3 billing units, with 65 CU carried over.

Balance & admission

Each request is checked against your balance in real time, including usage not yet billed. Once your balance runs out, new requests are rejected with HTTP 402.

Free plan

Includes 30,000,000 CU sign-up credits. Each 30-day cycle starts on first billed usage and automatically refills up to 30,000,000 CU at the end of the period (no accumulation). All keys share an average of 25 calls per second, and short bursts are allowed; each key keeps its default 100 CU/s limit (burst 400 CU).

No credit card required — sign up instantly with GitHub, Google, or your wallet.

Pay with USDC / USDT / USDG

Minimum top-up is $0.01. Each account has a dedicated deposit address; humans and AI agents follow the same workflow.

Supported networks & tokens

Ethereum (USDC, USDT), BNB Smart Chain (USDT, USDC), Polygon (USDC, USDT), HyperEVM (USDC, USDT), Robinhood Chain (USDG), Base (USDC), Arbitrum One (USDC, USDT)

Real-time availability is subject to GET https://api.blockvectra.com/v1/topup/status.

Sign in, open Billing, and use the deposit address and token details shown for your account.

Once the first paid top-up is credited, free cycle refills stop, unused free credits remain available, and the account-level call-rate cap is removed; each non-revoked key is raised to at least the paid-account floor (a lower bound, not a cap), and higher custom limits are kept.

We will never ask for your private key or seed phrase; deposit addresses are only provided within your account.

FAQ

Can one API key be used on all chains?

Yes. One API key works for JSON-RPC on every supported chain and for the Data API on chains that offer it; a key belongs to the account, not to a specific chain. Read the one key, many chains guide →

Are rejected requests billed?

No. Section 8 (Metering and billing) of the Terms of Service says: requests the Service rejects, for example for insufficient Credits, exceeded rate limits, a temporarily unavailable network or a malformed request, are not billed. Requests outside our data coverage are not billed but may count toward rate limits. Read Section 8 of the Terms →

How do I pay?

Pay-as-you-go: 1 USD = 10,000,000 CU, minimum top-up $0.01. Supported networks and minimum amounts are in the Pay with USDC / USDT / USDG section.

View the JSON-RPC reference →