Настройка аналитики блокчейн-проекта (DefiLlama)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Настройка аналитики блокчейн-проекта (DefiLlama)
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1258
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1170
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    873
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1092
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    830

Настройка аналитики блокчейн-проекта (DefiLlama)

DefiLlama — основной агрегатор TVL (Total Value Locked) в DeFi. Протокол без листинга на DefiLlama фактически невидим для институциональных инвесторов и аналитиков, которые используют платформу как primary source данных. Попасть туда — не маркетинг, а техническая задача: нужно написать адаптер на TypeScript, который умеет вычислять TVL вашего протокола в любой исторический момент.

Как устроены адаптеры DefiLlama

Репозиторий DefiLlama/DefiLlama-Adapters принимает pull requests. Каждый адаптер — TypeScript-модуль, который экспортирует функцию tvl(), принимающую параметры цепочки и блока, и возвращающую объект с токенами и их количеством.

// Упрощённая структура адаптера
async function tvl(api: ChainApi) {
  // Получить балансы контрактов
  const balance = await api.call({
    abi: 'erc20:balanceOf',
    target: tokenAddress,
    params: [protocolVaultAddress],
  })
  api.add(tokenAddress, balance)
}

module.exports = {
  ethereum: { tvl },
  arbitrum: { tvl },
}

DefiLlama периодически вызывает эту функцию, подставляя номер блока — адаптер должен корректно работать для любого исторического блока, не только текущего.

Типичные сложности при написании адаптера

Динамические адреса контрактов

Если протокол использует factory-паттерн (как Uniswap: один factory создаёт тысячи пар), адаптер не может хардкодить адреса. Нужно получить список всех созданных контрактов из событий или через getAllPairs() в factory, затем агрегировать TVL по каждому.

const pairsCount = await api.call({ abi: 'uint256:allPairsLength', target: factory })
const pairs = await api.multiCall({
  abi: 'function allPairs(uint256) returns (address)',
  target: factory,
  calls: Array.from({ length: Number(pairsCount) }, (_, i) => ({ params: [i] })),
})

api.multiCall батчит вызовы через Multicall3 — сотни контрактов за один RPC-запрос. Без батчинга factory с 10,000 пар нереально проиндексировать.

Двойной учёт TVL

Если протокол использует Aave или Compound под капотом — токены в этих протоколах уже учтены в их TVL. Добавить их же в свой адаптер — двойной учёт, который DefiLlama помечает как ошибку и снижает. Нужно либо считать только нативные позиции, либо явно указать doublecounted: true в конфиге.

Верификация данных

После мерджа PR DefiLlama может занять несколько дней на проверку корректности данных. Алерты возникают если TVL скачет на ±50% между блоками без объяснимых причин — значит адаптер некорректно обрабатывает какой-то edge case (например, балансы до/после инициализации пула).

Метрики помимо TVL

Параллельно с листингом на DefiLlama настраиваем субграф на The Graph для более детальной аналитики: объём торгов, количество уникальных пользователей, история транзакций. Субграф — основа для собственного дашборда протокола и для сторонних аналитических платформ (Dune Analytics работает отдельно, через прямые запросы к ноде).

Для Dune — написание SQL-запросов по decoded данным транзакций. DefiLlama и Dune дополняют друг друга: первый — для агрегированного TVL, второй — для детального on-chain анализа.

Ориентиры по срокам

Написание и мёрдж адаптера для одной сети — 1-2 дня технической работы плюс 2-7 дней на ревью со стороны DefiLlama. Мультичейн адаптер с factory-поддержкой — 2-3 дня разработки. Настройка субграфа параллельно — добавляет 2-4 дня.

Стоимость рассчитывается индивидуально.