Довідник 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ЗначенняДія
402insufficient_balanceПлатний баланс або безкоштовний кредит вичерпано; коли баланс відомий, error.data містить balance_units та balance_cu (не тарифікується)Поповніть баланс ончейн на сторінці білінгу у консолі або дочекайтеся поповнення безкоштовного ліміту
404not_foundНевідома або непублічна {chain}, або об'єкт не існуєВиправте запит
409not_indexed_yetЗапит виходить за межі as_of_block (найновіший повністю записаний блок; включає indexed_through), хеш веде до блоку вище as_of_block, або мережа ще не має індексованих даних (без indexed_through)Якщо вказано indexed_through, надсилайте повторні запити (poll), доки ваш блок або to_block не буде на цьому рівні або нижче; якщо параметр відсутній, зачекайте, доки почнеться індексація мережі (coverage.has_data у GET /v1/data/chains показує поточний стан)
422no_coverageПостійна відсутність даних: мережа не підтримує цю функцію, або блок знаходиться раніше за початок індексації/трасуванняЗмініть запит; повторна відправка не допоможе
429rate_limitedЛіміт швидкості CU для ключа (відповідь містить Retry-After) або ліміт швидкості викликів акаунта (без Retry-After); не тарифікуєтьсяПовторіть спробу через Retry-After секунд
429cost_exceeds_burstВартість одного запиту перевищує ємність burst для ключа; без Retry-After (не тарифікується)Розділіть запит; повторення в такому ж вигляді ніколи не буде успішним
503unavailableТимчасово недоступно; відповідь містить Retry-After. Також повертається для історичних запитів у мережі, де coverage.from_block наразі дорівнює nullПовторіть спробу через Retry-After секунд
503gateway_overloadedДосягнуто ліміт одночасних запитів акаунта для всіх його ключів і мереж, або сервіс тимчасово перевантажений; Retry-After: 1 (не тарифікується)Зменшіть кількість одночасних запитів для акаунта та зачекайте Retry-After секунд перед повторною спробою

Індекс ендпоінтів

Нижче наведено оригінальну специфікацію англійською мовою.

Chain

МетодШляхОпис
GET/chainsList 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}/transactionsList a block's transactions
GET/{chain}/transactions/{hash}Get a transaction by hash

Status

МетодШляхОпис
GET/{chain}/status/freshnessFreshness and lag per dataset

Addresses

МетодШляхОпис
GET/{chain}/addresses/{address}/transactionsList an address's transactions
GET/{chain}/addresses/{address}/transfersList an address's token transfers
GET/{chain}/addresses/{address}/balancesList an address's ERC-20 balances

Tokens

МетодШляхОпис
GET/{chain}/tokens/{token}/transfersList a token contract's transfers
GET/{chain}/tokens/{token}/holdersList a token's holders
GET/{chain}/tokens/{token}Get token metadata
POST/{chain}/tokens:batchBatch get token metadata

NFTs

МетодШляхОпис
GET/{chain}/nfts/{contract}/{token_id}Get one NFT's owner/holders
GET/{chain}/nftsList NFTs owned by an address

DEX

МетодШляхОпис
GET/{chain}/dex/swapsList DEX swaps by pool or token
GET/{chain}/dex/pricesDaily DEX token prices

Stocks

МетодШляхОпис
GET/{chain}/stocksDaily leaderboard of tokenized stocks
GET/{chain}/stocks/{token}Get one tokenized stock

Traces

МетодШляхОпис
GET/{chain}/blocks/{number}/tracesHistorical callTracer trace tree for a whole block
GET/{chain}/transactions/{hash}/traceHistorical callTracer trace tree for one transaction

Нижче наведено оригінальну специфікацію англійською мовою.

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

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