Розробка бота для відстеження китів і торгових сигналів

Крупні транзакції китів часто залишаються непоміченими, і ви втрачаєте прибуток, дізнаючись про рух ринку занадто пізно. Ми розробляємо бота для моніторингу китів і торгових сигналів, який у реальному часі відстежує, класифікує та надсилає алерти в Telegram або Discord. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки.
Часті запитання

Розробка бота відстеження китів

Уявіть: ви торгуєте на DEX, і раптом кит заходить на $10 млн у пул ліквідності. Ви дізнаєтеся про це через годину — ціна полетіла. Такі сценарії — звичайність без якісного моніторингу. Ми вирішуємо це: наш бот у реальному часі відстежує великі транзакції, класифікує їх і надсилає алерти в Telegram або Discord.

«Кит» у контексті on-chain аналітики — адреса з обсягом позиції або транзакцій, значущим відносно ліквідності конкретного протоколу чи токена. Відстеження китів корисне в кількох сценаріях: торгові сигнали (велика адреса почала накопичувати — цікаво), ризик-менеджмент протоколу (один холдер накопичив >10% supply — ризик дампу), compliance (відстеження адрес із санкційних списків). Згідно з дослідженням Nansen, адреси з міткою 'Smart Money' у 70% випадків генерують позитивну дохідність. Відсутність бота коштує дорого: пропущений вхід кита може коштувати $1,500 втраченого прибутку.

Як класифікувати транзакції китів?

Транзакція проходить кілька етапів обробки. Перший — визначення джерела та отримувача через label resolver (Nansen, Etherscan, Arkham). Другий — аналіз типу руху: якщо адреса відправника — CEX hot wallet, а отримувача — новий гаманець, це cex_withdraw. Якщо обидві адреси — відомі протоколи, скоріше за все dex_swap. Третій — перевірка внутрішніх переказів через кластеризацію.

Джерела даних та архітектура

On-chain (первинні): Ethereum (eth_getLogs + eth_subscribe(logs) для ERC-20 Transfer подій), Solana (Helius webhooks з фільтрацією за program ID), DEX події: Uniswap V3 Swap, Curve TokenExchange, dYdX order fills.

Аналітичні (вторинні): Nansen API — labelling адрес (Smart Money, CEX hot wallets, known DeFi whales), Arkham Intelligence API — entity-level атрибуція, Etherscan labels API — біржові гаманці, протоколи, DeBank API — поточний портфель адреси.

Архітектура бота забезпечує відмовостійкість: WebSocket-підписка через Tenderly або власний node, черга повідомлень (Redis Streams), класифікатор з кешем міток (TTL 24 год), генератор сигналів та диспетчер сповіщень.

Метод Затримка Навантаження на інфраструктуру Складність реалізації
Direct RPC (polling) 12-15 сек Високе (часті запити) Низька
WebSocket (eth_subscribe) <3 сек Низьке (push) Середня
The Graph / subgraph ~5-10 сек Залежить від індексації Висока
Helius webhooks (Solana) <1 сек Низьке Середня

Рекомендуємо комбінацію WebSocket + webhook для мінімальної затримки — WebSocket у 5 разів швидший за polling. Економія на RPC-запитах порівняно з polling може сягати $2,000 на місяць.

Детектор значущих транзакцій

interface WhaleTx {
  txHash: string;
  from: string;
  to: string;
  tokenAddress: string;
  amountUSD: number;
  labels: {
    from: string | null; // "Binance Hot Wallet", "Smart Money #42"
    to: string | null;
  };
  txType: "cex_deposit" | "cex_withdraw" | "dex_swap" | "wallet_transfer" | "unknown";
}

async function classifyTransaction(tx: RawTransferEvent): Promise<WhaleTx | null> {
  const amountUSD = await priceService.toUSD(tx.token, tx.amount);
  if (amountUSD < WHALE_THRESHOLD_USD) return null;

  const [fromLabel, toLabel] = await Promise.all([
    labelResolver.resolve(tx.from),
    labelResolver.resolve(tx.to),
  ]);

  const txType = inferTxType(fromLabel, toLabel);

  return {
    txHash: tx.hash,
    from: tx.from,
    to: tx.to,
    tokenAddress: tx.token,
    amountUSD,
    labels: {
      from: fromLabel,
      to: toLabel
    },
    txType
  };
}

