JSON-RPC
Supported JSON-RPC methods, CU weights, and error codes. Set up an endpoint, choose a chain, and check method availability, pricing, and billing rules.
Overview
All requests are counted in Compute Units (CU) and rate-limited per key.
- Endpoint:
POST /v1/{chain}/{api_key}(key in the path) orPOST /v1/{chain}(key in a header). For Robinhood Chain,{chain}isrobinhood_mainnet:https://api.blockvectra.com/v1/robinhood_mainnet. The same API key works on every supported chain - Protocol: HTTP
POST, single call or batch - Metering: A request's total CU cost counts against your key's burst capacity as soon as it arrives. Every accepted call that gets a response is charged at the method's published CU weight; the Errors reference lists the cases that are not billed. Billing is settled hourly (rounded down to whole units, remainder carries over, executed ~15 minutes after the period ends)
- Ethereum: its own method list and a state window determined by
state_window_blocks— see Supported Chains → Ethereum.
For complete parameter schemas, method signatures, and interactive request testing across all methods, see the Full Reference. For path versioning, backward compatibility rules, and SDK recommendations, see API versioning and compatibility.
To get an API key and send a first request, see the Quickstart; it also covers key passing and batch requests.
Common calls
Worked examples for common calls.
Query logs (eth_getLogs)
Filter a contract's logs over a recent block range — here, the ERC-20 Transfer event (topic 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef). See the CU Metering Rules table below for eth_getLogs's current CU weight; a range wider than the chain's max_logs_block_range (from GET /v1/chains) is rejected with -32602.
export BLOCKVECTRA_API_KEY=rgw_your_api_key
curl -X POST "https://api.blockvectra.com/v1/robinhood_mainnet" \
-H 'Content-Type: application/json' \
-H "x-api-key: $BLOCKVECTRA_API_KEY" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [{
"fromBlock": "0x45a2409",
"toBlock": "0x45a2609",
"address": "0x1111111111111111111111111111111111111111",
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
}],
"id": 1
}'Trace a transaction (debug_traceTransaction)
Trace a transaction's internal calls with the callTracer. See the CU Metering Rules table below for debug_traceTransaction's current CU weight. Like the other state-reading methods, it's rejected once the target block falls outside that chain's recent-state window (-32011). The window size is the chain's state_window_blocks (from GET /v1/chains). On chains that provide traces, use the Data API for historical traces.
export BLOCKVECTRA_API_KEY=rgw_your_api_key
curl -X POST "https://api.blockvectra.com/v1/robinhood_mainnet" \
-H 'Content-Type: application/json' \
-H "x-api-key: $BLOCKVECTRA_API_KEY" \
-d '{
"jsonrpc": "2.0",
"method": "debug_traceTransaction",
"params": ["0xYOUR_TRANSACTION_HASH", {"tracer": "callTracer"}],
"id": 1
}'CU metering rules
Compute Unit (CU) weight for each JSON-RPC method.
| Method | Weight (CU) |
|---|---|
eth_blockNumber | 1 |
eth_chainId | 1 |
eth_getBlockByNumber | 5 |
eth_blobBaseFee | 10 |
eth_feeHistory | 10 |
eth_gasPrice | 10 |
eth_getBalance | 10 |
eth_getBlockByHash | 10 |
eth_getBlockReceipts | 10 |
eth_getBlockTransactionCountByHash | 10 |
eth_getBlockTransactionCountByNumber | 10 |
eth_getCode | 10 |
eth_getHeaderByHash | 10 |
eth_getHeaderByNumber | 10 |
eth_getProof | 10 |
eth_getRawTransactionByBlockHashAndIndex | 10 |
eth_getRawTransactionByBlockNumberAndIndex | 10 |
eth_getRawTransactionByHash | 10 |
eth_getStorageAt | 10 |
eth_getTransactionByBlockHashAndIndex | 10 |
eth_getTransactionByBlockNumberAndIndex | 10 |
eth_getTransactionByHash | 10 |
eth_getTransactionCount | 10 |
eth_getTransactionReceipt | 10 |
eth_getUncleByBlockHashAndIndex | 10 |
eth_getUncleByBlockNumberAndIndex | 10 |
eth_getUncleCountByBlockHash | 10 |
eth_getUncleCountByBlockNumber | 10 |
eth_maxPriorityFeePerGas | 10 |
eth_syncing | 10 |
net_version | 10 |
web3_clientVersion | 10 |
web3_sha3 | 10 |
eth_call | 15 |
eth_createAccessList | 20 |
eth_estimateGas | 20 |
eth_simulateV1 | 20 |
eth_getLogs | 30 |
eth_sendRawTransaction | 30 |
debug_traceBlockByHash | 100 |
debug_traceBlockByNumber | 100 |
debug_traceCall | 100 |
debug_traceTransaction | 100 |
trace_block | 100 |
trace_call | 100 |
trace_get | 100 |
trace_replayTransaction | 100 |
trace_transaction | 100 |
Method policy
Available methods vary by chain; each chain's list is shown below, and Supported Chains covers the rest. Only methods matching an allowed name or pattern are reachable; any other method returns -32601 method not available.
Allowed on every chain below
eth_blockNumbereth_calleth_chainIdeth_estimateGaseth_gasPriceeth_getBalanceeth_getBlockByHasheth_getBlockByNumbereth_getBlockTransactionCountByHasheth_getBlockTransactionCountByNumbereth_getCodeeth_getLogseth_getStorageAteth_getTransactionByBlockHashAndIndexeth_getTransactionByBlockNumberAndIndexeth_getTransactionByHasheth_getTransactionCounteth_getTransactionReceipteth_sendRawTransactioneth_syncingnet_versionweb3_clientVersion
Arbitrum One
eth_getLogs max block range: 1,000 blocks; state window: 5,000 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Arc
eth_getLogs max block range: 1,000 blocks; state window: —
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Avalanche C-Chain
eth_getLogs max block range: 1,000 blocks; state window: 128 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGasweb3_sha3
Base
eth_getLogs max block range: 1,000 blocks; state window: 10,000 blocks
Also allowed
eth_maxPriorityFeePerGaseth_blobBaseFeeeth_feeHistoryeth_createAccessListeth_getProofeth_simulateV1eth_getBlockReceiptseth_getRawTransactionByHasheth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getUncleCountByBlockNumbereth_getUncleCountByBlockHasheth_getUncleByBlockNumberAndIndexeth_getUncleByBlockHashAndIndexeth_getHeaderByNumbereth_getHeaderByHashweb3_sha3
Berachain
eth_getLogs max block range: 1,000 blocks; state window: 9,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Boba
eth_getLogs max block range: 1,000 blocks; state window: 80,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
BNB Smart Chain
eth_getLogs max block range: 1,000 blocks; state window: 100 blocks
Also allowed
eth_feeHistoryeth_getBlockReceiptseth_maxPriorityFeePerGas
Celo
eth_getLogs max block range: 1,000 blocks; state window: 864,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Ethereum
eth_getLogs max block range: 1,000 blocks; state window: 250,000 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getProofeth_maxPriorityFeePerGastrace_blocktrace_calltrace_gettrace_replayTransactiontrace_transactionweb3_sha3
Ethereum Sepolia
eth_getLogs max block range: 1,000 blocks; state window: —
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getProofeth_maxPriorityFeePerGasweb3_sha3
Fraxtal
eth_getLogs max block range: 1,000 blocks; state window: 10,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Gnosis
eth_getLogs max block range: 1,000 blocks; state window: 262,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
HyperEVM
eth_getLogs max block range: 1,000 blocks; state window: —
Also allowed
eth_feeHistoryeth_getBlockReceiptseth_maxPriorityFeePerGas
Ink
eth_getLogs max block range: 1,000 blocks; state window: 9,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Katana
eth_getLogs max block range: 1,000 blocks; state window: 86,400 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Linea
eth_getLogs max block range: 1,000 blocks; state window: 128 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Metal L2
eth_getLogs max block range: 1,000 blocks; state window: 10,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Mode
eth_getLogs max block range: 1,000 blocks; state window: 10,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
OP Mainnet
eth_getLogs max block range: 1,000 blocks; state window: 1,296,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Polygon
eth_getLogs max block range: 1,000 blocks; state window: 126 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Robinhood Chain
eth_getLogs max block range: 1,000 blocks; state window: 900 blocks
Also allowed
eth_maxPriorityFeePerGaseth_blobBaseFeeeth_feeHistoryeth_createAccessListeth_getProofeth_simulateV1eth_getBlockReceiptseth_getRawTransactionByHasheth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getUncleCountByBlockNumbereth_getUncleCountByBlockHasheth_getUncleByBlockNumberAndIndexeth_getUncleByBlockHashAndIndexeth_getHeaderByNumbereth_getHeaderByHashweb3_sha3debug_traceTransactiondebug_traceCalldebug_traceBlockByNumberdebug_traceBlockByHash
Robinhood Chain Testnet
eth_getLogs max block range: 1,000 blocks; state window: 1,023 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Rootstock
eth_getLogs max block range: 1,000 blocks; state window: 6,000 blocks
Also allowed
eth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumberweb3_sha3
Soneium
eth_getLogs max block range: 1,000 blocks; state window: 9,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Sonic
eth_getLogs max block range: 1,000 blocks; state window: 11,000 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Unichain
eth_getLogs max block range: 1,000 blocks; state window: 85,500 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
World Chain
eth_getLogs max block range: 1,000 blocks; state window: 30,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
X Layer
eth_getLogs max block range: 1,000 blocks; state window: 250,000 blocks
Also allowed
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Zora
eth_getLogs max block range: 1,000 blocks; state window: 10,000 blocks
Also allowed
eth_blobBaseFeeeth_createAccessListeth_feeHistoryeth_getBlockReceiptseth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_maxPriorityFeePerGaseth_simulateV1web3_sha3
Limits:
- Batch: max 100 calls per request; also limited by the key's CU burst, see below.
- Request body: max 2 MiB (see “10. Limits at a glance” in the full OpenAPI reference)
- CU burst: each API key has a CU bucket (
cu_per_secrefill,burst_cucapacity — defaults are 100 CU/s and burst 400 CU; after a paid top-up each key is at least 2,000 CU/s and burst 10,000 CU, and higher custom limits are kept; shown per key in the console Keys table). A single request — including a whole JSON-RPC batch — whose total CU exceeds the key's burst capacity is rejected with-32022 request_exceeds_burst(request cost <N> CU exceeds burst capacity <M> CU); split it into smaller batches.
Error codes
See the Errors reference for every error code, whether it is billed, and what to do.
Full OpenAPI reference
See the Full OpenAPI reference for the complete machine-readable specification with all method signatures, request and response schemas, and parameter details rendered interactively.
Last updated:
Supported Chains
Supported blockchain networks, chain IDs, URL structures, and feature availability. Review endpoints, methods, and dataset coverage per chain.
Full Reference
Complete JSON-RPC 2.0 API specification and endpoint index. Browse all supported methods, request and response shapes, schema types, and error codes.