Підтримувані мережі

Підтримувані блокчейн-мережі, Chain ID, структури URL та доступність функцій. Переглядайте ендпоінти, методи та покриття наборів даних для кожної мережі.

BlockVectra — це мультичейн-провайдер блокчейн-даних: JSON-RPC на кожній підтримуваній мережі, а також Data API там, де він доступний.

Один ключ, усі мережі

  • Універсальний ключ: один і той самий API key працює в кожній блокчейн-мережі, яку підтримує BlockVectra — без окремих ключів для кожної мережі.
  • Мережа в URL: кожен запит явно вказує свою мережу через сегмент шляху {chain}.
  • Агреговане використання: баланс акаунта, бакети обмеження швидкості Compute Unit (CU) та ліміти запитів на секунду для безкоштовного тарифу діляться між усіма мережами.
  • Ціни: див. Ціни.

Спробуйте без API key

Виберіть безкоштовний публічний RPC-ендпоінт для виклику методів гаманця без API key. Публічні методи та ліміти на IP наведені для кожної мережі; приклад виклику див. у розділі Швидкий старт.

Шаблони URL

Стандартні структури URL для виклику JSON-RPC та Data API:

СервісРежимШаблон URLПримітки
JSON-RPCКлюч у шляхуPOST /v1/{chain}/{api_key}Найпростіша форма; рекомендовано для curl та HTTP-клієнтів
JSON-RPCКлюч у заголовкуPOST /v1/{chain}Передавайте ключ у заголовку запиту x-api-key: {api_key}
Data APIREST-ендпоінтиGET /v1/data/{chain}/…Передавайте ключ у заголовку запиту x-api-key
СтатусПублічний статусGET /v1/statusКлюч не потрібен; повертає статус і верхівку кожної публічної мережі

Примітка: запит без сегмента мережі (наприклад, POST /v1 або POST /v1/) повертає HTTP 404 з порожнім тілом (empty body). Подробиці налаштування див. у розділі Швидкий старт.

Матриця підтримуваних мереж

Блокчейн-мережі, доступні наразі на BlockVectra, та можливості їхніх сервісів:

Ендпоінти, методи з API key, підписки, надсилання транзакцій, ліміти стану та логів, набори даних, пов'язані тестнети та посібники відображаються для кожної мережі. Невідомі факти залишаються невідомими. Розгорніть мережу під матрицею, щоб переглянути запити, які вона підтримує.

Мережа{chain}Chain IDTracingПублічний ендпоінтWebSocketData APIКількість методів з API keyWebhook-сповіщенняНадсилання транзакційНадсилання транзакцій (публічний ендпоінт без key)Вікно історії стануМаксимальний діапазон блоків eth_getLogsНабори даних Data APIПов'язані тестові мережіПов'язані посібники
arb_mainnet: RPC та Data APIarb_mainnet42161✓https://api.blockvectra.com/v1/arb_mainnet/publicНе підтримуєтьсяВідкрито43Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
ПідтримуєтьсяПідтримуєтьсяІсторичний стан за останні 5,000 блоків1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість данихНевідомоНевідомо
base_mainnet: RPC та Data APIbase_mainnet8453—https://api.blockvectra.com/v1/base_mainnet/publicНе підтримуєтьсяВідкрито39Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
ПідтримуєтьсяПідтримуєтьсяІсторичний стан за останні 10,000 блоків1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість данихНевідомоBase
bsc_mainnet: RPC та Data APIbsc_mainnet56—https://api.blockvectra.com/v1/bsc_mainnet/publicНе підтримуєтьсяВідкрито25Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
ПідтримуєтьсяПідтримуєтьсяІсторичний стан за останні 100 блоків1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість данихНевідомоНевідомо
Ethereum: RPC та Data APIeth_mainnet1✓https://api.blockvectra.com/v1/eth_mainnet/publicНе підтримуєтьсяВідкрито38Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
ПідтримуєтьсяПідтримуєтьсяІсторичний стан за останні 250,000 блоків1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість данихНевідомоНевідомо
eth_sepolia: RPC та Data APIeth_sepolia11155111—https://api.blockvectra.com/v1/eth_sepolia/publicНе підтримуєтьсяВідкрито29Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
ПідтримуєтьсяПідтримуєтьсяНевідомо1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість данихНевідомоНевідомо
HyperEVM: RPC та Data APIhyperevm_mainnet999—https://api.blockvectra.com/v1/hyperevm_mainnet/publicНе підтримуєтьсяВідкрито24Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
Не підтримуєтьсяНе підтримуєтьсяНевідомо1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Баланси, Власники, NFT, Свіжість данихНевідомоHyperEVM backfill and polling
polygon_mainnet: RPC та Data APIpolygon_mainnet137✓https://api.blockvectra.com/v1/polygon_mainnet/publicНе підтримуєтьсяВідкрито43Підтримується · Підтвердження 1–1 (за замовчуванням 1)
Посібник із Webhook-сповіщень
ПідтримуєтьсяПідтримуєтьсяІсторичний стан за останні 126 блоків1,000 блоківБлоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість данихНевідомоНевідомо
Robinhood Chain: RPC та Data APIrobinhood_mainnet4663✓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: RPCrobinhood_testnet46630✓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 key

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

