JSON-RPC

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) ou POST /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étodoPeso (CU)
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

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_blockNumber
  • eth_call
  • eth_chainId
  • eth_estimateGas
  • eth_feeHistory
  • eth_gasPrice
  • eth_getBalance
  • eth_getBlockByHash
  • eth_getBlockByNumber
  • eth_getBlockReceipts
  • eth_getBlockTransactionCountByHash
  • eth_getBlockTransactionCountByNumber
  • eth_getCode
  • eth_getLogs
  • eth_getStorageAt
  • eth_getTransactionByBlockHashAndIndex
  • eth_getTransactionByBlockNumberAndIndex
  • eth_getTransactionByHash
  • eth_getTransactionCount
  • eth_getTransactionReceipt
  • eth_maxPriorityFeePerGas
  • eth_syncing
  • net_version
  • web3_clientVersion

Arbitrum One

Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 6,000 blocos

Também permitidos

  • debug_traceBlockByHash
  • debug_traceBlockByNumber
  • debug_traceCall
  • debug_traceTransaction
  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getHeaderByHash
  • eth_getHeaderByNumber
  • eth_getProof
  • eth_getRawTransactionByBlockHashAndIndex
  • eth_getRawTransactionByBlockNumberAndIndex
  • eth_getRawTransactionByHash
  • eth_getUncleByBlockHashAndIndex
  • eth_getUncleByBlockNumberAndIndex
  • eth_getUncleCountByBlockHash
  • eth_getUncleCountByBlockNumber
  • eth_sendRawTransaction
  • eth_simulateV1
  • web3_sha3

Base

Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 10,000 blocos

Também permitidos

  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getProof
  • eth_simulateV1
  • eth_getRawTransactionByHash
  • eth_getRawTransactionByBlockHashAndIndex
  • eth_getRawTransactionByBlockNumberAndIndex
  • eth_getUncleCountByBlockNumber
  • eth_getUncleCountByBlockHash
  • eth_getUncleByBlockNumberAndIndex
  • eth_getUncleByBlockHashAndIndex
  • eth_getHeaderByNumber
  • eth_getHeaderByHash
  • eth_sendRawTransaction
  • web3_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_traceBlockByHash
  • debug_traceBlockByNumber
  • debug_traceCall
  • debug_traceTransaction
  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getProof
  • eth_sendRawTransaction
  • trace_block
  • trace_call
  • trace_get
  • trace_replayTransaction
  • trace_transaction
  • web3_sha3

Ethereum Sepolia

Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: —

Também permitidos

  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getProof
  • eth_sendRawTransaction
  • web3_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_traceBlockByHash
  • debug_traceBlockByNumber
  • debug_traceCall
  • debug_traceTransaction
  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getHeaderByHash
  • eth_getHeaderByNumber
  • eth_getProof
  • eth_getRawTransactionByBlockHashAndIndex
  • eth_getRawTransactionByBlockNumberAndIndex
  • eth_getRawTransactionByHash
  • eth_getUncleByBlockHashAndIndex
  • eth_getUncleByBlockNumberAndIndex
  • eth_getUncleCountByBlockHash
  • eth_getUncleCountByBlockNumber
  • eth_sendRawTransaction
  • eth_simulateV1
  • web3_sha3

Robinhood Chain

Intervalo máximo de blocos do eth_getLogs: 1,000 blocos; Janela de estado: 900 blocos

Também permitidos

  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getProof
  • eth_simulateV1
  • eth_getRawTransactionByHash
  • eth_getRawTransactionByBlockHashAndIndex
  • eth_getRawTransactionByBlockNumberAndIndex
  • eth_getUncleCountByBlockNumber
  • eth_getUncleCountByBlockHash
  • eth_getUncleByBlockNumberAndIndex
  • eth_getUncleByBlockHashAndIndex
  • eth_getHeaderByNumber
  • eth_getHeaderByHash
  • eth_sendRawTransaction
  • web3_sha3
  • debug_traceTransaction
  • debug_traceCall
  • debug_traceBlockByNumber
  • debug_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_traceBlockByHash
  • debug_traceBlockByNumber
  • debug_traceCall
  • debug_traceTransaction
  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getHeaderByHash
  • eth_getHeaderByNumber
  • eth_getProof
  • eth_getRawTransactionByBlockHashAndIndex
  • eth_getRawTransactionByBlockNumberAndIndex
  • eth_getRawTransactionByHash
  • eth_getUncleByBlockHashAndIndex
  • eth_getUncleByBlockNumberAndIndex
  • eth_getUncleCountByBlockHash
  • eth_getUncleCountByBlockNumber
  • eth_sendRawTransaction
  • eth_simulateV1
  • web3_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, capacidade burst_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:

Nesta página