Часто розробники натикаються на граблі при інтеграції Bitquery: rate limits, відмінності схем V1 і V2, складність real-time. Ми за 5 років роботи з блокчейн-даними виробили підхід, який знімає ці проблеми. Налаштовуємо Bitquery під ваші задачі — від моніторингу DEX-торгів до whale-трекінгу — і даємо документацію та підтримку. Bitquery індексує понад 40 блокчейнів, включаючи Ethereum, BNB Chain, Polygon, Arbitrum, Solana, і надає доступ до даних через GraphQL API. Однак кожна інтеграція вимагає глибокого розуміння схеми даних, типів запитів та особливостей версій. Ми допомагаємо вам сфокусуватися на бізнес-логіці, а не на налагодженні API.
Які проблеми вирішує інтеграція з Bitquery API?
Bitquery — GraphQL API поверх індексованих даних понад 40 блокчейнів. На словах це звучить як "просто підключи та отримуй дані". На практиці — розбиратися з V1 vs V2, rate limits, правильною пагінацією та нормалізацією. Ми беремо це на себе.
V1 vs V2: що обрати?
| Характеристика | V1 (api.bitquery.io) | V2 (streaming.bitquery.io, EAP) |
|---|---|---|
| Тип запитів | Query (HTTP) | Query + Subscription (WebSocket) |
| Real-time | Ні | Так |
| Мережі | Понад 40 | Близько 20, розширюється |
| Актуальність | Режим підтримки | Активна розробка |
Для нових проєктів ми рекомендуємо V2, якщо потрібні мережі доступні. Якщо ні — використовуємо V1 до міграції. V2 — це майбутнє: real-time, streaming, WebSocket. Якщо ваша мережа вже підтримується, міграція на V2 скорочує затримку даних з хвилин до секунд.
# V2: підписка на нові свапи Uniswap V3 у реальному часі subscription { EVM(network: eth) { DEXTrades( where: { Trade: { Dex: { ProtocolName: { is: "uniswap_v3" } } } } ) { Block { Time Number } Trade { Buy { Amount Currency { Symbol Address } } Sell { Amount Currency { Symbol Address } } Dex { PoolAddress } } } } } Як робити запити до DEX-даних?
Моніторинг DEX-торгівлі з OHLCV
query DEXOHLCVQuery($since: ISO8601DateTime!, $poolAddress: String!) { EVM(network: eth, dataset: archive) { DEXTradeByTokens( where: { Trade: { Dex: { SmartContract: { is: $poolAddress } } } Block: { Time: { since: $since } } } orderBy: { ascendingByField: "Block_Time" } limit: { count: 1000 } ) { Block { Time(interval: { in: minutes, count: 5 }) } Trade { open: PriceInUSD(minimum: Block_Time) high: PriceInUSD(maximum: Trade_PriceInUSD) low: PriceInUSD(minimum: Trade_PriceInUSD) close: PriceInUSD(maximum: Block_Time) volume: sum(of: Trade_Side_AmountInUSD) } } } } Whale-моніторинг великих переказів USDT
query WhaleTransfers($minAmount: String!) { EVM(network: eth) { Transfers( where: { Transfer: { Currency: { SmartContract: { is: "0xdac17f958d2ee523a2206206994597c13d831ec7" } } Amount: { ge: $minAmount } } } limit: { count: 50 } orderBy: { descendingByField: "Block_Time" } ) { Block { Time Number } Transfer { From To Amount Currency { Symbol } } Transaction { Hash } } } } Rate limits: стратегії роботи
Bitquery тарифікує запити в points — кожен запит коштує балів залежно від обсягу. Основні обмеження: запити за хвилину та місячний ліміт points. Ми застосовуємо три техніки:
- Кешування. Історичні дані (угоди за минулі дні) кешуємо в Redis або PostgreSQL на 24+ годин. До Bitquery йдемо тільки за свіжими.
-
Пагінація через cursor. Запити з limit повертають до 1000 записів. Використовуємо offset або cursor, поки не отримаємо всі дані.
async function fetchAllTrades(poolAddress: string, since: string) { const allTrades = []; let offset = 0; const limit = 1000; while (true) { const data = await bitquery.request(TRADES_QUERY, { poolAddress, since, limit, offset }); const trades = data.EVM.DEXTradeByTokens; allTrades.push(...trades); if (trades.length < limit) break; offset += limit; await delay(200); // поважаємо rate limit } return allTrades; }Зведення стратегій:
Стратегія Опис Застосування Кешування Зберігаємо історичні дані в Redis Для торгів за минулі дні Пагінація cursor Посторінкове вивантаження з limit/offset Пакетне завантаження великих обсягів Батчинг Об'єднання запитів в один GraphQL Зниження кількості HTTP round-trip Чому варто використовувати WebSocket для real-time?
V2 підтримує підписки через graphql-ws. Стандартна реалізація на Node.js:
import { createClient } from "graphql-ws"; import WebSocket from "ws"; const client = createClient({ url: "wss://streaming.bitquery.io/eap", webSocketImpl: WebSocket, connectionParams: { headers: { "X-API-KEY": process.env.BITQUERY_API_KEY } }, retryAttempts: Infinity, shouldRetry: () => true, }); const unsubscribe = client.subscribe( { query: SWAP_SUBSCRIPTION }, { next: (data) => processSwap(data.data.EVM.DEXTrades), error: (err) => logger.error("subscription error", err), complete: () => logger.info("subscription completed"), } );Зверніть увагу: V2 WebSocket потребує окремого API ключа (EAP access), який видається за запитом. WebSocket-підписки V2 доставляють події за 200-500 мс, що в 60 разів швидше за polling-запити V1 (затримка 30 секунд). Це критично для моніторингу MEV-ботів та ліквідності.
Наприклад, для клієнта, який моніторив пули Uniswap V3, ми за допомогою підписок V2 скоротили затримку з 30 секунд до 300 мс. Це дозволило йому своєчасно реагувати на зміни ліквідності.
Обмеження Bitquery
Bitquery — managed сервіс, тому індексування відстає на 1-3 блоки, історичні дані можуть мати прогалини, підтримка нових мереж запізнюється. Якщо ваші вимоги включають SLA менше секунди, кастомні події без ABI або compliance на власній інфраструктурі, розгляньте альтернативи: Dune Analytics для ad-hoc SQL, The Graph для проєктних subgraph, Goldsky/Envio для high-performance індексації.
Що входить у нашу роботу з інтеграції
Ми надаємо повний цикл під ключ:
- Аналіз вимог і вибір версії API (V1/V2).
- Проектування схеми запитів (DEX, transfers, NFT).
- Реалізація з кешуванням, пагінацією, обробкою помилок.
- Налаштування WebSocket-підписок для real-time.
- Документація по ваших ендпоїнтах і прикладах.
- Підтримка при запуску та гарантійний період.
Замовте інтеграцію Bitquery API та зекономте час на розробку. Зв'яжіться з нами, щоб обговорити ваш проєкт. Отримайте консультацію та попередню оцінку вартості безкоштовно.
Чому обирають нас
5+ років досвіду в блокчейн-розробці, 30+ успішних інтеграцій з Bitquery та іншими API. Команда senior-інженерів, які розуміють внутрішню будову Ethereum, Solana та L2. Ми не просто підключаємо API — ми будуємо надійні системи, які не падають під навантаженням.
Зв'яжіться з нами для оцінки вашого проєкту. Отримайте безкоштовну консультацію.







