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 :

ServiceModeModèle d'URLNotes
JSON-RPCClé dans le cheminPOST /v1/{chain}/{api_key}Forme la plus simple ; recommandée pour curl et les clients HTTP
JSON-RPCClé dans un en-têtePOST /v1/{chain}Transmettez la clé dans l'en-tête de requête x-api-key: {api_key}
Data APIPoints de terminaison RESTGET /v1/data/{chain}/…Transmettez la clé dans l'en-tête de requête x-api-key
ÉtatÉtat publicGET /v1/statusAucune 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 /v1 ou POST /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 IDTracingEndpoint publicWebSocketData APIMéthodes avec une clé APINotifications WebhookEnvoyer des transactionsEnvoyer des transactions (endpoint public sans key)Fenêtre d'historique d'étatPlage maximale de blocs pour eth_getLogsJeux de données Data APIRéseaux de test associésGuides associés
RPC et Data API arb_mainnetarb_mainnet42161✓https://api.blockvectra.com/v1/arb_mainnet/publicNon pris en chargeOuvert43Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 6,000 blocs les plus récents1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des donnéesInconnuInconnu
RPC et Data API base_mainnetbase_mainnet8453—https://api.blockvectra.com/v1/base_mainnet/publicNon pris en chargeOuvert39Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 10,000 blocs les plus récents1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des donnéesInconnuBase
RPC et Data API bsc_mainnetbsc_mainnet56—https://api.blockvectra.com/v1/bsc_mainnet/publicNon pris en chargeOuvert25Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 100 blocs les plus récents1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des donnéesInconnuInconnu
RPC et Data API Ethereumeth_mainnet1✓https://api.blockvectra.com/v1/eth_mainnet/publicNon pris en chargeOuvert38Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 250,000 blocs les plus récents1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des donnéesInconnuInconnu
RPC et Data API eth_sepoliaeth_sepolia11155111—https://api.blockvectra.com/v1/eth_sepolia/publicNon pris en chargeOuvert29Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeInconnu1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des donnéesInconnuInconnu
RPC et Data API HyperEVMhyperevm_mainnet999—https://api.blockvectra.com/v1/hyperevm_mainnet/publicNon pris en chargeOuvert24Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Non pris en chargeNon pris en chargeInconnu1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Soldes, Détenteurs, NFT, Fraîcheur des donnéesInconnuHyperEVM backfill and polling
RPC et Data API polygon_mainnetpolygon_mainnet137✓https://api.blockvectra.com/v1/polygon_mainnet/publicNon pris en chargeOuvert43Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 126 blocs les plus récents1,000 blocsBlocs, Transactions, Transactions d'adresses, Transferts, Métadonnées de jetons, Fraîcheur des donnéesInconnuInconnu
RPC et Data API Robinhood Chainrobinhood_mainnet4663✓https://api.blockvectra.com/v1/robinhood_mainnet/publicPris en charge (newHeads, logs)Ouvert43Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 900 blocs les plus récents1,000 blocsBlocs, 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éesInconnuRobinhood Chain
Stock token multiplier

Tokenized stocks
RPC robinhood_testnetrobinhood_testnet46630✓https://api.blockvectra.com/v1/robinhood_testnet/publicPris en charge (newHeads, logs)Pas encore disponible43Pris en charge · Confirmations 1–1 (par défaut 1)
Guide des notifications Webhook
Pris en chargePris en chargeÉtat historique pour les 1,023 blocs les plus récents1,000 blocsNon pris en chargeInconnuTestnet 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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/arb_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/base_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/bsc_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/eth_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/eth_sepolia/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/hyperevm_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/polygon_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

Cré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_getLogs

Data API

curl -fsS 'https://api.blockvectra.com/v1/data/robinhood_mainnet/status/freshness' -H "x-api-key: $BLOCKVECTRA_API_KEY"
Data API

WebSocket

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

Cré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_getLogs

WebSocket

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

Cré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.

Voir l'état en direct →

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} ou GET /v1/data/eth_mainnet/….

JSON-RPC

  • Méthodes : les méthodes disponibles pour chaque chaîne sont déterminées par methods.allow / deny dans GET /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_blocks dans GET /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 renvoie result: null.
  • eth_getLogs : la plage de blocs maximale par requête est définie par max_logs_block_range dans GET /v1/chains.

Data API

  • Données récentes uniquement : la couverture des données Ethereum est déterminée par coverage.from_block dans GET /v1/data/chains. Un numéro de bloc ou une fenêtre antérieur(e) au point de départ renvoie 422 no_coverage ; un hash de transaction ayant quitté la fenêtre renvoie 404.
  • Lorsque from_block est null : le point de départ est temporairement indéterminé. Ne le traitez pas comme 0 ni 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 renvoient 503 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 features de GET /v1/data/chains ; les autres renvoient 422 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ée meta.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 :

Sur cette page