Створити Webhook-підписку · Створити 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_getLogs

Data API

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

Створити Webhook-підписку · Створити 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_getLogs

Data API

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

Створити Webhook-підписку · Створити 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_getLogs

Data API

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

Створити Webhook-підписку · Створити 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_getLogs

Data API

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

Створити Webhook-підписку · Створити 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_getLogs

Data API

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

Створити Webhook-підписку · Створити 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_getLogs

Data API

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

Створити Webhook-підписку · Створити 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_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

Створити Webhook-підписку · Створити 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_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

Створити Webhook-підписку · Створити Webhook-підписку · Використання та CU · Поповнити баланс

HyperEVM

Блоки HyperEVM містять системні транзакції HyperCore (з адреси 0x2222…2222 або 0x20…, gasPrice 0).

Надсилання транзакцій у цій мережі поки не підтримується (eth_sendRawTransaction повертає -32601 method_not_allowed); методи читання працюють нормально.

Ethereum

  • Chain ID: 1
  • Назва мережі ({chain} в URL): eth_mainnet, наприклад POST /v1/eth_mainnet/{api_key} або GET /v1/data/eth_mainnet/….

JSON-RPC

  • Методи: доступні методи для кожної мережі визначаються параметрами methods.allow / deny у GET /v1/chains (див. Політика методів); методи поза цими межами повертають -32601.
  • Лише нещодавні дані: вікно історичного стану визначається параметром state_window_blocks у GET /v1/chains. Запити історичного стану за межами вікна повертають -32011 (не тарифікується); запити блоків, квитанцій та логів за межами вікна повертають -32000 old data not available due to pruning (не тарифікується); транзакція, знайдена за хешем за межами вікна, повертає result: null.
  • eth_getLogs: максимальний діапазон блоків на запит визначається параметром max_logs_block_range у GET /v1/chains.

Data API

  • Лише нещодавні дані: покриття даних Ethereum визначається параметром coverage.from_block у GET /v1/data/chains. Номер блоку або вікно нижче за початок повертає 422 no_coverage; хеш транзакції, що вийшов за межі вікна, повертає 404.
  • Коли from_block дорівнює null: початок тимчасово невідомий. Не сприймайте його як 0 або повну історію, і не надсилайте історичні запити (за номером блоку, вікном або хешем) для Ethereum, доки він знову не стане цілим числом; вони повертають 503 unavailable.
  • 503 gateway_overloaded: повторіть спробу з відступом (Retry-After: 1).
  • Набори даних: набори даних, які надає Ethereum, перелічені у features відповіді GET /v1/data/chains; інші повертають 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)

Потребує API key у заголовку x-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 у нижньому регістрі).

Востаннє оновлено:

На цій сторінці