Налаштування аналітики блокчейну в Dune: SQL, дашборди, API

Ви запустили DeFi-протокол, але не бачите, звідки приходять користувачі, скільки вони приносять та які пули найефективніші. Без on-chain аналітики кожне рішення — тик пальцем у небо. Типова ситуація: TVL зростає, а DAU падає — ви не знаєте, чому. Налаштування власного індексера потребує тижнів і тис

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1270
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1011

Ви запустили DeFi-протокол, але не бачите, звідки приходять користувачі, скільки вони приносять та які пули найефективніші. Без on-chain аналітики кожне рішення — тик пальцем у небо. Типова ситуація: TVL зростає, а DAU падає — ви не знаєте, чому. Налаштування власного індексера потребує тижнів і тисяч доларів на інфраструктуру. Ми налаштовуємо Dune Analytics — і ви отримуєте прозору картину on-chain активності через SQL. Замість написання власних парсерів подій ви пишете SQL до готових декодованих таблиць. Це в рази швидше та дешевше. Наприклад, для протоколу з TVL $10 млн декодування та дашборд займають 2 дні замість двох тижнів. Ви економите від $5,000 на інфраструктурі щорічно. Понад 5 років ми налаштовуємо аналітику для блокчейн-проєктів, і 85% клієнтів збільшили retention завдяки своєчасному виявленню вузьких місць. При цьому ви отримуєте готові метрики: DAU, TVL, обсяг торгів, retention, газ — все через SQL. Економія за рахунок відмови від самостійного індексування може досягати $10,000 на рік.

Як налаштувати аналітику блокчейн-проєкту в Dune?

Dune підтримує Ethereum, Arbitrum, Optimism, Base, Polygon, BSC, Solana та десятки інших мереж в єдиному SQL-середовищі. Ми беремо на себе весь процес: від декодування контракту до створення дашборду та API-інтеграції. Типова економія часу становить 80% порівняно з самостійним розгортанням. Dune SQL Reference

Структура даних в Dune

Таблиці організовані в три рівні:

  • Raw дані — сирі блокчейн-дані без декодування (ethereum.blocks, ethereum.transactions, ethereum.logs, ethereum.traces).
  • Decoded дані — події та виклики, декодовані за ABI (uniswap_v3_ethereum.Factory_evt_PoolCreated, erc20_ethereum.evt_Transfer). Формат: {protocol}_{network}.{contract}_{type}_{event/function}.
  • Spells — аналітичні таблиці спільноти (dex.trades, tokens.erc20, nft.trades).

Декодування свого контракту

Щоб події вашого контракту з'явилися в decoded-таблицях, потрібно завантажити ABI:

  1. Відкрити dune.com/contracts/new.
  2. Вказати мережу та адресу контракту.
  3. Вставити ABI (JSON).
  4. Дочекатися затвердження (зазвичай 1–3 робочих дні).

Після декодування з'явиться таблиця виду yourproject_ethereum.YourContract_evt_YourEvent.

Написання запитів: практичні патерни

TVL протоколу

-- TVL через декодовані Deposit/Withdraw події SELECT DATE_TRUNC('day', evt_block_time) AS day, SUM(SUM(CAST(amount AS DOUBLE) / 1e18)) OVER (ORDER BY DATE_TRUNC('day', evt_block_time)) AS cumulative_tvl_eth FROM yourproject_ethereum.Vault_evt_Deposit GROUP BY 1 ORDER BY 1 

Обсяг торгів через DEX

-- Використання Spell таблиці dex.trades SELECT DATE_TRUNC('week', block_time) AS week, blockchain, SUM(amount_usd) AS volume_usd, COUNT(*) AS trades_count FROM dex.trades WHERE token_bought_address = 0xYourTokenAddress OR token_sold_address = 0xYourTokenAddress AND block_time >= NOW() - INTERVAL '90' day GROUP BY 1, 2 ORDER BY 1 DESC 

Параметризовані запити для універсальних дашбордів

-- В запиті використовуємо {{parameter}} SELECT * FROM dex.trades WHERE token_bought_address = {{token_address}} AND block_time >= NOW() - INTERVAL '{{days}}' day 

Dune API: вбудовування даних у продукт

Для відображення аналітики у вашому додатку використовуємо Dune API:

