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

> Source: https://docs.blockvectra.com/uk/chains/

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

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

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

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

Виберіть [безкоштовний публічний RPC-ендпоінт](https://blockvectra.com/en/free/#public-rpc) для виклику методів гаманця без API key. Публічні методи та ліміти на IP наведені для кожної мережі; приклад виклику див. у розділі [Швидкий старт](https://docs.blockvectra.com/en/quickstart/).

## Шаблони 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 API | REST-ендпоінти   | `GET /v1/data/{chain}/…`     | Передавайте ключ у заголовку запиту `x-api-key`                      |
| Статус   | Публічний статус | `GET /v1/status`             | Ключ не потрібен; повертає статус і верхівку кожної публічної мережі |

> **Примітка**: запит без сегмента мережі (наприклад, `POST /v1` або `POST /v1/`) повертає HTTP 404 з порожнім тілом (empty body). Подробиці налаштування див. у розділі [Швидкий старт](https://docs.blockvectra.com/en/quickstart/).

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

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

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

| Мережа | {chain} | Chain ID | Tracing | Публічний ендпоінт | WebSocket | Data API | Кількість методів з API key | Webhook-сповіщення | Надсилання транзакцій | Надсилання транзакцій (публічний ендпоінт без key) | Вікно історії стану | Максимальний діапазон блоків eth_getLogs | Набори даних Data API | Пов'язані тестові мережі | Пов'язані посібники |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [arb_mainnet: RPC та Data API](https://blockvectra.com/uk/chains/arb_mainnet/) | arb_mainnet | 42161 | ✓ | `https://api.blockvectra.com/v1/arb_mainnet/public` | Не підтримується | Відкрито | 43 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 5,000 блоків | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість даних | Невідомо | Невідомо |
| [base_mainnet: RPC та Data API](https://blockvectra.com/uk/chains/base_mainnet/) | base_mainnet | 8453 | — | `https://api.blockvectra.com/v1/base_mainnet/public` | Не підтримується | Відкрито | 39 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 10,000 блоків | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість даних | Невідомо | [Base](https://docs.blockvectra.com/uk/guides/base/) |
| [bsc_mainnet: RPC та Data API](https://blockvectra.com/uk/chains/bsc_mainnet/) | bsc_mainnet | 56 | — | `https://api.blockvectra.com/v1/bsc_mainnet/public` | Не підтримується | Відкрито | 25 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 100 блоків | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість даних | Невідомо | Невідомо |
| [Ethereum: RPC та Data API](https://blockvectra.com/uk/chains/eth_mainnet/) | eth_mainnet | 1 | ✓ | `https://api.blockvectra.com/v1/eth_mainnet/public` | Не підтримується | Відкрито | 38 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 250,000 блоків | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість даних | Невідомо | Невідомо |
| [eth_sepolia: RPC та Data API](https://blockvectra.com/uk/chains/eth_sepolia/) | eth_sepolia | 11155111 | — | `https://api.blockvectra.com/v1/eth_sepolia/public` | Не підтримується | Відкрито | 29 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Невідомо | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість даних | Невідомо | Невідомо |
| [HyperEVM: RPC та Data API](https://blockvectra.com/uk/chains/hyperevm_mainnet/) | hyperevm_mainnet | 999 | — | `https://api.blockvectra.com/v1/hyperevm_mainnet/public` | Не підтримується | Відкрито | 24 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Не підтримується | Не підтримується | Невідомо | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Баланси, Власники, NFT, Свіжість даних | Невідомо | [Бекфіл та опитування HyperEVM](https://docs.blockvectra.com/uk/guides/hyperevm-backfill/) |
| [polygon_mainnet: RPC та Data API](https://blockvectra.com/uk/chains/polygon_mainnet/) | polygon_mainnet | 137 | ✓ | `https://api.blockvectra.com/v1/polygon_mainnet/public` | Не підтримується | Відкрито | 43 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 126 блоків | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Свіжість даних | Невідомо | Невідомо |
| [Robinhood Chain: RPC та Data API](https://blockvectra.com/uk/chains/robinhood_mainnet/) | robinhood_mainnet | 4663 | ✓ | `https://api.blockvectra.com/v1/robinhood_mainnet/public` | Підтримується (newHeads, logs) | Відкрито | 43 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 900 блоків | 1,000 блоків | Блоки, Транзакції, Транзакції адреси, Перекази токенів, Метадані токенів, Баланси, Власники, NFT, Свопи DEX, Ціни DEX, Токенізовані акції, Трасування, Свіжість даних | Невідомо | [Robinhood Chain](https://docs.blockvectra.com/uk/guides/robinhood-chain/), [Мультиплікатор токенів акцій](https://docs.blockvectra.com/uk/guides/stock-token-multiplier/), [Токенізовані акції](https://docs.blockvectra.com/uk/guides/stocks/) |
| [robinhood_testnet: RPC](https://blockvectra.com/uk/chains/robinhood_testnet/) | robinhood_testnet | 46630 | ✓ | `https://api.blockvectra.com/v1/robinhood_testnet/public` | Підтримується (newHeads, logs) | Поки недоступно | 43 | [Підтримується · Підтвердження 1–1 (за замовчуванням 1)](https://blockvectra.com/uk/webhooks/), [Посібник із Webhook-сповіщень](https://docs.blockvectra.com/uk/guides/webhook-push/) | Підтримується | Підтримується | Історичний стан за останні 1,023 блоків | 1,000 блоків | Не підтримується | Невідомо | [Кран testnet](https://docs.blockvectra.com/uk/guides/robinhood-testnet-faucet/), [Стартовий посібник Robinhood Chain Testnet](https://docs.blockvectra.com/uk/guides/robinhood-testnet-starter/) |

## Наступні кроки з API key

### arb_mainnet

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### base_mainnet

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### bsc_mainnet

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### Ethereum

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### eth_sepolia

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### HyperEVM

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### polygon_mainnet

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### Robinhood Chain

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### Data API

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

[Data API](https://docs.blockvectra.com/uk/api/data/)

#### WebSocket

```bash
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](https://docs.blockvectra.com/uk/guides/websocket-subscriptions/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

### robinhood_testnet

#### eth_getLogs

```bash
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](https://docs.blockvectra.com/uk/guides/getlogs-block-range/)

#### WebSocket

```bash
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](https://docs.blockvectra.com/uk/guides/websocket-subscriptions/)

[Створити Webhook-підписку](https://blockvectra.com/uk/webhooks/) · [Створити Webhook-підписку](https://docs.blockvectra.com/uk/guides/webhook-push/) · [Використання та CU](https://console.blockvectra.com/usage/) · [Поповнити баланс](https://console.blockvectra.com/billing/)

**HyperEVM**
Блоки HyperEVM містять системні транзакції HyperCore (з адреси 0x2222…2222 або 0x20…, gasPrice 0).
Надсилання транзакцій у цій мережі поки не підтримується (`eth_sendRawTransaction` повертає `-32601` `method_not_allowed`); методи читання працюють нормально.

[Переглянути статус наживо →](https://blockvectra.com/uk/status/)

## 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` (див. [Політика методів](https://docs.blockvectra.com/en/api/json-rpc/#method-policy)); методи поза цими межами повертають `-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 `*`). Він виводить лише загальнодоступні мережі та повертає їхній статус та індексовану верхівку:

```bash
curl -s "https://api.blockvectra.com/v1/status"
```

Приклад відповіді:

```json
{
  "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`):

```bash
curl -s "https://api.blockvectra.com/v1/data/chains" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"
```

Приклад відповіді:

```json
{
  "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 у нижньому регістрі).
