Разработка Telegram-бота мониторинга портфеля

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

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

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

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1307
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1219
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    920
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1148
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    611
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    886

Разработка Telegram-бота мониторинга портфеля

Стандартная проблема: у человека активы на нескольких сетях, в нескольких протоколах, и чтобы понять текущую картину — нужно зайти в 5 разных интерфейсов. Telegram-бот с командами /portfolio и алертами при движении цены или при liquidation risk — это удобнее любого дашборда для мобильного пользования.

Что отслеживать и откуда брать данные

Ботов мониторинга портфеля можно разделить по сложности:

Базовый (token balances) — балансы токенов на указанных адресах. Источники данных:

  • Moralis Web3 API / Alchemy Token API — балансы по всем ERC-20 за один запрос
  • CoinGecko / CoinMarketCap API — текущие цены для расчёта USD стоимости

Расширенный (DeFi positions) — учитываем LP позиции в Uniswap, collateral/debt в Aave/Compound, staking. Здесь нужны либо протокол-специфичные вызовы, либо агрегаторы:

  • DeBank API — агрегирует позиции по 100+ протоколам, но платный для серьёзных объёмов
  • Zerion API — аналогично, лучший coverage для EVM сетей
  • Прямые вызовы к контрактам Aave (getUserAccountData), Uniswap V3 (positions)

Алерты: основные сценарии

Price alert:    токен X упал/вырос на Y%
Liquidation:    health factor в Aave < 1.2
Large tx:       входящая/исходящая транзакция > $N
Whale movement: кошелёк из watchlist совершил транзакцию
New token:      на кошелёк поступил неизвестный токен

Для price alerts — не поллите API каждую минуту. Подпишитесь на WebSocket стрим с биржи (Binance, Bybit имеют бесплатные WebSocket feeds) или используйте Chainlink price feed события.

Для on-chain событий — Alchemy/QuickNode webhooks на адреса пользователей надёжнее самостоятельного поллинга.

Архитектура бота

Telegram Bot API (polling или webhook)
    ↓
Bot handler (Python/aiogram или Node.js/grammY)
    ↓
Portfolio aggregator service
    ├── Price service (CoinGecko/биржа WebSocket)
    ├── Balance fetcher (Moralis/Alchemy)
    └── DeFi positions (DeBank/прямые вызовы)
    ↓
Database (PostgreSQL / Redis)
    ├── user wallets
    ├── alert configs
    └── cached portfolio snapshots
    ↓
Alert scheduler (cron / event-driven)

Redis используется для кэша цен и балансов — не нужно ходить в API при каждом /portfolio запросе. TTL кэша: цены 30 секунд, балансы 2–5 минут.

Реализация базовых команд

@router.message(Command("portfolio"))
async def portfolio_command(message: Message):
    user = await get_user(message.from_user.id)
    if not user.wallets:
        await message.answer("Добавьте кошелёк: /addwallet 0x...")
        return
    
    portfolio = await aggregator.get_portfolio(user.wallets)
    text = format_portfolio(portfolio)  # форматирование с эмодзи и таблицей
    await message.answer(text, parse_mode="HTML")

Для multi-chain пользователей — параллельные запросы через asyncio.gather, иначе время ответа будет неприемлемым.

Безопасность: что важно

Пользователь передаёт публичные адреса — никаких приватных ключей. Это нужно явно обозначать в onboarding. Храните адреса в БД, никогда не просите seed phrase или private key — и добавьте сообщение предупреждения если пользователь пытается отправить нечто похожее на private key.

Rate limiting на команды — Telegram имеет лимит на отправку сообщений (30/сек на бота, 1/сек на пользователя), при превышении бот получит 429 Too Many Requests.

Что делается за 2–3 дня

Telegram бот с командами добавления/удаления кошельков, команда /portfolio с агрегацией балансов и USD стоимостью, price alerts по заданным порогам, настройка хостинга (Railway, Fly.io или ваш VPS), подключение к выбранным API для данных. Поддержка сетей — Ethereum + любые EVM-совместимые, Bitcoin/Solana — по запросу, требуют отдельных адаптеров.