Розробка Telegram-бота для моніторингу DeFi-позицій

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка Telegram-бота для моніторингу DeFi-позицій
Середній
~3-5 днів
Часті запитання

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

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

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

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

Розробка Telegram-бота для мониторингу DeFi-позицій

Позиція в Aave: $80k USDC залог, $50k USDT борг. Health factor 1.21. Ринок падає вночі — через три години health factor перетинає 1.0, позиція ліквідирована, штраф 10%. Користувач прокидається, дивиться у гаманець. Стандартний сценарій, який бот з правильно налаштованими алертами запобігає за 15 хвилин до ліквідації.

Технічні складності, які закапуються у production

Polling vs WebSocket: задержка має значення

Наївна реалізація — cron кожну хвилину опитує RPC. Для health factor це працює, але при волатильності блоки на Ethereum виходять кожні 12 секунд, а ціна оракула Chainlink оновлюється per heartbeat (1 година) або при відхиленні >0.5%. Хвилинний polling пропускає резкі рухи.

Правильний підхід: підписка на події через eth_subscribe("logs") по WebSocket. Aave v3 емітить LiquidationCall(address collateralAsset, address debtAsset, address user, ...). Ловимо це подію — і негайно уведомляємо. Для мониторингу health factor слухаємо ReserveDataUpdated та перераховуємо позицію локально, не чекаючи наступного eth_call.

Проблема з WebSocket: соединение рвається. У production потрібен reconnect з exponential backoff, persistent subscription ID та replay пропущених блоків при відновленні через eth_getLogs з fromBlock: lastProcessedBlock.

Мультичейн: різні адреса, різні ABI

Користувач тримає позиції в Aave v3 на Ethereum, Optimism та Polygon одночасно. Три інстанси з різними PoolAddressesProvider. APY на Polygon може відрізнятися від Ethereum удвічі — це інформація, яку користувач хоче бачити в одному місці.

Архітектура: окремий воркер на кожен чейн, спільна PostgreSQL з таблицею positions(user_address, chain_id, protocol, collateral, debt, health_factor, updated_at). Telegram-бот читає з бази, а не з чейна — це дає швидку відповідь на команди та знижує навантаження на RPC.

Розрахунок APY: пул не стоїть на місці

Compound APY у Aave = (1 + APR/secondsPerYear)^secondsPerYear - 1. APR беруться з getReserveData().currentLiquidityRate (для депозитів) або currentVariableBorrowRate (для борга) — обидва в ray (1e27). Помилка на кожному другому проекті: ділити на 1e18 замість 1e27. Отримують APY у тисячі відсотків, користувачі радіють, поки не побачать реальні цифри.

Що будуємо

Стек

Шар Технологія
Чейн-мониторинг viem (WebSocket transport), ethers.js fallback
Протоколи Aave v3 Pool ABI, Compound v3 Comet ABI
Оракули Chainlink Price Feed (прямі вызови + The Graph)
База даних PostgreSQL — позиції, алерти, історія
Черга BullMQ (Redis) — обробка уведомлень без пиків
Бот grammY (TypeScript) або python-telegram-bot
Деплой Docker + PM2, VPS з аптаймом 99.9%

Алерт-логіка

Конфігурумні пороги на користувача: health factor < 1.3, < 1.1 (критично), зміна APY >20% за 24 години, поява нової ліквідації по адресі. Дедупліація через Redis з TTL: одне уведомлення на подію, повтор через 30 хвилин якщо ситуація не змінилася.

Для health factor: не просто поточне значення, а тренд — бот показує "знизився на 0.15 за останні 6 годин". Це actionable інформація.

Команди бота

/positions — всі відкриті позиції з health factor та поточним APY. /alerts — управління порогами. /history [address] — історія змін health factor за 7 днів, у вигляді текстового sparkline. /liquidations — останні ліквідації по стежуваних адресах.

Мультиаккаунт: один Telegram-користувач може мониторити кілька адрес (власні + командні гаманці).

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

Аналітика (1-2 дні). Список протоколів, чейнів, типів позицій. Визначаємо, потрібен ли мониторинг LP-позицій Uniswap v3 (impermanent loss, out-of-range алерти) — це окремий модуль.

Розробка (3-5 днів). Chain listener + position calculator + Telegram bot + PostgreSQL schema. Юнит-тести на розрахунок APY та health factor з моками RPC.

Деплой та мониторинг. Docker Compose, логи у Loki, метрики у Grafana. SLA на алерт: <30 секунд від события у чейні до Telegram-повідомлення.

Орієнтири за строками

Базовий бот для Aave v3 на одному чейні з health factor алертами — 3-4 дні. Мультичейн з підтримкою Aave + Compound + мониторингом LP-позицій — 1.5-2 тижні. Інтеграція з власним протоколом через кастомний ABI додає 2-3 дні.

Вартість рассчитується після аналізу вимог.