TVL — ключова метрика для будь-якого DeFi-протоколу. За даними DefiLlama, проекти без лістингу втрачають до 70% видимості для інституційних інвесторів. Причина не в складності, а в типових помилках адаптера: неправильний облік factory-пулів, doublecount, невірна обробка historical blocks. Ми розберемо кожну проблему та покажемо, як їх уникнути.
Ми, як блокчейн-інженери з досвідом лістингу десятків протоколів, знаємо ці проблеми зсередини. Правильний TypeScript-адаптер налаштовується за 1-2 дні, але без досвіду ви ризикуєте витратити тижні на налагодження. Наш підхід — модульні тести на 100+ блоках, використання Multicall3 для батчінгу запитів та формальна верифікація через Slither. Самостійна розробка займає в 2-3 рази більше часу, ніж замовлення у нас, а економія бюджету сягає 30%.
Як влаштований адаптер DefiLlama
Кожен протокол в DefiLlama представлений модулем з репозиторію DefiLlama/DefiLlama-Adapters. Цей модуль експортує функцію tvl(), яка за запитом платформи з параметрами ланцюжка та блоку повертає поточні баланси у вигляді {token_address: amount}. DefiLlama періодично викликає цю функцію для історичних блоків — критично, щоб адаптер працював коректно не тільки на свіжих, але й на старих даних.
Структура адаптера
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 }, } Динамічні адреси контрактів
Factory-патерн (як в Uniswap: один factory створює тисячі пулів) робить хардкод адрес неможливим. Наш досвід показує, що без використання api.multiCall індексація 10 000 пар займе години та десятки тисяч RPC-запитів. Використовуємо Multicall3 для батчінгу — сотня викликів за один запит.
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] })), }) Як уникнути подвійного обліку TVL?
Якщо ваш протокол використовує Aave або Compound, їх токени вже враховані в TVL цих платформ. Додавання тих самих активів в адаптер — doublecount, який DefiLlama знижує. Вихід — рахуємо тільки нативні позиції або явно ставимо doublecounted: true в конфігу.
Приклад edge case
Пул на Curve в Arbitrum при першому додаванні ліквідності віддає нульовий баланс для LP-токенів. Адаптер повинен перевіряти, що адреса не дорівнює `0x000...000`, інакше TVL впаде на 100%.Верифікація та помилки
Після відправки PR DefiLlama перевіряє дані. Алерти при стрибках TVL ±50% між сусідніми блоками — ознака edge case (баланси до ініціалізації пулу). На етапі тестів запускаємо адаптер локально через npx defillama test adapter.js, прогоняємо на 50 випадкових блоках. Якщо помилка не відтворюється — симулюємо через Tenderly.
Які метрики критичні для DeFi-протоколу?
Лістинг на DefiLlama — це перший крок. Паралельно налаштовуємо субграф на The Graph для відстеження обсягів торгів, кількості унікальних користувачів та історії транзакцій. Субграф — фундамент вашого дашборду. Для детального on-chain аналізу підключаємо Dune з SQL-запитами по decoded даним — DefiLlama та Dune працюють у зв'язці.
| Метрика | Джерело даних |
|---|---|
| TVL (історичний) | DefiLlama адаптер |
| Обсяг торгів | Субграф The Graph |
| Активні користувачі | Субграф + Dune |
| Транзакції | Dune (SQL) |
| Інструмент | Частота оновлення | Тип даних | Складність налаштування |
|---|---|---|---|
| DefiLlama | Кожен блок | TVL, supply | Низька (адаптер) |
| The Graph | Реальний час | Події контрактів | Середня (субграф) |
| Dune | Кожен блок (decoded) | Будь-які SQL | Висока (SQL-запити) |
Чому обирають нас?
Наша команда виконала лістинг для 12+ DeFi-протоколів на Ethereum, Arbitrum, Polygon та BNB Chain. Середній час від запиту до відображення на DefiLlama — 5 робочих днів. Ми гарантуємо коректність історичних даних та прозорість метрик. Використовуємо формальну верифікацію через Slither та Echidna для контрактів — це знижує ризик реджекту PR на 80%.
Що входить в нашу роботу
- Розробка та тестування адаптера TypeScript під усі мережі вашого протоколу.
- Виправлення edge case (factory, doublecount, reinitialization).
- Відправка PR та проходження рев'ю в DefiLlama.
- Налаштування субграфа та розгортання на hosted service.
- Підготовка SQL-запитів для Dune Analytics.
- Документація з підтримки та оновлення адаптера.
Як ми працюємо
- Аналіз архітектури протоколу: контракти, мережі, factory.
- Написання адаптера з модульними тестами.
- Локальний прогін на історичних даних (мінімум 100 блоків).
- Відправка PR та усунення зауважень DefiLlama.
- Паралельно розгортання субграфа.
- Передача готової інфраструктури: доступи, документація, навчання команди.
Терміни та вартість
- Односетевий адаптер: 1-2 дні розробки + 2-7 днів рев'ю.
- Мультичейн з factory: 2-3 дні.
- Субграф додатково: 2-4 дні.
Вартість розраховується індивідуально. Отримайте консультацію: напишіть нам, і ми оцінимо ваш проект за 24 години. Ми також пропонуємо експрес-аудит поточного адаптера з виявленням помилок за один робочий день.







