# Поддерживаемые сети

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

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

## Один ключ для всех сетей

* **Универсальный ключ**: один и тот же API key работает во всех поддерживаемых сетях BlockVectra — отдельные ключи для каждой сети не требуются.
* **Сеть в URL**: каждый запрос явно указывает сеть с помощью сегмента пути `{chain}`.
* **Общий учет**: баланс аккаунта, корзины лимитов Compute Units (CU) и посекундные лимиты бесплатного тарифа действуют совместно для всех сетей.
* **Цены**: см. раздел [Цены](https://blockvectra.com/ru/pricing/).

## Тестирование без API key

Выберите [бесплатный публичный эндпоинт RPC](https://blockvectra.com/ru/free/#public-rpc) для вызова методов кошелька без API key. Публичные методы и лимиты на IP указаны для каждой сети; пример вызова см. в разделе [Быстрый старт](https://docs.blockvectra.com/ru/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 с пустым телом. Подробности настройки см. в разделе [Быстрый старт](https://docs.blockvectra.com/ru/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/ru/chains/arb_mainnet/) | arb_mainnet | 42161 | ✓ | `https://api.blockvectra.com/v1/arb_mainnet/public` | Не поддерживается | Доступно | 43 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 6,000 блоков | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Свежесть данных | Неизвестно | Неизвестно |
| [base_mainnet: RPC и Data API](https://blockvectra.com/ru/chains/base_mainnet/) | base_mainnet | 8453 | — | `https://api.blockvectra.com/v1/base_mainnet/public` | Не поддерживается | Доступно | 39 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 10,000 блоков | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Свежесть данных | Неизвестно | [Base](https://docs.blockvectra.com/en/guides/base/) |
| [bsc_mainnet: RPC и Data API](https://blockvectra.com/ru/chains/bsc_mainnet/) | bsc_mainnet | 56 | — | `https://api.blockvectra.com/v1/bsc_mainnet/public` | Не поддерживается | Доступно | 25 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 100 блоков | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Свежесть данных | Неизвестно | Неизвестно |
| [Ethereum: RPC и Data API](https://blockvectra.com/ru/chains/eth_mainnet/) | eth_mainnet | 1 | ✓ | `https://api.blockvectra.com/v1/eth_mainnet/public` | Не поддерживается | Доступно | 38 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 250,000 блоков | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Свежесть данных | Неизвестно | Неизвестно |
| [eth_sepolia: RPC и Data API](https://blockvectra.com/ru/chains/eth_sepolia/) | eth_sepolia | 11155111 | — | `https://api.blockvectra.com/v1/eth_sepolia/public` | Не поддерживается | Доступно | 29 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Неизвестно | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Свежесть данных | Неизвестно | Неизвестно |
| [HyperEVM: RPC и Data API](https://blockvectra.com/ru/chains/hyperevm_mainnet/) | hyperevm_mainnet | 999 | — | `https://api.blockvectra.com/v1/hyperevm_mainnet/public` | Не поддерживается | Доступно | 24 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Не поддерживается | Не поддерживается | Неизвестно | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Балансы, Держатели, NFT, Свежесть данных | Неизвестно | [HyperEVM backfill and polling](https://docs.blockvectra.com/en/guides/hyperevm-backfill/) |
| [polygon_mainnet: RPC и Data API](https://blockvectra.com/ru/chains/polygon_mainnet/) | polygon_mainnet | 137 | ✓ | `https://api.blockvectra.com/v1/polygon_mainnet/public` | Не поддерживается | Доступно | 43 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 126 блоков | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Свежесть данных | Неизвестно | Неизвестно |
| [Robinhood Chain: RPC и Data API](https://blockvectra.com/ru/chains/robinhood_mainnet/) | robinhood_mainnet | 4663 | ✓ | `https://api.blockvectra.com/v1/robinhood_mainnet/public` | Поддерживается (newHeads, logs) | Доступно | 43 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 900 блоков | 1,000 блоков | Блоки, Транзакции, Транзакции адреса, Переводы, Метаданные токенов, Балансы, Держатели, NFT, Свопы DEX, Цены DEX, Токенизированные акции, Трассировки, Свежесть данных | Неизвестно | [Robinhood Chain](https://docs.blockvectra.com/en/guides/robinhood-chain/), [Stock token multiplier](https://docs.blockvectra.com/en/guides/stock-token-multiplier/), [Tokenized stocks](https://docs.blockvectra.com/en/guides/stocks/) |
| [robinhood_testnet: RPC](https://blockvectra.com/ru/chains/robinhood_testnet/) | robinhood_testnet | 46630 | ✓ | `https://api.blockvectra.com/v1/robinhood_testnet/public` | Поддерживается (newHeads, logs) | Пока недоступно | 43 | [Поддерживается · Подтверждения 1–1 (по умолчанию 1)](https://blockvectra.com/ru/webhooks/), [Руководство по Webhook-уведомлениям](https://docs.blockvectra.com/en/guides/webhook-push/) | Поддерживается | Поддерживается | Историческое состояние за последние 1,023 блоков | 1,000 блоков | Не поддерживается | Неизвестно | [Testnet faucet](https://docs.blockvectra.com/en/guides/robinhood-testnet-faucet/), [Robinhood Chain Testnet starter](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/api/data/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/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/en/guides/websocket-subscriptions/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/en/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/en/guides/websocket-subscriptions/)

[Создать подписку Webhook](https://blockvectra.com/ru/webhooks/) · [Создать подписку Webhook](https://docs.blockvectra.com/en/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/ru/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/ru/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` только в случае, если status равен `"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` (не тарифицируется; имя сети должно быть точным слагом в нижнем регистре).