const DUNE_API_KEY = process.env.DUNE_API_KEY! async function getDuneQueryResult(queryId: number): Promise<DuneResult> { const execRes = await fetch(`https://api.dune.com/api/v1/query/${queryId}/execute`, { method: 'POST', headers: { 'X-Dune-API-Key': DUNE_API_KEY }, body: JSON.stringify({ performance: 'medium' }), }) const { execution_id } = await execRes.json() let status = 'QUERY_STATE_PENDING' while (['QUERY_STATE_PENDING', 'QUERY_STATE_EXECUTING'].includes(status)) { await new Promise(r => setTimeout(r, 2000)) const statusRes = await fetch( `https://api.dune.com/api/v1/execution/${execution_id}/status`, { headers: { 'X-Dune-API-Key': DUNE_API_KEY } } ) const statusData = await statusRes.json() status = statusData.state } const resultRes = await fetch( `https://api.dune.com/api/v1/execution/${execution_id}/results`, { headers: { 'X-Dune-API-Key': DUNE_API_KEY } } ) return resultRes.json() } // Parameterized query call example const body = { query_parameters: { token_address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', days: 30, }, performance: 'medium', } 

Для dashboard з оновленням раз на годину — кешуємо результати, не запускаючи запит на кожен HTTP-запит. Затримка даних в Dune зазвичай становить 5–10 хвилин, що прийнятно для 90% аналітичних завдань. Для real-time сценаріїв слід використовувати The Graph.

Чому Dune Analytics, а не власний індекстер?

Запуск власного індексера (Envio, Ponder, Goldsky) потребує інфраструктурних витрат та часу. Dune дає готові SQL-таблиці із затримкою до години — цього достатньо для більшості дашбордів. Для реального часу використовуємо The Graph, але для класичної аналітики Dune вигідніший.

Завдання Інструмент
Аналітика із затримкою до години Dune Analytics
Real-time дані (< 1 хв) The Graph (subgraph)
SQL + швидше ніж Dune Flipside Crypto, Allium
Власний індекстер Envio, Ponder, Goldsky
NFT аналітика NFTGo, Reservoir

Якщо ви сумніваєтеся, який інструмент обрати, зв'яжіться з нами — ми допоможемо визначитися.

Що входить у роботу

В рамках налаштування ми надаємо:

  • Декодування вашого контракту (завантаження ABI, перевірка).
  • Розробка 5–7 ключових метрик: DAU, TVL, обсяг, revenue, retention, top users, газ.
  • Кастомні SQL-запити під вашу бізнес-логіку (наприклад, cohort-аналіз або розрахунок власного APY).
  • Дашборд з автоматичним оновленням та інтерактивними фільтрами.
  • Інтеграція Dune API у ваш додаток з документацією та прикладами коду.
  • Навчання команди роботі з дашбордом (2–3 сесії).
  • Підтримка протягом 2 тижнів після запуску.

Приклад SQL-запиту для retention користувачів:

-- Retention по тижневих когортах WITH user_activities AS ( SELECT "from" AS user_address, DATE_TRUNC('week', evt_block_time) AS activity_week FROM yourproject_ethereum.YourContract_evt_Action ), first_activities AS ( SELECT user_address, MIN(activity_week) AS first_week FROM user_activities GROUP BY user_address ) SELECT f.first_week AS cohort, DATEDIFF('week', f.first_week, u.activity_week) AS week_number, COUNT(DISTINCT u.user_address) AS users FROM first_activities f JOIN user_activities u ON f.user_address = u.user_address GROUP BY cohort, week_number ORDER BY cohort, week_number 

Процес роботи та терміни

Етап Тривалість
Аналітика та визначення метрик 1 день
Декодування контрактів 1–3 дні
Розробка SQL-запитів та дашборду 1–2 дні
Інтеграція API 1 день
Тестування та навчання 0.5 дня

Орієнтовний термін: від 3 до 7 робочих днів. Вартість розраховується індивідуально — залежить від складності метрик та необхідності API. Ви економите від $5,000 на інфраструктурі щорічно.

Гарантуємо, що кожен запит та дашборд відповідатимуть вашим вимогам. Отримайте консультацію з налаштування аналітики вже сьогодні. Зв'яжіться з нами для обговорення вашого проєкту.