지원 체인
지원하는 블록체인 네트워크, Chain ID, URL 구조 및 기능을 확인하세요. 체인별 엔드포인트, 메서드와 데이터셋 범위를 안내합니다.
BlockVectra는 멀티체인 블록체인 데이터 서비스입니다. 지원되는 모든 체인에서 JSON-RPC를 제공하며, Data API가 제공되는 체인에서는 Data API도 사용할 수 있습니다.
하나의 API 키로 모든 체인 사용
- 공통 API 키: 같은 API 키를 BlockVectra가 지원하는 모든 블록체인 네트워크에서 사용할 수 있습니다. 체인마다 키를 발급할 필요가 없습니다.
- URL로 체인 지정: 모든 요청은
{chain}경로 구간으로 체인을 명시합니다. - 사용량 합산: 계정 잔액, Compute Unit (CU) 속도 제한 버킷 및 무료 플랜의 초당 요청 한도는 모든 체인에서 공유됩니다.
- 요금: 요금 안내를 확인하세요.
API 키 없이 사용해 보기
API 키 없이 지갑용 메서드를 호출하려면 무료 공개 RPC 엔드포인트를 선택하세요. 공개 메서드와 IP별 한도는 네트워크마다 안내되어 있습니다. 호출 예제는 빠른 시작을 확인하세요.
URL 형식
JSON-RPC 및 Data API 호출에 사용하는 기본 URL 형식입니다.
| 서비스 | 인증 방식 | URL 형식 | 설명 |
|---|---|---|---|
| JSON-RPC | 경로에 API 키 포함 | POST /v1/{chain}/{api_key} | 가장 간단한 형식으로, curl 및 HTTP 클라이언트에 권장 |
| JSON-RPC | 헤더에 API 키 포함 | 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 키로 호출하는 메서드, 구독, 트랜잭션 전송, 상태 및 로그 조회 한도, 데이터셋, 관련 테스트넷과 가이드를 표시합니다. 확인되지 않은 정보는 알 수 없음으로 표시합니다. 표 아래에서 체인을 펼치면 해당 체인에서 지원하는 요청을 확인할 수 있습니다.
| 체인 | {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 APIbase_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 APIbsc_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 APIEthereum
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 APIeth_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 APIHyperEVM
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 APIpolygon_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 APIRobinhood 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'WebSocketrobinhood_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'WebSocketHyperEVM
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"로 표시됩니다.
API로 체인 목록 조회
다음 공개 엔드포인트에서 지원 체인과 상태를 조회할 수 있습니다.
1. 서비스 상태 (GET /v1/status)
API 키가 필요 없는 공개 엔드포인트입니다(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 키가 필요하며 과금되는 호출입니다. 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이며, 상태가 "unavailable"일 때만 두 값 모두 null입니다.
coverage.from_block은 실시간으로 읽은 가장 낮은 인덱싱 블록입니다. 체인의 이력이 제네시스 블록까지 포함되면 0입니다. 인덱싱된 블록이 전혀 없거나(has_data = false) 시작점을 확인할 수 없을 때만 null일 수 있습니다. null은 알 수 없음으로 처리하세요. 전체 이력이나 0을 뜻하지 않으며, 이 상태에서 과거 데이터 요청은 503 unavailable을 반환합니다. 값을 하드코딩하지 말고 실행 시 이 엔드포인트에서 읽으세요. coverage.traces_from_block은 trace 데이터가 있는 첫 블록입니다. 이 블록 이전이나 데이터가 누락된 구간의 trace 요청은 422 no_coverage를 반환하며 과금하지 않습니다.
알 수 없거나 공개되지 않은 체인으로 /v1/data/{chain}/…를 호출하면 HTTP 404와 error.code 값 not_found를 반환하며 과금하지 않습니다. 체인 이름은 정확한 소문자 slug여야 합니다.
최종 수정일: