Cadenas compatibles
Cadenas de blockchain compatibles, Chain IDs, estructuras de URL y disponibilidad de funciones. Consulte puntos de enlace, métodos y cobertura de conjuntos de datos por cadena.
BlockVectra es un proveedor de datos de blockchain multicadena: JSON-RPC en todas las cadenas compatibles y Data API donde esté disponible.
Una API key, todas las cadenas
- API key universal: la misma API key funciona en todas las cadenas de blockchain compatibles con BlockVectra — sin claves separadas por cadena.
- Cadena en la URL: cada solicitud identifica explícitamente la cadena en el segmento
{chain}de la ruta. - Uso agregado: el saldo de la cuenta, los depósitos de límite de Compute Units (CU) y los límites de solicitudes por segundo del plan gratuito se comparten entre todas las cadenas.
- Precios: consulte Precios.
Probar sin una API key
Elija un punto de enlace RPC público gratuito para usar métodos de billetera sin una API key. Los métodos públicos y los límites por IP se detallan por cadena; consulte el Inicio rápido para ver un ejemplo de llamada.
Plantillas de URL
Estructuras de URL estándar para llamadas JSON-RPC y Data API:
| Servicio | Modo | Plantilla de URL | Notas |
|---|---|---|---|
| JSON-RPC | API key en la ruta | POST /v1/{chain}/{api_key} | Forma más simple; recomendada para curl y clientes HTTP |
| JSON-RPC | API key en un encabezado | POST /v1/{chain} | Envíe la API key en el encabezado de solicitud x-api-key: {api_key} |
| Data API | Puntos de enlace REST | GET /v1/data/{chain}/… | Envíe la API key en el encabezado de solicitud x-api-key |
| Estado | Estado público | GET /v1/status | No requiere API key; devuelve el estado y el bloque más reciente de cada cadena pública |
Nota: una solicitud sin el segmento de la cadena (por ejemplo,
POST /v1oPOST /v1/) devuelve HTTP 404 con un cuerpo vacío. Consulte el Inicio rápido para ver detalles de configuración.
Matriz de cadenas compatibles
Las cadenas de blockchain actualmente disponibles en BlockVectra y las funciones de sus servicios:
Puntos de enlace, métodos con API key, suscripciones, envío de transacciones, límites de estado y logs, conjuntos de datos, testnets relacionadas y guías se presentan por cadena. La información desconocida permanece desconocida. Despliegue una cadena debajo de la matriz para ver las solicitudes compatibles con ella.
| Cadena | {chain} | Chain ID | Tracing | Endpoint público | WebSocket | Data API | Métodos con clave API | Notificaciones Webhook | Enviar transacciones | Enviar transacciones (endpoint público sin key) | Ventana de historial de estado | Rango máximo de bloques para eth_getLogs | Conjuntos de datos de Data API | Redes de prueba relacionadas | Guías relacionadas |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RPC y Data API de arb_mainnet | arb_mainnet | 42161 | ✓ | https://api.blockvectra.com/v1/arb_mainnet/public | No compatible | Disponible | 43 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 6,000 bloques más recientes | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Frescura de datos | Desconocida | Desconocida |
| RPC y Data API de base_mainnet | base_mainnet | 8453 | — | https://api.blockvectra.com/v1/base_mainnet/public | No compatible | Disponible | 39 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 10,000 bloques más recientes | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Frescura de datos | Desconocida | Base |
| RPC y Data API de bsc_mainnet | bsc_mainnet | 56 | — | https://api.blockvectra.com/v1/bsc_mainnet/public | No compatible | Disponible | 25 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 100 bloques más recientes | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Frescura de datos | Desconocida | Desconocida |
| RPC y Data API de Ethereum | eth_mainnet | 1 | ✓ | https://api.blockvectra.com/v1/eth_mainnet/public | No compatible | Disponible | 38 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 250,000 bloques más recientes | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Frescura de datos | Desconocida | Desconocida |
| RPC y Data API de eth_sepolia | eth_sepolia | 11155111 | — | https://api.blockvectra.com/v1/eth_sepolia/public | No compatible | Disponible | 29 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Desconocida | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Frescura de datos | Desconocida | Desconocida |
| RPC y Data API de HyperEVM | hyperevm_mainnet | 999 | — | https://api.blockvectra.com/v1/hyperevm_mainnet/public | No compatible | Disponible | 24 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | No compatible | No compatible | Desconocida | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Saldos, Titulares, NFT, Frescura de datos | Desconocida | HyperEVM backfill and polling |
| RPC y Data API de polygon_mainnet | polygon_mainnet | 137 | ✓ | https://api.blockvectra.com/v1/polygon_mainnet/public | No compatible | Disponible | 43 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 126 bloques más recientes | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Frescura de datos | Desconocida | Desconocida |
| RPC y Data API de Robinhood Chain | robinhood_mainnet | 4663 | ✓ | https://api.blockvectra.com/v1/robinhood_mainnet/public | Compatible (newHeads, logs) | Disponible | 43 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 900 bloques más recientes | 1,000 bloques | Bloques, Transacciones, Transacciones de direcciones, Transferencias, Metadatos de tokens, Saldos, Titulares, NFT, Intercambios de DEX, Precios de DEX, Acciones tokenizadas, Trazas, Frescura de datos | Desconocida | Robinhood Chain Stock token multiplier Tokenized stocks |
| RPC de robinhood_testnet | robinhood_testnet | 46630 | ✓ | https://api.blockvectra.com/v1/robinhood_testnet/public | Compatible (newHeads, logs) | Aún no disponible | 43 | Compatible · Confirmaciones 1–1 (predeterminado 1) Guía de notificaciones Webhook | Compatible | Compatible | Estado histórico para los 1,023 bloques más recientes | 1,000 bloques | No compatible | Desconocida | Testnet faucet Robinhood Chain Testnet starter |
Siguientes pasos con una clave API
arb_mainnet
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/arb_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/arb_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/arb_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
base_mainnet
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/base_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/base_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/base_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
bsc_mainnet
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/bsc_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/bsc_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/bsc_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
Ethereum
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/eth_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/eth_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/eth_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
eth_sepolia
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/eth_sepolia' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/eth_sepolia' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/eth_sepolia/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
HyperEVM
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/hyperevm_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/hyperevm_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/hyperevm_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
polygon_mainnet
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/polygon_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/polygon_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/polygon_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APICrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
Robinhood Chain
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/robinhood_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/robinhood_mainnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsData API
curl -fsS 'https://api.blockvectra.com/v1/data/robinhood_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"Data APIWebSocket
echo '{"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}' | websocat --no-close -H="x-api-key: $BLOCKVECTRA_API_KEY" 'wss://api.blockvectra.com/v1/robinhood_mainnet'WebSocketCrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
robinhood_testnet
eth_getLogs
set -eu
MAX_LOGS_BLOCK_RANGE=1000
head=$(curl -fsS 'https://api.blockvectra.com/v1/robinhood_testnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' | python3 -c 'import json,sys; print(int(json.load(sys.stdin)["result"],16))')
from=$((head >= MAX_LOGS_BLOCK_RANGE ? head - MAX_LOGS_BLOCK_RANGE + 1 : 0))
from_hex=$(printf '0x%x' "$from")
to_hex=$(printf '0x%x' "$head")
curl -fsS 'https://api.blockvectra.com/v1/robinhood_testnet' -H "x-api-key: $BLOCKVECTRA_API_KEY" -H 'Content-Type: application/json' \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$from_hex\",\"toBlock\":\"$to_hex\"}]}"eth_getLogsWebSocket
echo '{"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}' | websocat --no-close -H="x-api-key: $BLOCKVECTRA_API_KEY" 'wss://api.blockvectra.com/v1/robinhood_testnet'WebSocketCrear una suscripción Webhook · Crear una suscripción Webhook · Uso y CU · Recargar
HyperEVM
Los bloques de HyperEVM incluyen transacciones del sistema HyperCore (desde la dirección 0x2222…2222 o 0x20…, gasPrice 0).
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.
¿Necesitas otra cadena? Contáctanos →
Ethereum
- Chain ID:
1 - Nombre de la cadena (
{chain}en las URL):eth_mainnet, por ejemplo,POST /v1/eth_mainnet/{api_key}oGET /v1/data/eth_mainnet/….
JSON-RPC
- Métodos: los métodos disponibles por cadena están definidos por
methods.allow/denyenGET /v1/chains(consulte la Política de métodos); los métodos fuera de ese alcance devuelven-32601. - Solo datos recientes: la ventana de estado histórico está definida por
state_window_blocksenGET /v1/chains. Las consultas de estado histórico fuera de la ventana devuelven-32011(sin facturación); las consultas de bloques, recibos y logs fuera de la ventana devuelven-32000 old data not available due to pruning(sin facturación); una transacción consultada por hash fuera de la ventana devuelveresult: null. eth_getLogs: el rango máximo de bloques por solicitud esmax_logs_block_rangeenGET /v1/chains.
Data API
- Solo datos recientes: la cobertura de datos de Ethereum está definida por
coverage.from_blockenGET /v1/data/chains. Un número de bloque o una ventana por debajo del inicio devuelve422 no_coverage; el hash de una transacción que salió de la ventana devuelve404. - Cuando
from_blockesnull: el inicio es temporalmente desconocido. No lo trate como0ni como historial completo y no envíe solicitudes históricas (por número de bloque, ventana o hash) a Ethereum hasta que vuelva a ser un número entero; devuelven503 unavailable. 503 gateway_overloaded: reintente con backoff (Retry-After: 1).- Conjuntos de datos: los conjuntos de datos disponibles para Ethereum se detallan en
featuresdeGET /v1/data/chains; los demás devuelven422 no_coverage(sin facturación). Las transacciones y transferencias de direcciones cubren solo la ventana: una respuesta que supera su inicio se marca conmeta.coverage: "partial".
Descubrir cadenas de forma programática
Use estos puntos de enlace públicos para descubrir las cadenas compatibles y su estado:
1. Estado del servicio (GET /v1/status)
Un punto de enlace público que no requiere API key (CORS *). Enumera únicamente las cadenas disponibles públicamente y devuelve su estado y el bloque más reciente indexado:
curl -s "https://api.blockvectra.com/v1/status"Ejemplo de respuesta:
{
"checked_at": "2026-09-28T07:40:00Z",
"gateway": { "status": "ok" },
"chains": [
{
"chain": "robinhood_mainnet",
"name": "Robinhood Chain",
"chain_id": 4663,
"jsonrpc": true,
"data": true,
"status": "ok",
"data_status": "ok",
"sync": { "stage": "synced", "node_block": 74600000, "target_block": null },
"head": {
"block": 74600000,
"time": "2026-09-28T07:39:58Z",
"lag_seconds": 3
}
},
{
"chain": "eth_mainnet",
"name": "Ethereum",
"chain_id": 1,
"jsonrpc": true,
"data": true,
"status": "ok",
"data_status": "ok",
"sync": { "stage": "synced", "node_block": 26010000, "target_block": null },
"head": {
"block": 26010000,
"time": "2026-09-28T07:39:59Z",
"lag_seconds": 1
}
}
]
}El campo name de cada entrada es siempre el nombre para mostrar de la cadena en inglés. jsonrpc y data indican si la cadena está disponible para JSON-RPC y Data API, respectivamente; status es "ok" o "unavailable". Si una cadena se está sincronizando, las llamadas dirigidas a ella devuelven -32010. En /v1/status, status informa si JSON-RPC funciona y data_status informa si la Data API funciona ("ok", "syncing" o "unavailable"); en /v1/data/chains, coverage.has_data igual a false significa que la cadena aún no tiene datos indexados.
2. Cadenas de la Data API (GET /v1/data/chains)
Requiere API key en el encabezado x-api-key (con facturación). Devuelve las cadenas públicas atendidas por la Data API, cada una con las funciones disponibles (features), los bloques cubiertos (coverage), los marcadores de consenso safe/finalized del nodo y su estado (finality), y los límites por solicitud (limits):
curl -s "https://api.blockvectra.com/v1/data/chains" \
-H "x-api-key: $BLOCKVECTRA_API_KEY"Ejemplo de respuesta:
{
"data": [
{
"chain": "robinhood_mainnet",
"chain_slug": "ROBINHOOD_MAINNET",
"name": "Robinhood Chain",
"chain_id": 4663,
"chain_external_id": "eip155:4663",
"features": [
"blocks", "transactions", "address_transactions", "transfers", "token_metadata",
"balances", "holders", "nfts", "dex_swaps", "dex_prices", "stocks", "traces", "freshness"
],
"coverage": { "from_block": 0, "traces_from_block": 1000000, "has_data": true },
"finality": { "model": "node_tags", "status": "ok", "safe_block": 74599400, "finalized_block": 74598900 },
"limits": { "max_page_size": 500, "max_window_blocks": 100000, "max_pools_for_token": 200, "max_batch_addresses": 100 }
},
{
"chain": "eth_mainnet",
"chain_slug": "ETH_MAINNET",
"name": "Ethereum",
"chain_id": 1,
"chain_external_id": "eip155:1",
"features": ["blocks", "transactions", "address_transactions", "transfers", "token_metadata", "freshness"],
"coverage": { "from_block": 1000000, "traces_from_block": null, "has_data": true },
"finality": { "model": "node_tags", "status": "stale", "safe_block": 26009950, "finalized_block": 26009900 },
"limits": { "max_page_size": 500, "max_window_blocks": 100000, "max_pools_for_token": 200, "max_batch_addresses": 100 }
}
]
}finality informa los marcadores de consenso del nodo (model es "node_tags"), el estado de los marcadores (status es "ok", "stale" o "unavailable") y los valores actuales de safe_block y finalized_block (safe_block >= finalized_block, y ambos son null únicamente cuando el estado es "unavailable").
coverage.from_block es el bloque más bajo indexado, consultado en tiempo real. Es 0 cuando el historial de la cadena llega al bloque génesis. Puede ser null únicamente cuando la cadena todavía no tiene ningún bloque indexado (has_data = false) o cuando no es posible determinar el inicio: trate null como desconocido — no como historial completo ni como 0 — y las solicitudes históricas en ese caso devuelven 503 unavailable. Consulte siempre este punto de enlace en tiempo de ejecución, en lugar de fijar el valor en el código. coverage.traces_from_block es el primer bloque con datos de traza; una solicitud de traza anterior a él o dentro de una brecha devuelve 422 no_coverage (sin facturación).
Llamar a /v1/data/{chain}/… con una cadena desconocida o no pública devuelve HTTP 404 con error.code not_found (sin facturación; el nombre de la cadena debe ser el slug exacto en minúsculas).
Última actualización:
Visión general
Documentación de JSON-RPC multicadena y Data API. Use una única API key en las cadenas compatibles para empezar, consultar API y conjuntos de datos y entender la facturación.
Referencia de errores
Códigos de error de BlockVectra, facturación y orientación sobre reintentos para JSON-RPC, Data API, Webhooks Push, consola y faucet, incluidos rangos de bloques de eth_getLogs y errores de retransmisión de Webhooks.