Справочник Blockchain Data API
Справочник запросов Blockchain Data API: REST-эндпоинты, аутентификация по API key, параметры, схемы ответов, ошибки и веса CU для индексированных данных блокчейна.
Обзор
Используйте этот справочник Blockchain Data API для составления REST-запросов к индексированным блокам, транзакциям, адресам, токенам, NFT, активности на DEX, токенизированным акциям и актуальности наборов данных. Чтобы выбрать набор данных и проверить его доступность в сетях, начните с каталога наборов данных; для получения балансов токенов кошелька и истории переводов следуйте руководству по активам кошелька.
- Базовый URL:
https://api.blockvectra.com/v1/data— каждый маршрут, кроме/chains, предваряется идентификатором сети (например,https://api.blockvectra.com/v1/data/{chain}/…) - Протокол: HTTP
GET(плюсPOSTдля пакетного поиска токенов по адресу/{chain}/tokens:batch), ответы в формате JSON - Аутентификация: требуется API key — передавайте свой ключ в заголовке запроса
x-api-key. Запросы учитываются и тарифицируются в Compute Units (CU); тарифицируются только успешные ответы 2xx - Ethereum: покрытие данных определяется значением
coverage.from_blockвGET /v1/data/chainsи охватывает меньший набор данных — см. Поддерживаемые сети → Ethereum
Веса CU для Data API перечислены на странице Цены и возвращаются методом GET /v1/plans. Примеры запросов и форматы ответов см. в разделе Быстрый старт → Вызовы Data API. Информацию о версионировании путей, правилах обратной совместимости и рекомендациях по SDK см. в разделе Версионирование и совместимость API.
Сети
Data API предоставляет индексированные данные отдельно для каждой сети: https://api.blockvectra.com/v1/data/{chain}/….
Доступные наборы данных и возможности различаются в зависимости от сети; полную матрицу возможностей см. в разделе Поддерживаемые сети. Запрос GET https://api.blockvectra.com/v1/data/chains возвращает параметры features, coverage, finality и limits для каждой сети. Запросы за пределами покрытия набора данных возвращают HTTP 422 no_coverage (не тарифицируется); неизвестная или непубличная сеть возвращает HTTP 404 с error.code not_found (не тарифицируется; имена сетей должны быть указаны точными слагами в нижнем регистре).
Ошибки
Каждый ответ с ошибкой имеет вид {"error":{"code","message"}}; только 409 not_indexed_yet может дополнительно содержать indexed_through (наивысший проиндексированный блок в этой сети), и это поле отсутствует, если у сети еще нет проиндексированных данных. Коды, с которыми клиенты сталкиваются чаще всего:
| Статус | error.code | Значение | Действие |
|---|---|---|---|
402 | insufficient_balance | Платный баланс или бесплатный грант исчерпан; если баланс известен, error.data содержит balance_units и balance_cu (не тарифицируется) | Пополните баланс ончейн на странице биллинга в консоли или дождитесь обновления бесплатного лимита |
404 | not_found | Неизвестная или непубличная сеть {chain}, либо объект не существует | Исправьте запрос |
409 | not_indexed_yet | Запрос обращается к блоку выше as_of_block (новейший полностью записанный блок; содержит indexed_through), хеш указывает на блок выше as_of_block, либо у сети еще нет проиндексированных данных (без indexed_through) | При наличии indexed_through выполняйте опрос, пока ваш блок или to_block не станет меньше или равен ему; без него подождите, пока сеть начнет индексацию (поле coverage.has_data в GET /v1/data/chains показывает состояние) |
422 | no_coverage | Постоянное отсутствие данных: сеть не поддерживает эту возможность, либо блок находится раньше начала покрытия индексации/трассировки | Измените запрос; повторная попытка не поможет |
429 | rate_limited | Превышен лимит CU для ключа (ответ содержит Retry-After) или лимит вызовов для аккаунта (без Retry-After); не тарифицируется | Повторите попытку через Retry-After секунд |
429 | cost_exceeds_burst | Один запрос требует больше CU, чем пиковая емкость ключа; без Retry-After (не тарифицируется) | Разделите запрос; повторная отправка в исходном виде не будет успешной |
503 | unavailable | Временно недоступно; ответ содержит Retry-After. Также возвращается для исторических запросов в сети, где coverage.from_block в данный момент имеет значение null | Повторите попытку через Retry-After секунд |
503 | gateway_overloaded | Достигнут лимит параллельных запросов аккаунта по всем его ключам и сетям, либо сервис временно перегружен; Retry-After: 1 (не тарифицируется) | Уменьшите число параллельных запросов по всему аккаунту и подождите Retry-After секунд перед повторной попыткой |
Список эндпоинтов
Ниже представлена оригинальная спецификация на английском языке.
Chain
| Метод | Путь | Описание |
|---|---|---|
| GET | /chains | List supported chains |
| GET | /{chain}/blocks/{number} | Get a block by number |
| GET | /{chain}/blocks/hash/{hash} | Get a block by hash |
| GET | /{chain}/blocks/{number}/transactions | List a block's transactions |
| GET | /{chain}/transactions/{hash} | Get a transaction by hash |
Status
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/status/freshness | Freshness and lag per dataset |
Addresses
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/addresses/{address}/transactions | List an address's transactions |
| GET | /{chain}/addresses/{address}/transfers | List an address's token transfers |
| GET | /{chain}/addresses/{address}/balances | List an address's ERC-20 balances |
Tokens
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/tokens/{token}/transfers | List a token contract's transfers |
| GET | /{chain}/tokens/{token}/holders | List a token's holders |
| GET | /{chain}/tokens/{token} | Get token metadata |
| POST | /{chain}/tokens:batch | Batch get token metadata |
NFTs
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/nfts/{contract}/{token_id} | Get one NFT's owner/holders |
| GET | /{chain}/nfts | List NFTs owned by an address |
DEX
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/dex/swaps | List DEX swaps by pool or token |
| GET | /{chain}/dex/prices | Daily DEX token prices |
Stocks
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/stocks | Daily leaderboard of tokenized stocks |
| GET | /{chain}/stocks/{token} | Get one tokenized stock |
Traces
| Метод | Путь | Описание |
|---|---|---|
| GET | /{chain}/blocks/{number}/traces | Historical callTracer trace tree for a whole block |
| GET | /{chain}/transactions/{hash}/trace | Historical callTracer trace tree for one transaction |
Ниже представлена оригинальная спецификация на английском языке.
Последнее обновление:
Версионирование и совместимость
Версионирование путей в API BlockVectra, определение обратно совместимых изменений, а также доступность сетей и методов.
JSON-RPC
Поддерживаемые методы JSON-RPC, веса CU и коды ошибок. Настройка эндпоинта, выбор сети, проверка доступности методов, цен и правил тарификации.