JSON-RPC

JSON-RPC

Métodos JSON-RPC compatibles, pesos en CU y códigos de error. Configure un punto de enlace, elija una cadena y consulte disponibilidad, precios y reglas de facturación.

Visión general

Todas las solicitudes se miden en Compute Units (CU) y tienen límites de tasa por API key.

  • Punto de enlace: POST /v1/{chain}/{api_key} (API key en la ruta) o POST /v1/{chain} (API key en un encabezado). Para Robinhood Chain, {chain} es robinhood_mainnet: https://api.blockvectra.com/v1/robinhood_mainnet. La misma API key funciona en todas las cadenas compatibles
  • Protocolo: HTTP POST, llamada individual o por lotes
  • Medición: el costo total en CU de una solicitud cuenta para la capacidad de ráfaga (burst) de la API key en cuanto llega. Toda llamada aceptada que recibe una respuesta se factura según el peso público de CU del método; la Referencia de errores enumera los casos sin facturación. La facturación se liquida por hora (redondeada a la baja en unidades enteras, con el resto transferido al siguiente período, ejecutada ~15 minutos después de finalizar el período)
  • Ethereum: tiene su propia lista de métodos y una ventana de estado definida por state_window_blocks — consulte Cadenas compatibles → Ethereum.

Para esquemas completos de parámetros, firmas de métodos y pruebas interactivas de solicitudes en todos los métodos, consulte la Referencia completa. Para control de versiones de rutas, reglas de compatibilidad con versiones anteriores y recomendaciones de SDK, consulte Control de versiones y compatibilidad de la API.

Para obtener una API key y enviar la primera solicitud, consulte el Inicio rápido; también explica cómo enviar la API key y realizar solicitudes por lotes.

Llamadas comunes

Ejemplos prácticos de llamadas comunes.

Consultar logs (eth_getLogs)

Filtre los logs de un contrato en un rango reciente de bloques — aquí, el evento ERC-20 Transfer (topic 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef). Consulte la tabla Reglas de medición en CU a continuación para conocer el peso actual en CU de eth_getLogs; un rango mayor que el max_logs_block_range de la cadena (de GET /v1/chains) se rechaza con -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 una transacción (debug_traceTransaction)

Rastree las llamadas internas de una transacción con callTracer. Consulte la tabla Reglas de medición en CU a continuación para conocer el peso actual en CU de debug_traceTransaction. Al igual que otros métodos de lectura de estado, se rechaza si el bloque de destino está fuera de la ventana de estado reciente de la cadena (-32011). El tamaño de la ventana es state_window_blocks de la cadena (de GET /v1/chains). En las cadenas que ofrecen trazas, use la Data API para trazas históricas.

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

Reglas de medición en CU

Peso en 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

Los métodos disponibles varían según la cadena; la lista de cada cadena aparece a continuación, y Cadenas compatibles presenta las funciones restantes. Solo se pueden llamar los métodos que coincidan con un nombre o patrón permitido; cualquier otro método devuelve -32601 method not available.

Permitidos en todas las cadenas siguientes

  • 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

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 6,000 bloques

También 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

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 10,000 bloques

También 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

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 100 bloques

También permitidos

  • eth_sendRawTransaction

Ethereum

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 250,000 bloques

También 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

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: —

También permitidos

  • eth_blobBaseFee
  • eth_createAccessList
  • eth_getProof
  • eth_sendRawTransaction
  • web3_sha3

HyperEVM

El envío de transacciones aún no es compatible en esta cadena (eth_sendRawTransaction devuelve -32601 method_not_allowed); los métodos de lectura funcionan con normalidad.

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: —

Polygon

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 126 bloques

También 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

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 900 bloques

También 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

Rango máximo de bloques de eth_getLogs: 1,000 bloques; Ventana de estado: 1,023 bloques

También 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

Límites:

  • Lote: máximo 100 llamadas por solicitud; también limitado por la capacidad de ráfaga de CU de la API key, como se describe a continuación.
  • Cuerpo de la solicitud: máximo 2 MiB
  • Ráfaga de CU (burst): cada API key tiene un depósito de CU (reposición cu_per_sec, capacidad burst_cu — los valores predeterminados son 400 CU/s y ráfaga de 1,600 CU; mostrado por API key en la tabla Keys de la consola). Una única solicitud —incluido un lote JSON-RPC completo— cuyo total de CU supere la capacidad de ráfaga de la API key se rechaza con -32022 request_exceeds_burst (request cost <N> CU exceeds burst capacity <M> CU); divídala en lotes más pequeños.

Códigos de error

Consulte la Referencia de errores para ver cada código de error, si se factura y qué acción tomar.

Referencia OpenAPI completa

Consulte la Referencia OpenAPI completa para ver la especificación completa legible por máquina, con todas las firmas de métodos, esquemas de solicitud y respuesta, y detalles de parámetros presentados de forma interactiva.

Última actualización:

En esta página