Chaînes prises en charge
Réseaux blockchain pris en charge, Chain IDs, structures d'URL et disponibilité des fonctionnalités. Consultez les points de terminaison, méthodes et couverture des jeux de données par chaîne.
BlockVectra est un fournisseur de données blockchain multi-chaînes : JSON-RPC sur toutes les chaînes que nous prenons en charge, et Data API là où elle est disponible.
Une seule clé, toutes les chaînes
- Clé universelle : la même clé API fonctionne sur chaque réseau blockchain pris en charge par BlockVectra — pas de clés séparées par chaîne.
- Chaîne dans l'URL : chaque requête nomme explicitement sa chaîne via le segment de chemin
{chain}. - Utilisation mutualisée : le solde du compte, les quotas de limitation de débit en Compute Units (CU) et les limites de requêtes par seconde du forfait gratuit sont partagés entre toutes les chaînes.
- Tarifs : voir les Tarifs.
Essayer sans clé API
Choisissez un point de terminaison RPC public gratuit pour utiliser les méthodes de portefeuille sans clé API. Les méthodes publiques et les limites par IP sont répertoriées par réseau ; voir le Démarrage rapide pour un exemple d'appel.
Modèles d'URL
Structures d'URL standard pour appeler le JSON-RPC et la Data API :
| Service | Mode | Modèle d'URL | Notes |
|---|---|---|---|
| JSON-RPC | Clé dans le chemin | POST /v1/{chain}/{api_key} | Forme la plus simple ; recommandée pour curl et les clients HTTP |
| JSON-RPC | Clé dans un en-tête | POST /v1/{chain} | Transmettez la clé dans l'en-tête de requête x-api-key: {api_key} |
| Data API | Points de terminaison REST | GET /v1/data/{chain}/… | Transmettez la clé dans l'en-tête de requête x-api-key |
| État | État public | GET /v1/status | Aucune clé requise ; renvoie l'état et la tête de chaque chaîne publique |
Remarque : une requête sans segment de chaîne (par ex.
POST /v1ouPOST /v1/) renvoie HTTP 404 avec un corps vide. Voir le Démarrage rapide pour les détails de configuration.
Matrice des chaînes prises en charge
Les réseaux blockchain actuellement disponibles sur BlockVectra, avec leurs fonctionnalités de service :
Les points de terminaison, les méthodes avec une clé API, les abonnements, l'envoi de transactions, les limites d'état et de logs, les jeux de données, les testnets associés et les guides sont affichés par chaîne. Les éléments non déterminés restent non précisés. Développez une chaîne sous la matrice pour voir les requêtes prises en charge par cette chaîne.
| Chaîne | {chain} | Chain ID | Tracing | Endpoint public | WebSocket | Data API | Méthodes avec une clé API | Notifications Webhook | Envoyer des transactions | Envoyer des transactions (endpoint public sans key) | Fenêtre d'historique d'état | Plage maximale de blocs pour eth_getLogs | Jeux de données Data API | Réseaux de test associés | Guides associés |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RPC et Data API arb_mainnet | arb_mainnet | 42161 | ✓ | https://api.blockvectra.com/v1/arb_mainnet/public | Non pris en charge | Ouvert | 43 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 6,000 blocs les plus récents | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des données | Inconnu | Inconnu |
| RPC et Data API base_mainnet | base_mainnet | 8453 | — | https://api.blockvectra.com/v1/base_mainnet/public | Non pris en charge | Ouvert | 39 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 10,000 blocs les plus récents | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des données | Inconnu | Base |
| RPC et Data API bsc_mainnet | bsc_mainnet | 56 | — | https://api.blockvectra.com/v1/bsc_mainnet/public | Non pris en charge | Ouvert | 25 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 100 blocs les plus récents | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des données | Inconnu | Inconnu |
| RPC et Data API Ethereum | eth_mainnet | 1 | ✓ | https://api.blockvectra.com/v1/eth_mainnet/public | Non pris en charge | Ouvert | 38 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 250,000 blocs les plus récents | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des données | Inconnu | Inconnu |
| RPC et Data API eth_sepolia | eth_sepolia | 11155111 | — | https://api.blockvectra.com/v1/eth_sepolia/public | Non pris en charge | Ouvert | 29 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | Inconnu | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des données | Inconnu | Inconnu |
| RPC et Data API HyperEVM | hyperevm_mainnet | 999 | — | https://api.blockvectra.com/v1/hyperevm_mainnet/public | Non pris en charge | Ouvert | 24 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Non pris en charge | Non pris en charge | Inconnu | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Soldes, Détenteurs, NFT, Fraîcheur des données | Inconnu | HyperEVM backfill and polling |
| RPC et Data API polygon_mainnet | polygon_mainnet | 137 | ✓ | https://api.blockvectra.com/v1/polygon_mainnet/public | Non pris en charge | Ouvert | 43 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 126 blocs les plus récents | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des données | Inconnu | Inconnu |
| RPC et Data API Robinhood Chain | robinhood_mainnet | 4663 | ✓ | https://api.blockvectra.com/v1/robinhood_mainnet/public | Pris en charge (newHeads, logs) | Ouvert | 43 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 900 blocs les plus récents | 1,000 blocs | Blocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Soldes, Détenteurs, NFT, Swaps DEX, Prix DEX, Actions tokenisées, Traces, Fraîcheur des données | Inconnu | Robinhood Chain Stock token multiplier Tokenized stocks |
| RPC robinhood_testnet | robinhood_testnet | 46630 | ✓ | https://api.blockvectra.com/v1/robinhood_testnet/public | Pris en charge (newHeads, logs) | Pas encore disponible | 43 | Pris en charge · Confirmations 1–1 (par défaut 1) Guide des notifications Webhook | Pris en charge | Pris en charge | État historique pour les 1,023 blocs les plus récents | 1,000 blocs | Non pris en charge | Inconnu | Testnet faucet Robinhood Chain Testnet starter |
Étapes suivantes avec une clé 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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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 APICréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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'WebSocketCréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
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'WebSocketCréer un abonnement Webhook · Créer un abonnement Webhook · Utilisation et CU · Recharger
HyperEVM
Les blocs HyperEVM incluent des transactions système HyperCore (provenant de l'adresse 0x2222…2222 ou 0x20…, gasPrice 0).
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.
Besoin d'une autre chaîne ? Dites-le-nous →
Ethereum
- Chain ID :
1 - Nom de la chaîne (
{chain}dans les URL) :eth_mainnet, par ex.POST /v1/eth_mainnet/{api_key}ouGET /v1/data/eth_mainnet/….
JSON-RPC
- Méthodes : les méthodes disponibles pour chaque chaîne sont déterminées par
methods.allow/denydansGET /v1/chains(voir la Politique de méthode) ; les méthodes hors de ce périmètre renvoient-32601. - Données récentes uniquement : la fenêtre d'état historique est déterminée par
state_window_blocksdansGET /v1/chains. Les requêtes d'état historique en dehors de cette fenêtre renvoient-32011(non facturé) ; les requêtes de blocs, reçus et logs en dehors de la fenêtre renvoient-32000 old data not available due to pruning(non facturé) ; une transaction recherchée par hash en dehors de la fenêtre renvoieresult: null. eth_getLogs: la plage de blocs maximale par requête est définie parmax_logs_block_rangedansGET /v1/chains.
Data API
- Données récentes uniquement : la couverture des données Ethereum est déterminée par
coverage.from_blockdansGET /v1/data/chains. Un numéro de bloc ou une fenêtre antérieur(e) au point de départ renvoie422 no_coverage; un hash de transaction ayant quitté la fenêtre renvoie404. - Lorsque
from_blockestnull: le point de départ est temporairement indéterminé. Ne le traitez pas comme0ni comme un historique complet, et n'envoyez pas de requêtes historiques (par numéro de bloc, fenêtre ou hash) pour Ethereum tant qu'il ne redevient pas un entier ; elles renvoient503 unavailable. 503 gateway_overloaded: réessayez avec un délai d'attente progressif (Retry-After: 1).- Jeux de données : les jeux de données servis par Ethereum sont répertoriés dans le champ
featuresdeGET /v1/data/chains; les autres renvoient422 no_coverage(non facturé). Les transactions et transferts par adresse ne couvrent que la fenêtre : une réponse qui franchit son point de départ est marquéemeta.coverage: "partial".
Découvrir les chaînes de manière programmatique
Utilisez ces points de terminaison publics pour découvrir les chaînes prises en charge et leur état :
1. État du service (GET /v1/status)
Un point de terminaison public ne nécessitant aucune clé API (CORS *). Il répertorie uniquement les chaînes accessibles publiquement et renvoie leur état ainsi que leur tête indexée :
curl -s "https://api.blockvectra.com/v1/status"Exemple de réponse :
{
"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
}
}
]
}Le champ name de chaque entrée correspond toujours au nom d'affichage anglais de la chaîne. jsonrpc et data indiquent si cette chaîne est ouverte respectivement pour le JSON-RPC et la Data API ; status vaut "ok" ou "unavailable". Si une chaîne est en cours de synchronisation, les appels vers cette chaîne renvoient -32010. Sur /v1/status, status indique si le JSON-RPC fonctionne normalement et data_status indique si la Data API fonctionne normalement ("ok", "syncing", ou "unavailable") ; dans /v1/data/chains, une valeur coverage.has_data égale à false signifie que la chaîne n'a pas encore de données indexées.
2. Chaînes de la Data API (GET /v1/data/chains)
Nécessite une clé API dans l'en-tête x-api-key (facturé). Renvoie les chaînes publiques servies par la Data API, chacune avec les éléments qu'elle dessert (features), les blocs couverts par ses données (coverage), les marqueurs de consensus safe/finalized du nœud ainsi que leur état (finality) et ses limites par requête (limits) :
curl -s "https://api.blockvectra.com/v1/data/chains" \
-H "x-api-key: $BLOCKVECTRA_API_KEY"Exemple de réponse :
{
"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 indique les marqueurs de consensus du nœud (model vaut "node_tags"), la santé des marqueurs (status vaut "ok", "stale", ou "unavailable"), et les valeurs actuelles de safe_block et finalized_block (safe_block >= finalized_block, et tous deux ne valent null que lorsque le statut est "unavailable").
coverage.from_block est le bloc indexé le plus bas, lu en direct. Il vaut 0 dès que l'historique de la chaîne remonte jusqu'au bloc de genèse. Il ne peut valoir null que lorsque la chaîne n'a aucun bloc indexé (has_data = false), ou tant que le point de départ ne peut pas être déterminé : traitez null comme indéterminé — ni comme un historique complet, ni comme 0 — et les requêtes historiques renvoient alors 503 unavailable. Lisez-le toujours depuis ce point de terminaison au moment de l'exécution au lieu de le coder en dur. coverage.traces_from_block est le premier bloc contenant des données de trace ; une requête de trace antérieure à celui-ci, ou située dans un intervalle manquant, renvoie 422 no_coverage (non facturé).
Appeler /v1/data/{chain}/… avec une chaîne inconnue ou non publique renvoie HTTP 404 avec error.code not_found (non facturé ; le nom de la chaîne doit être le slug exact en minuscules).
Dernière mise à jour :
Présentation
Documentation JSON-RPC et Data API multi-chaînes. Utilisez une seule clé sur toutes les chaînes prises en charge pour vos premiers appels, la référence API, les jeux de données et les règles de facturation.
Référence des erreurs
Codes d'erreur BlockVectra, facturation et recommandations de nouvelle tentative pour JSON-RPC, Data API, Push Webhooks, console et faucet, incluant les plages de blocs eth_getLogs et les erreurs de rejeu Webhook.