function inferTxType(fromLabel: string | null, toLabel: string | null): WhaleTx["txType"] {
  if (CEX_LABELS.some((l) => toLabel?.includes(l))) return "cex_deposit";
  if (CEX_LABELS.some((l) => fromLabel?.includes(l))) return "cex_withdraw";
  if (DEX_LABELS.some((l) => fromLabel?.includes(l) || toLabel?.includes(l))) return "dex_swap";
  return "unknown";
}

Чому важлива дедуплікація та кластеризація?

Одна зі складних задач — зрозуміти, що кілька адрес належать одній сутності. Евристики: dust attack / common input ownership (для UTXO-ланцюгів), nonce-based clustering (адреси, що фінансуються з одного джерела), temporal correlation (адреси, які завжди переміщують кошти в одному блоці). Для EVM: якщо адреса A часто надсилає gas на адресу B перед транзакціями B — ймовірно, A і B один власник.

Без дедуплікації бот генерує до 90% шуму. Одна транзакція може породити кілька подій (наприклад, Uniswap Swap включає Transfer від трейдера до пулу та Transfer від пулу до трейдера). Групуємо події за txHash і надсилаємо одне сповіщення. Cooldown на адресу (5 хв) і blacklist технічних контрактів (мультисиги протоколів, стейкінг-контракти) додатково знижують шум.

Telegram-сповіщення

async function sendWhaleAlert(tx: WhaleTx, bot: TelegramBot) {
  const emoji = tx.txType === "cex_deposit" ? "🔴" : tx.txType === "cex_withdraw" ? "🟢" : "🔵";
  const fromStr = tx.labels.from ?? shortenAddress(tx.from);
  const toStr = tx.labels.to ?? shortenAddress(tx.to);
  const message = [
    `${emoji} <b>Whale Alert</b>`,
    ``,
    `<b>Amount:</b> $${formatUSD(tx.amountUSD)}`,
    `<b>From:</b> ${fromStr}`,
    `<b>To:</b> ${toStr}`,
    `<b>Type:</b> ${tx.txType}`,
    ``,
    `<a href="https://etherscan.io/tx/${tx.txHash}">View on Etherscan</a>`,
  ].join("\n");
  await bot.sendMessage(CHANNEL_ID, message, { parse_mode: "HTML" });
}

Пороги та фільтрація шуму

Пороги спрацювання: для топових токенів від $500k, для long-tail від $50k. Можна задати watchlist конкретних адрес з індивідуальними порогами. Правила фільтрації:

  • Дедуплікація: одна транзакція → одне сповіщення (за txHash)
  • Cooldown на адресу: якщо адреса A вже алертувалася 5 хвилин тому — пропускаємо
  • Blacklist технічних адрес: мультисиг treasury протоколів, staking контракти
  • Aggregation: якщо за 60 сек прийшло 10+ алертів одного типу — надсилаємо зведення
Тип токена Мінімальний поріг Cooldown Пріоритет
Топові (ETH, BTC, stablecoins) $500k 3 хв Високий
Середні (LINK, UNI, MATIC) $200k 5 хв Середній
Long-tail $50k 10 хв Низький

Процес розробки під ключ

  1. Аналіз вимог та вибір цільових мереж (Ethereum, Solana, BNB Chain) — займає до 2 днів
  2. Налаштування інфраструктури: RPC-ноди, WebSocket-підписки, черги
  3. Реалізація класифікатора та label-резолвера
  4. Інтеграція Telegram/Discord-бота з форматуванням
  5. Тестування на історичних даних та деплой

Що входить та терміни

  • Event listener з підтримкою reconnect та catchup пропущених блоків
  • Label cache з TTL (дані Nansen/Arkham змінюються рідко, кешувати на 24 год)
  • Класифікатор транзакцій з розширюваними правилами
  • Telegram/Discord notification з форматуванням та дедуплікацією
  • Dashboard з історією алертів та налаштуванням порогів
  • Підтримка watchlist конкретних адрес (VIP tracking)

Терміни розробки — від 2 до 6 тижнів залежно від набору мереж та складності класифікації. Вартість розраховується індивідуально. Наша команда має сертифікати з Solidity та Rust, понад 50 успішних проєктів у DeFi. Ми гарантуємо якість коду та підтримку після запуску. Зв'яжіться з нами, щоб обговорити деталі вашого бота. Замовте розробку бота під ключ та почніть отримувати прибуткові сигнали. Оцініть ваш проєкт — пишіть!

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142