Граббинг данных 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 недели.