Моніторинг TVL (Total Value Locked)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Моніторинг TVL (Total Value Locked)
Середній
від 1 дня до 3 днів
Часті запитання

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

Етапи блокчейн-розробки

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

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

Мониторинг TVL (Total Value Locked)

TVL — операційний показник DeFi-протоколу, не маркетинговий. Різке падіння на 30% за годину — або взлом, або «rug» крупного LP. Зростання на 500% за день без відповідного збільшення транзакцій — підозріла накрутка для лістингу на DeFiLlama. Обидва випадки вимагають системи, яка бачить зміни в реальному часі й вміє їх інтерпретувати.

Як правильно рахувати TVL

Проблема мультивалютного обліку

Наївний підхід: суммувати balanceOf всіх токенів в контрактах протоколу в USD за поточними цінами. Ломається коли:

  • Протокол приймає LP-токени Uniswap V2 як collateral. balanceOf(LP_token) — кількість LP-токен, не USD. Потрібно вичислити underlying assets через getReserves() пула.
  • Synthetic токени (sUSD, stETH): їх ціна ≠ цені базового активу при депегу. Потрібен окремий price feed, не завжди доступний.
  • Concentrated liquidity позиції (Uniswap V3 NFT): вартість залежить від поточної ціни й діапазону позиції — потрібна off-chain математика tick/sqrtPrice.

Правильна архітектура: кожен тип активу — окремий адаптер з логікою resolveToUSD(address asset, uint256 amount) → uint256. Це паттерн, який використовує DeFiLlama в своїх адаптерах.

Chainlink vs AMM-ціни

Chainlink Data Feeds — еталон для основних активів (ETH, BTC, USDC, основні ERC-20). Heartbeat 1 година для стейблкоінів, 1 година для крупних активів. Проблема: для long-tail токенів немає Chainlink feed.

Fallback: Uniswap V3 TWAP через IUniswapV3Pool.observe() з periodSeconds = 1800 (30 хвилин). TWAP захищає від flash loan манипуляцій, але при низькій ліквідності пула — неточен.

Важливо: Chainlink feed може повернути stale дані. Завжди перевіряти answeredInRound >= roundId та updatedAt > block.timestamp - staleness_threshold.

Архітектура системи мониторингу

On-chain vs off-chain розрахунок

Рахувати TVL повністю on-chain через смарт-контракт getTVL() — приваблює прозорістю, але:

  • Дорого в gas при складних обчисленнях
  • Обмежено розміром call stack
  • LP-токени вимагають зовнішніх calls, gas зростає експоненціально

Кращий підхід: off-chain сервіс з доступом до архівної ноди. Алгоритм:

  1. Отримати баланси через eth_call батчами (Multicall3 для ефективності)
  2. Запитати ціни з Chainlink + DeFiLlama API + CoinGecko Pro
  3. Розрахувати TVL з нормалізацією по decimals
  4. Записати снапшот в базу даних з блок-номером й timestamp
  5. Видати в API й дашборд

Частота: кожен блок для критичних алертів (~12 сек на Ethereum), кожні 5 хвилин для історичних даних.

The Graph subgraph для TVL

The Graph дозволяє підписатися на события смарт-контрактів й агрегувати в GraphQL. Для мониторингу TVL subgraph обробляє события:

  • Deposit(address user, address asset, uint256 amount) — збільшення TVL
  • Withdraw(address user, address asset, uint256 amount) — зменшення TVL
  • Liquidation(...) — зміна collateral

Проблема subgraph: ціни не зберігаються on-chain, потрібна oracle інтеграція через @priceOracle handler. Це уповільнює індексацію й додає залежність.

Альтернатива для швидкого деплоя: Dune Analytics з SQL-запитами поверх indexed Ethereum даних. Працює без розробки, але latency вища (5-15 хвилин).

Алерти при різких змінах

Паттерн обнаруження аномалій:

currentTVL < previousTVL * (1 - threshold) → CRITICAL alert
currentTVL > previousTVL * (1 + spike_threshold) → WARNING (possible manipulation)

Поріг для critical: 10% за один блок — явна аномалія. 30% за 5 хвилин — критичний інцидент.

Канали алертів: Telegram Bot API для оперативних оповіщень, PagerDuty для on-call ротації, Slack webhooks для командних нотифікацій. Для DeFi-протоколів з TVL > $1M — обов'язково 24/7 мониторинг.

Інтеграція з дашбордами

Grafana + InfluxDB — стандартний стек для часових рядів TVL. Метрики: tvl_total, tvl_by_asset, tvl_by_chain, tvl_change_1h, tvl_change_24h.

DeFiLlama адаптер: якщо протокол хоче попасти на DeFiLlama — потрібен PR з адаптером в їх репозиторії. Адаптер — це JavaScript функція tvl(api), яка використовує їх api.add(token, balance) інтерфейс. Ми пишемо й підтримуємо ці адаптери.

Custom дашборд: React + recharts або Dune Analytics embedded charts для public-facing сторінки протоколу. Дані через власний API endpoint або прямо з subgraph через Apollo Client.

Метод Latency Вартість Складність
Власний off-chain сервіс ~блок (12s) Висока (нода) Висока
The Graph subgraph 1-5 хв Середня (хостинг) Середня
Dune Analytics 5-15 хв Низька (SQL) Низька
DeFiLlama API 5-15 хв Нульова Низька

Процес роботи

Аналітика (1 день). Інвентаризація контрактів протоколу, типи прийнятих активів, события для відстеження, вимоги до latency алертів.

Розробка (1-3 дні). Вибір стека исходячи з вимог → імплементація → настройка алертів → деплой дашборду.

Підтримка. При додаванні нових пулів або активів — оновлення адаптерів. При форку мережі або міграції контрактів — оновлення адрес.

Орієнтири по термінам

Базовий мониторинг через The Graph + Telegram алерти — 1-2 дні. Повноцінна система з власним сервісом, Grafana дашбордом і DeFiLlama інтеграцією — 3-5 днів.

Вартість залежить від кількості контрактів, типів активів й вимог до latency.