Граббінг даних whale-транзакцій

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Граббінг даних whale-транзакцій
Середній
~2-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

Парсинг даних whale-транзакцій

"Кит" у контексті on-chain аналізу — адреса з обсягом активів або транзакцій, значимим відносно загальної ринкової ліквідності. Переведення 50,000 ETH з біржевого гаманця на cold wallet створює цінове тиск та інформаційний сигнал. Моніторинг таких перемищень — практична задача для трейдинг-систем, risk management та on-chain аналітики.

Що саме відслідковувати

Не всі крупні транзакції одинаково інформативні. Ключові паттерни:

Exchange inflow/outflow: крупний переведення на біржу (inflow) — потенціальна продаж. Переведення з біржи (outflow) — аккумуляція або перехід до self-custody. Для коректної інтерпретації необхідна база біржевих адрес.

Cross-chain bridges: крупні рухи через мости (Arbitrum bridge, Stargate, LayerZero) сигналізують про перемищення ліквідності між мережами.

DeFi-подій: крупний вивід ліквідності з Uniswap пула, крупне погашення займу в Aave, відкриття/закриття крупної позиції на GMX.

Stablecoin mint/burn: Tether та Circle друкують/спалюють USDT/USDC на основі фіатних депозитів. Крупний mint — потенціальний приток капіталу на ринок.

Ethereum: моніторинг через eth_getLogs та WebSocket

Моніторинг крупних ERC-20 переводів в реальному часі — через WebSocket підписку на Transfer подій з фільтрацією по розміру вже в додатку (блокчейн-рівень не підтримує фільтрацію по value):

import asyncio
from web3 import AsyncWeb3, WebSocketProvider
from web3.middleware import ExtraDataToPOAMiddleware

WHALE_THRESHOLD_USDT = 500_000 * 10**6  # 500k USDT
USDT_ADDRESS = "0xdAC17F958D2ee523a2206206994597C13D831ec7"

async def monitor_usdt_whales():
    w3 = AsyncWeb3(WebSocketProvider("wss://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"))
    
    transfer_filter = await w3.eth.filter({
        'address': USDT_ADDRESS,
        'topics': [w3.keccak(text="Transfer(address,address,uint256)").hex()]
    })
    
    async for event in transfer_filter.get_new_entries():
        amount = int(event['data'], 16)
        if amount >= WHALE_THRESHOLD_USDT:
            from_addr = '0x' + event['topics'][1].hex()[26:]
            to_addr = '0x' + event['topics'][2].hex()[26:]
            
            await process_whale_transfer({
                'from': from_addr,
                'to': to_addr,
                'amount_usdt': amount / 10**6,
                'tx_hash': event['transactionHash'].hex(),
                'block': event['blockNumber'],
            })

Для нативного ETH — окремою логіка через eth_getBlockByNumber з full_transactions=True та фільтрація по value:

async def scan_block_for_whale_eth(block_number: int, threshold_eth: float):
    block = await w3.eth.get_block(block_number, full_transactions=True)
    threshold_wei = w3.to_wei(threshold_eth, 'ether')
    
    whale_txns = [
        tx for tx in block.transactions
        if tx['value'] >= threshold_wei
    ]
    
    return whale_txns

Bitcoin: UTXO модель

Bitcoin не має Transfer подій. Відстеження крупних транзакцій — через моніторинг mempool та блоків. Bitcoin Core RPC:

import bitcoinrpc

rpc = bitcoinrpc.connect_to_local()

def find_whale_transactions(block_hash: str, threshold_btc: float):
    block = rpc.getblock(block_hash, verbosity=2)
    whale_txns = []
    
    for tx in block['tx']:
        # Сума всіх outputs
        total_output = sum(
            vout['value'] 
            for vout in tx['vout'] 
            if vout.get('scriptPubKey', {}).get('type') != 'OP_RETURN'
        )
        
        if total_output >= threshold_btc:
            whale_txns.append({
                'txid': tx['txid'],
                'total_btc': total_output,
                'outputs': tx['vout'],
                'input_count': len(tx['vin']),
            })
    
    return whale_txns

Labeling: кто есть кто

Сирою адреса 0x28C6c06298d514Db089934071355E5743bf21d60 не несе сенсу. Цінність з'являється при наявності labels — бази знаність про те, якому суб'єкту належит адреса.

Джерела labels:

  • Arkham Intelligence — комерціальна база з entity labels
  • Etherscan tags — community-submitted labels, доступні через API
  • Dune Analytics — community datasets (відомі біржові адреси, протоколи)
  • Власна база — поповнюється при аналізі on-chain активності

Типова структура label бази:

CREATE TABLE address_labels (
    address TEXT NOT NULL,
    chain TEXT NOT NULL,
    entity_name TEXT,        -- 'Binance', 'Coinbase', 'Jump Trading'
    entity_type TEXT,        -- 'exchange', 'market_maker', 'fund', 'whale'
    confidence SMALLINT,     -- 1-100
    source TEXT,
    verified BOOLEAN DEFAULT FALSE,
    PRIMARY KEY (address, chain)
);

Агрегація та зберігання

Whale-подій мають бути збережені з контекстом для подальшого аналізу:

CREATE TABLE whale_events (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    chain TEXT NOT NULL,
    tx_hash TEXT NOT NULL,
    block_number BIGINT,
    block_time TIMESTAMPTZ NOT NULL,
    from_address TEXT NOT NULL,
    to_address TEXT NOT NULL,
    token_address TEXT,      -- NULL для нативної монети
    amount_raw NUMERIC,
    amount_usd NUMERIC,
    from_label TEXT,
    to_label TEXT,
    event_type TEXT,         -- 'exchange_inflow', 'exchange_outflow', 'defi_exit', etc.
    notified BOOLEAN DEFAULT FALSE
);

CREATE INDEX ON whale_events (block_time DESC);
CREATE INDEX ON whale_events (from_address, block_time DESC);

Нотифікації

Telegram-бот або Discord webhook для real-time сповіщень. Формат повідомлення з максимальною інформативністю:

🐋 WHALE ALERT — Ethereum
💰 50,000,000 USDT ($50.0M)
📤 Binance (0x28C6...21d60)
📥 Unknown Wallet (0xF9e...3a14)
🔗 tx: 0x7f8...b2c
⏱ 12 сек назад | Block 19,847,231

Кастомні пороги для різних активів та типів подій — конфігуруються через admin інтерфейс або env-файл.

Готові сервіси vs власний парсер

Whale Alert, Lookonchain, Arkham мають безплатні та платні ярусі з готовими сповіщеннями. Власний парсер оправдан коли: потрібна кастомна логіка (певні контракти, специфічні паттерни), дані використовуються в трейдинг-системі з вимогами до latency, або потрібна інтеграція з проприетарною label базою.

Розробка системи моніторингу whale-транзакцій для ETH + BTC з Telegram-сповіщеннями, label базою з 5000+ адрес та зберіганням історії — 2–3 тижні.