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

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

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1451
  • 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 на инфраструктуре ежегодно.

Гарантируем, что каждый запрос и дашборд будут соответствовать вашим требованиям. Получите консультацию по настройке аналитики уже сегодня. Свяжитесь с нами для обсуждения вашего проекта.