Інтеграція з QuickNode API
Зазначимо: коли ваш DeFi-сервіс обробляє тисячі запитів на хвилину, публічні RPC-ендпоінти стають вузьким місцем. Rate limit, throttle, відсутність SLA — це неприпустимо для production. QuickNode API — ключовий елемент Web3-інфраструктури, що надає виділені ноди з гарантованою пропускною здатністю. Правильне налаштування інтеграції дозволяє витиснути максимум з кожного credit'у. Наш досвід — понад 15 інтеграцій за 3+ роки. В одному проєкті з навантаженням 1200 RPS на Ethereum ми знизили latency на 40% та заощадили 35% credits завдяки кешуванню та батчингу. QuickNode SLA гарантує 99.9% uptime (QuickNode Documentation).
Кейс: DeFi-агрегатор з навантаженням 1200 RPS
Проєкт: DeFi-агрегатор, що обробляє транзакції користувачів через смарт-контракти. Вихідна архітектура використовувала публічні RPC — latency досягала 450 мс, періодичні таймаути. Після міграції на QuickNode з налаштованим failover latency впала до 120 мс, помилки 5xx зникли. Додатково впровадили батчинг та кешування — credits знизилися на 35%, що дало економію ~$1,750 на місяць. Failover на Infura спрацьовував двічі за місяць — автоматичне перемикання при перевищенні порогу error rate.
Чому QuickNode швидший за публічні RPC?
Dedicated endpoint — жодного сусідства з чужим трафіком. Ваші запити не конкурують з тисячами інших клієнтів на одному IP. У результаті latency знижується в 2–3 рази, а throughput залишається передбачуваним навіть при пікових навантаженнях. Наприклад, для DeFi-агрегатора з тисячею активних користувачів час відповіді скоротився з 450 мс до 120 мс.
Add-ons — готові надбудови: NFT API, Token API, DeFi stats, Trace API. Замість самостійної агрегації даних підключаєте готовий endpoint. Отримання NFT-балансу гаманця одним запитом без зовнішніх індексаторів.
Streams — push-сповіщення про нові блоки, транзакції, події. Замість polling WebSocket з фільтрами налаштовуєте потік прямо в інтерфейсі QuickNode. Це знижує навантаження на ваш сервер і спрощує обробку подій.
Multi-chain — один аккаунт, десятки мереж. Один і той же SDK працює з Ethereum, Solana, Polygon, Arbitrum, Base без змін коду.
Які Add-ons доступні та як їх підключити?
| Add-on | Призначення | Приклад методу |
|---|---|---|
| NFT API | Баланс, метадані, колекції | qn_fetchNFTs |
| Token API | Трансфери, баланси, ціни | qn_getWalletToken |
| DeFi Stats | APY, TVL, пули | qn_getDefiStats |
| Trace API | Трасування транзакцій | debug_traceTransaction |
Підключення Add-ons у дашборді QuickNode — один клік. Після активації вони доступні через ті ж ендпоінти з методами з префіксом qn_. Приклад запиту:
import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http('https://your-endpoint.quiknode.pro/YOUR_KEY/'), }) // Отримання NFT-колекції гаманця через QuickNode NFT API const nfts = await client.request({ method: 'qn_fetchNFTs' as any, params: [{ wallet: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045', page: 1, perPage: 20, }], }) Як налаштувати Streams для сповіщень?
Streams налаштовуються в дашборді QuickNode. Ви обираєте тип потоку (нові блоки, pending транзакції, конкретні події), destination (webhook, Kafka, S3) та фільтри. Це альтернатива самостійному WebSocket-серверу — менше коду, але менше контролю.
Для webhook-destination QuickNode надсилає POST з batch записами. Важливо: налаштуйте ідемпотентність на своїй стороні — при retry QuickNode може надіслати дублікати.
Як економити credits при роботі з QuickNode?
QuickNode рахує не запити, а credits. Простий eth_blockNumber — 20 credits, eth_getLogs з широким діапазоном — до 200+ credits. Дорогі методи: debug_traceTransaction (500 credits), trace_block (200+ credits). Нижче таблиця вартості деяких методів:
| Метод | Credits (приблизно) | Порада щодо оптимізації |
|---|---|---|
eth_blockNumber |
20 | Немає потреби кешувати, але можна батчити |
eth_getBalance |
30 | Кешувати на 15 хвилин |
eth_getLogs (широкий діапазон) |
200+ | Звузити фільтри по блоках та адресах |
debug_traceTransaction |
500 | Використовувати тільки при налагодженні |
trace_block |
200+ | Аналізувати тільки потрібні транзакції |
Стратегія економії credits:
- Кешуйте статичні дані:
decimals(),symbol(), історичні блоки. - Використовуйте
eth_getLogsз вузькими фільтрами, не скануйте весь діапазон. - Для polling дешевше WebSocket subscriptions.
- Батчинг запитів через JSON-RPC batch: кілька викликів в одному HTTP-запиті.
// JSON-RPC batch: один HTTP-запит замість трьох const [block, balance, gasPrice] = await Promise.all([ httpClient.getBlock({ blockNumber: 20000000n }), httpClient.getBalance({ address: '0x...' }), httpClient.getGasPrice(), ]) // viem автоматично батчить при транспорті з опцією batch При навантаженні 5 мільйонів credits на місяць оптимізація кешуванням та батчингом дає економію 35–40%, тобто 1,75–2 млн credits. Це відповідає ~$1,750–$2,000 щомісяця. Оптимізація дозволяє суттєво знизити витрати на інфраструктуру. Замовте індивідуальний аудит вашої RPC-інфраструктури.
Моніторинг та failover
QuickNode надає метрики в дашборді, але для production потрібен власний моніторинг. Ось приклад обгортки з failover:
class RpcClient { private endpoints: string[] private currentIndex = 0 async request(method: string, params: any[]) { for (let attempt = 0; attempt < this.endpoints.length; attempt++) { try { const result = await this.callEndpoint( this.endpoints[this.currentIndex], method, params ) return result } catch (err) { // Ротуємо на наступний ендпоінт при помилці this.currentIndex = (this.currentIndex + 1) % this.endpoints.length if (attempt === this.endpoints.length - 1) throw err } } } } Для серйозного production: тримайте два ендпоінти — QuickNode primary + Alchemy/Infura fallback. Автоматичний failover при перевищенні error rate або latency. Детальніше див. QuickNode Documentation.
Процес роботи
Етапи інтеграції QuickNode під ключ:
- Аналітика — оцінка поточної архітектури, профілювання навантаження, розрахунок бюджету credits.
- Проєктування — вибір тарифу, налаштування ендпоінтів, конфігурація add-ons та streams.
- Реалізація — інтеграція через viem/ethers.js, налаштування батчингу, кешування, WebSocket.
- Тестування — навантажувальне тестування (до 2000 RPS), перевірка failover, моніторинг credits.
- Деплой — введення в експлуатацію, навчання команди, документація.
Що входить в роботу
- Налаштування виділеного ендпоінту QuickNode (HTTPS + WSS) для однієї або декількох мереж.
- Підключення Add-ons (NFT API, Token API, DeFi Stats, Trace API) за необхідності.
- Налаштування Streams для сповіщень про блоки, транзакції та події.
- Реалізація failover (QuickNode + запасний RPC) з автоматичним перемиканням.
- Моніторинг credits, latency та error rate (Grafana, Prometheus за бажанням).
- Оптимізація запитів: кешування, батчинг, WebSocket subscriptions.
- Документація з інтеграції та навчання вашої команди.
Зв'яжіться з нами для оцінки вашого проєкту — ми підготуємо прозорий кошторис та терміни. Гарантуємо SLA 99.9% на налаштовану інфраструктуру.







