Довідник 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
Вага методів Data API в CU наведена на сторінці Ціни та повертається запитом 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 (не тарифікується; назви мереж мають бути точними slug у нижньому регістрі).
Помилки
Кожна відповідь із помилкою має вигляд {"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, надсилайте повторні запити (poll), доки ваш блок або 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 | Вартість одного запиту перевищує ємність burst для ключа; без 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 |
Нижче наведено оригінальну специфікацію англійською мовою.
Востаннє оновлено: