対応チェーン
対応するブロックチェーンネットワーク、チェーン ID、URL 構造、機能の利用可否。チェーンごとのエンドポイント、メソッド、データセットの対応範囲を確認できます。
BlockVectra は、複数のチェーンに対応したブロックチェーンデータプロバイダーです。すべての対応チェーンで JSON-RPC を、提供されているチェーンでは Data API も利用できます。
1 つのキーですべてのチェーンにアクセス
- 共通キー:同じ API key を BlockVectra が対応するすべてのブロックチェーンネットワークで利用できます。チェーンごとに別のキーを用意する必要はありません。
- URL でチェーンを指定:すべてのリクエストで、
{chain}パスセグメントを使ってチェーンを明示的に指定します。 - 利用量の集計:アカウント残高、Compute Unit (CU) のレート制限バケット、無料プランの毎秒リクエスト数上限は、すべてのチェーンで共有されます。
- 料金:料金ページをご覧ください。
API key なしで試す
無料の公開 RPC エンドポイントを選ぶと、API key なしでウォレット向けメソッドを利用できます。公開メソッドと IP ごとの上限はネットワークごとに記載されています。呼び出し例はクイックスタートをご覧ください。
URL テンプレート
JSON-RPC と Data API を呼び出すための標準的な URL 構造:
| サービス | 方式 | URL テンプレート | 備考 |
|---|---|---|---|
| JSON-RPC | パスにキーを指定 | POST /v1/{chain}/{api_key} | 最も簡単な形式。curl と HTTP クライアントに推奨 |
| JSON-RPC | ヘッダーにキーを指定 | POST /v1/{chain} | x-api-key: {api_key} リクエストヘッダーでキーを渡す |
| Data API | REST エンドポイント | GET /v1/data/{chain}/… | x-api-key リクエストヘッダーでキーを渡す |
| ステータス | 公開ステータス | GET /v1/status | キー不要。公開チェーンごとのステータスと最新ブロックを返す |
注:チェーンセグメントがないリクエスト(例:
POST /v1またはPOST /v1/)は、空のレスポンスボディと HTTP 404 を返します。設定の詳細はクイックスタートをご覧ください。
対応チェーンの一覧
現在 BlockVectra で利用できるブロックチェーンネットワークと、各サービスの対応機能:
エンドポイント、API key で利用できるメソッド、購読、トランザクション送信、状態とログの制限、データセット、関連するテストネットとガイドをチェーンごとに表示します。不明な情報は不明のまま表示します。一覧の下でチェーンを展開すると、そのチェーンが対応するリクエストを確認できます。
| チェーン | {chain} | Chain ID | Tracing | 公開エンドポイント | WebSocket | Data API | API キーで利用できるメソッド数 | Webhook プッシュ | トランザクション送信 | トランザクション送信(key 不要の公開エンドポイント) | 状態履歴ウィンドウ | eth_getLogs 最大ブロック範囲 | Data API データセット | 関連テストネット | 関連ガイド |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| arb_mainnet RPC および Data API | arb_mainnet | 42161 | ✓ | https://api.blockvectra.com/v1/arb_mainnet/public | 非対応 | 利用可能 | 43 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 6,000 ブロックの過去状態 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、データ鮮度 | 不明 | 不明 |
| base_mainnet RPC および Data API | base_mainnet | 8453 | — | https://api.blockvectra.com/v1/base_mainnet/public | 非対応 | 利用可能 | 39 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 10,000 ブロックの過去状態 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、データ鮮度 | 不明 | Base |
| bsc_mainnet RPC および Data API | bsc_mainnet | 56 | — | https://api.blockvectra.com/v1/bsc_mainnet/public | 非対応 | 利用可能 | 25 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 100 ブロックの過去状態 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、データ鮮度 | 不明 | 不明 |
| Ethereum RPC および Data API | eth_mainnet | 1 | ✓ | https://api.blockvectra.com/v1/eth_mainnet/public | 非対応 | 利用可能 | 38 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 250,000 ブロックの過去状態 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、データ鮮度 | 不明 | 不明 |
| eth_sepolia RPC および Data API | eth_sepolia | 11155111 | — | https://api.blockvectra.com/v1/eth_sepolia/public | 非対応 | 利用可能 | 29 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 不明 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、データ鮮度 | 不明 | 不明 |
| HyperEVM RPC および Data API | hyperevm_mainnet | 999 | — | https://api.blockvectra.com/v1/hyperevm_mainnet/public | 非対応 | 利用可能 | 24 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 非対応 | 非対応 | 不明 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、残高、保有者、NFT、データ鮮度 | 不明 | HyperEVM backfill and polling |
| polygon_mainnet RPC および Data API | polygon_mainnet | 137 | ✓ | https://api.blockvectra.com/v1/polygon_mainnet/public | 非対応 | 利用可能 | 43 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 126 ブロックの過去状態 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、データ鮮度 | 不明 | 不明 |
| Robinhood Chain RPC および Data API | robinhood_mainnet | 4663 | ✓ | https://api.blockvectra.com/v1/robinhood_mainnet/public | 対応 (newHeads, logs) | 利用可能 | 43 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 900 ブロックの過去状態 | 1,000 ブロック | ブロック、トランザクション、アドレスのトランザクション、転送履歴、トークンメタデータ、残高、保有者、NFT、DEX スワップ、DEX 価格、トークン化株式、トレース、データ鮮度 | 不明 | Robinhood Chain Stock token multiplier Tokenized stocks |
| robinhood_testnet RPC | robinhood_testnet | 46630 | ✓ | https://api.blockvectra.com/v1/robinhood_testnet/public | 対応 (newHeads, logs) | まだ利用できません | 43 | 対応 · 確認数 1–1(デフォルト 1) Webhook プッシュガイド | 対応 | 対応 | 直近 1,023 ブロックの過去状態 | 1,000 ブロック | 非対応 | 不明 | Testnet faucet Robinhood Chain Testnet starter |
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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 APIWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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'WebSocketWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
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'WebSocketWebhook サブスクリプションを作成 · Webhook サブスクリプションを作成 · 使用量と CU · チャージ
HyperEVM
HyperEVM のブロックには HyperCore システムトランザクション(送信元アドレス 0x2222…2222 または 0x20…、gasPrice 0)が含まれます。
このチェーンではまだトランザクションの送信に対応していません(eth_sendRawTransaction は -32601 method_not_allowed を返します)。読み取りメソッドは通常どおり利用できます。
Ethereum
- Chain ID:
1 - チェーン名(URL の
{chain}):eth_mainnet。例:POST /v1/eth_mainnet/{api_key}またはGET /v1/data/eth_mainnet/…。
JSON-RPC
- メソッド:チェーンごとの利用可能なメソッドは、
GET /v1/chainsのmethods.allow/denyによって決まります(メソッドポリシーを参照)。その範囲外のメソッドは-32601を返します。 - 直近のデータのみ:過去の状態を参照できる範囲は、
GET /v1/chainsのstate_window_blocksによって決まります。範囲外の過去の状態クエリは-32011(課金対象外)、範囲外のブロック、レシート、ログのクエリは-32000 old data not available due to pruning(課金対象外)を返します。範囲外のトランザクションをハッシュで検索すると、result: nullを返します。 eth_getLogs:リクエストごとの最大ブロック範囲は、GET /v1/chainsのmax_logs_block_rangeです。
Data API
- 直近のデータのみ:Ethereum のデータ対応範囲は、
GET /v1/data/chainsのcoverage.from_blockによって決まります。開始位置より前のブロック番号や範囲を指定すると422 no_coverage、範囲外になったトランザクションハッシュを指定すると404を返します。 from_blockがnullの場合:開始位置が一時的に不明です。0や全履歴の提供を意味するものとして扱わないでください。再び整数になるまで、Ethereum の過去データのリクエスト(ブロック番号、範囲、ハッシュによる指定)を送信しないでください。これらは503 unavailableを返します。503 gateway_overloaded:バックオフを設けて再試行してください(Retry-After: 1)。- データセット:Ethereum が提供するデータセットは、
GET /v1/data/chainsのfeaturesに記載されています。それ以外は422 no_coverage(課金対象外)を返します。アドレスのトランザクションと転送は、この範囲のみを対象とします。開始位置をまたぐレスポンスにはmeta.coverage: "partial"が付けられます。
プログラムでチェーンを取得する
以下の公開エンドポイントで、対応チェーンとそのステータスを取得できます。
1. サービスのステータス(GET /v1/status)
API key 不要の公開エンドポイントです(CORS *)。公開されているチェーンのみを一覧表示し、そのステータスとインデックス化された最新ブロックを返します。
curl -s "https://api.blockvectra.com/v1/status"レスポンス例:
{
"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
}
}
]
}各項目の name は、常にチェーンの英語の表示名です。jsonrpc と data は、そのチェーンの JSON-RPC と Data API がそれぞれ公開されているかを示します。status は "ok" または "unavailable" です。チェーンが同期中の場合、そのチェーンへの呼び出しは -32010 を返します。/v1/status の status は JSON-RPC の正常性、data_status は Data API の正常性("ok"、"syncing"、"unavailable")を示します。/v1/data/chains の coverage.has_data が false の場合、そのチェーンにはまだインデックス化されたデータがありません。
2. Data API のチェーン(GET /v1/data/chains)
x-api-key ヘッダーに API key が必要です(課金対象)。Data API が提供する公開チェーンと、チェーンごとの提供機能(features)、データがカバーするブロック範囲(coverage)、ノードのコンセンサスに基づく safe/finalized マーカーとそのステータス(finality)、リクエストごとの上限(limits)を返します。
curl -s "https://api.blockvectra.com/v1/data/chains" \
-H "x-api-key: $BLOCKVECTRA_API_KEY"レスポンス例:
{
"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 は、ノードのコンセンサスに基づくマーカー(model は "node_tags")、マーカーの正常性(status は "ok"、"stale"、"unavailable")、現在の safe_block と finalized_block を示します(safe_block >= finalized_block で、両方が null になるのはステータスが "unavailable" の場合のみです)。
coverage.from_block は、インデックス化された最も古いブロックで、リアルタイムに取得されます。チェーンの履歴がジェネシスブロックまで到達すると 0 になります。null になるのは、インデックス化されたブロックがまったくない場合(has_data = false)か、開始位置を判定できない間のみです。null は不明として扱い、全履歴があるとも 0 とも解釈しないでください。その間、過去データのリクエストは 503 unavailable を返します。値をハードコードせず、常に実行時にこのエンドポイントから取得してください。coverage.traces_from_block はトレースデータがある最初のブロックです。それより前、またはデータが欠けている範囲のトレースリクエストは 422 no_coverage(課金対象外)を返します。
不明なチェーンや非公開のチェーンを指定して /v1/data/{chain}/… を呼び出すと、HTTP 404 と error.code の not_found を返します(課金対象外。チェーン名は小文字の slug と完全に一致する必要があります)。
最終更新: