JSON-RPC

JSON-RPC

Méthodes JSON-RPC prises en charge, pondérations en CU et codes d'erreur. Configurez un point de terminaison, choisissez une chaîne et vérifiez la disponibilité des méthodes, les tarifs et les règles de facturation.

Vue d'ensemble

Toutes les requêtes sont décomptées en Compute Units (CU) et soumises à une limitation de débit par clé.

  • Point de terminaison : POST /v1/{chain}/{api_key} (clé dans le chemin) ou POST /v1/{chain} (clé dans un en-tête). Pour Robinhood Chain, {chain} est robinhood_mainnet : https://api.blockvectra.com/v1/robinhood_mainnet. La même clé API fonctionne sur chaque chaîne prise en charge
  • Protocole : HTTP POST, appel unique ou batch
  • Mesure : Le coût total en CU d'une requête est décompté de la capacité de burst de votre clé dès sa réception. Chaque appel accepté qui reçoit une réponse est facturé selon la pondération en CU publiée de la méthode ; la Référence des erreurs répertorie les cas non facturés. Le règlement est effectué toutes les heures (arrondi à l'unité entière inférieure, le reliquat étant reporté, et traité environ 15 minutes après la fin de la période)
  • Ethereum : dispose de sa propre liste de méthodes et d'une fenêtre d'état déterminée par state_window_blocks — voir Chaînes prises en charge → Ethereum.

Pour obtenir les schémas complets des paramètres, les signatures des méthodes et tester les requêtes de manière interactive sur toutes les méthodes, consultez la Référence complète. Pour le versioning des chemins, les règles de rétrocompatibilité et les recommandations de SDK, consultez Gestion des versions et compatibilité de l'API.

Pour obtenir une clé API et envoyer une première requête, consultez le Démarrage rapide ; il couvre également la transmission de la clé et les requêtes par batch.

Appels fréquents

Exemples concrets pour les appels fréquents.

Interroger les logs (eth_getLogs)

Filtrez les logs d'un contrat sur une plage de blocs récente — ici, l'événement Transfer ERC-20 (topic 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef). Consultez le tableau des Règles de mesure des CU ci-dessous pour connaître la pondération actuelle en CU de eth_getLogs ; une plage plus large que la valeur max_logs_block_range de la chaîne (obtenue via GET /v1/chains) est rejetée avec -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
  }'

Tracer une transaction (debug_traceTransaction)

Tracez les appels internes d'une transaction avec callTracer. Consultez le tableau des Règles de mesure des CU ci-dessous pour connaître la pondération actuelle en CU de debug_traceTransaction. Tout comme les autres méthodes de lecture d'état, elle est rejetée dès lors que le bloc cible se situe en dehors de la fenêtre d'état récent de cette chaîne (-32011). La taille de la fenêtre correspond à la valeur state_window_blocks de la chaîne (obtenue via GET /v1/chains). Sur les chaînes proposant des traces, utilisez la Data API pour consulter les traces historiques.

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
  }'

Règles de mesure des CU

Poids en Compute Unit (CU) pour chaque méthode JSON-RPC.

MéthodePoids (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

Politique des méthodes

Les méthodes disponibles varient selon la chaîne ; la liste de chaque chaîne est présentée ci-dessous, et Chaînes prises en charge couvre le reste. Seules les méthodes correspondant à un nom ou à un modèle autorisé sont accessibles ; toute autre méthode renvoie -32601 method not available.

Autorisé sur toutes les chaînes ci-dessous

  • 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

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 6,000 blocs

Également autorisé

  • 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

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 10,000 blocs

Également autorisé

  • 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

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 100 blocs

Également autorisé

  • eth_sendRawTransaction

Ethereum

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 250,000 blocs

Également autorisé

  • 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

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : —

Également autorisé

  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getProof
  • eth_sendRawTransaction
  • web3_sha3

HyperEVM

L'envoi de transactions n'est pas encore pris en charge sur cette chaîne (eth_sendRawTransaction renvoie -32601 method_not_allowed) ; les méthodes de lecture fonctionnent normalement.

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : —

Polygon

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 126 blocs

Également autorisé

  • 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

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 900 blocs

Également autorisé

  • 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

Plage de blocs maximale pour eth_getLogs : 1,000 blocs ; fenêtre d'état : 1,023 blocs

Également autorisé

  • 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 :

  • Batch : 100 appels maximum par requête ; également limité par le burst de CU de la clé, voir ci-dessous.
  • Corps de la requête : 2 Mio maximum
  • Burst de CU : chaque clé API dispose d'un bucket de CU (recharge cu_per_sec, capacité burst_cu — les valeurs par défaut sont 400 CU/s et un burst de 1,600 CU ; affiché par clé dans le tableau Clés de la console). Une requête unique — y compris un batch JSON-RPC complet — dont le total de CU dépasse la capacité de burst de la clé est rejetée avec -32022 request_exceeds_burst (request cost <N> CU exceeds burst capacity <M> CU) ; découpez-la en batches plus petits.

Codes d'erreur

Consultez la Référence des erreurs pour chaque code d'erreur, son statut de facturation et la conduite à adopter.

Référence OpenAPI complète

Consultez la Référence OpenAPI complète pour obtenir la spécification complète lisible par machine avec l'ensemble des signatures de méthodes, des schémas de requête et de réponse, et les détails des paramètres affichés de manière interactive.

Dernière mise à jour :

Sur cette page