JSON-RPC
Métodos JSON-RPC compatíveis, pesos em CU e códigos de erro. Configure um endpoint, escolha uma rede e consulte disponibilidade, preços e regras de cobrança.
Visão geral
Todas as requisições são medidas em Compute Units (CU) e têm limites de taxa por API key.
- Endpoint:
POST /v1/{chain}/{api_key}(API key no caminho) ouPOST /v1/{chain}(API key em um cabeçalho). Para Robinhood Chain,{chain}érobinhood_mainnet:https://api.blockvectra.com/v1/robinhood_mainnet. A mesma API key funciona em todas as redes compatíveis - Protocolo: HTTP
POST, chamada individual ou em lote - Medição: o custo total em CU de uma requisição conta para a capacidade de burst da API key assim que ela chega. Toda chamada aceita que recebe uma resposta é cobrada pelo peso público de CU do método; a Referência de erros lista os casos sem cobrança. A cobrança é liquidada por hora (arredondada para baixo em unidades inteiras, com o restante transferido para o próximo período, executada ~15 minutos após o fim do período)
- Ethereum: tem sua própria lista de métodos e uma janela de estado definida por
state_window_blocks— consulte Redes compatíveis → Ethereum.
Para esquemas completos de parâmetros, assinaturas de métodos e testes interativos de requisições em todos os métodos, consulte a Referência completa. Para versionamento de caminhos, regras de compatibilidade retroativa e recomendações de SDKs, consulte Versionamento e compatibilidade da API.
Para obter uma API key e enviar a primeira requisição, consulte Início rápido; ele também explica como enviar a API key e fazer requisições em lote.
Chamadas comuns
Exemplos práticos de chamadas comuns.
Consultar logs (eth_getLogs)
Filtre os logs de um contrato em um intervalo recente de blocos — aqui, o evento ERC-20 Transfer (topic 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef). Consulte a tabela Regras de medição em CU abaixo para o peso atual de CU de eth_getLogs; um intervalo maior que o max_logs_block_range da rede (de GET /v1/chains) é rejeitado com -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
}'Rastrear uma transação (debug_traceTransaction)
Rastreie as chamadas internas de uma transação com callTracer. Consulte a tabela Regras de medição em CU abaixo para o peso atual de CU de debug_traceTransaction. Assim como os outros métodos de leitura de estado, ele é rejeitado quando o bloco de destino está fora da janela de estado recente da rede (-32011). O tamanho da janela é state_window_blocks da rede (de GET /v1/chains). Nas redes que oferecem traces, use a Data API para traces históricos.
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
}'Regras de medição em CU
Peso de Compute Units (CU) de cada método JSON-RPC.
| Método | Peso (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 |
Política de métodos
Os métodos disponíveis variam por rede; a lista de cada rede aparece abaixo, e Redes compatíveis apresenta os demais recursos. Apenas métodos que correspondem a um nome ou padrão permitido podem ser chamados; qualquer outro método retorna -32601 method not available.
Permitidos em todas as redes abaixo
eth_blockNumbereth_calleth_chainIdeth_estimateGaseth_feeHistoryeth_gasPriceeth_getBalanceeth_getBlockByHasheth_getBlockByNumbereth_getBlockReceiptseth_getBlockTransactionCountByHasheth_getBlockTransactionCountByNumbereth_getCodeeth_getLogseth_getStorageAteth_getTransactionByBlockHashAndIndexeth_getTransactionByBlockNumberAndIndexeth_getTransactionByHasheth_getTransactionCounteth_getTransactionReceipteth_maxPriorityFeePerGaseth_syncingnet_versionweb3_clientVersion
Arbitrum One
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 6,000 blocos
Também permitidos
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_sendRawTransactioneth_simulateV1web3_sha3
Base
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 10,000 blocos
Também permitidos
eth_blobBaseFeeeth_createAccessListeth_getProofeth_simulateV1eth_getRawTransactionByHasheth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getUncleCountByBlockNumbereth_getUncleCountByBlockHasheth_getUncleByBlockNumberAndIndexeth_getUncleByBlockHashAndIndexeth_getHeaderByNumbereth_getHeaderByHasheth_sendRawTransactionweb3_sha3
BNB Smart Chain
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 100 blocos
Também permitidos
eth_sendRawTransaction
Ethereum
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 250,000 blocos
Também permitidos
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getProofeth_sendRawTransactiontrace_blocktrace_calltrace_gettrace_replayTransactiontrace_transactionweb3_sha3
Ethereum Sepolia
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: —
Também permitidos
eth_blobBaseFeeeth_createAccessListeth_getProofeth_sendRawTransactionweb3_sha3
HyperEVM
O envio de transações ainda não é compatível com esta rede (eth_sendRawTransaction retorna -32601 method_not_allowed); métodos de leitura funcionam normalmente.
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: —
Polygon
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 126 blocos
Também permitidos
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_sendRawTransactioneth_simulateV1web3_sha3
Robinhood Chain
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 900 blocos
Também permitidos
eth_blobBaseFeeeth_createAccessListeth_getProofeth_simulateV1eth_getRawTransactionByHasheth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getUncleCountByBlockNumbereth_getUncleCountByBlockHasheth_getUncleByBlockNumberAndIndexeth_getUncleByBlockHashAndIndexeth_getHeaderByNumbereth_getHeaderByHasheth_sendRawTransactionweb3_sha3debug_traceTransactiondebug_traceCalldebug_traceBlockByNumberdebug_traceBlockByHash
Robinhood Chain Testnet
Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 1,023 blocos
Também permitidos
debug_traceBlockByHashdebug_traceBlockByNumberdebug_traceCalldebug_traceTransactioneth_blobBaseFeeeth_createAccessListeth_getHeaderByHasheth_getHeaderByNumbereth_getProofeth_getRawTransactionByBlockHashAndIndexeth_getRawTransactionByBlockNumberAndIndexeth_getRawTransactionByHasheth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_sendRawTransactioneth_simulateV1web3_sha3
Limites:
- Lote: no máximo 100 chamadas por requisição; também limitado pelo burst de CU da API key, conforme abaixo.
- Corpo da requisição: no máximo 2 MiB
- Burst de CU: cada API key tem um bucket de CU (reposição
cu_per_sec, capacidadeburst_cu— os padrões são 400 CU/s e burst de 1,600 CU; exibido por API key na tabela Keys do console). Uma única requisição — incluindo um lote JSON-RPC inteiro — cujo total de CU ultrapasse a capacidade de burst da API key é rejeitada com-32022 request_exceeds_burst(request cost <N> CU exceeds burst capacity <M> CU); divida-a em lotes menores.
Códigos de erro
Consulte a Referência de erros para cada código de erro, se há cobrança e o que fazer.
Referência OpenAPI completa
Consulte a Referência OpenAPI completa para a especificação completa legível por máquina, com todas as assinaturas de métodos, esquemas de requisição e resposta e detalhes de parâmetros apresentados de forma interativa.
Última atualização: