Розробка снайпер-бота для DEX
Новий токен додається в ліквідність на Uniswap V2 — і через 2-3 блоки перші покупці вже в позиції. Це не випадковість і не швидкість реакції людини. Снайпер-боти мониторять mempool на addLiquidity та addLiquidityETH транзакції, і відправляють buy-транзакцію з більш високим gas, щоб попасти в той же блок відразу після деплоя ліквідності.
Де ломаються типічні реалізації
Неверна логіка визначення liquidity add
Простий варіант — слухати событие Mint(address sender, uint amount0, uint amount1) на пулі Uniswap V2. Проблема: событие еміцюється після виконання, не до. До моменту, коли бот побачив событие, блок вже закритий. Потрібно працювати з pending транзакціями в mempool.
Правильний підхід: eth_subscribe("newPendingTransactions") через WebSocket до Ethereum-ноди + декодування calldata транзакцій. Сигнатура addLiquidityETH(address token, ...) — 0xf305d719. Якщо calldata починається з цього selector — це liquidity add, і бот повинен відреагувати до включення в блок.
Але більшість ботів роблять помилку: парсять тільки прямі вызови Router. Токени можуть додавати ліквідність через кастомний контракт-лаунчер, який викликає Router всередину. Для цього потрібен trace API (debug_traceTransaction або Tenderly) або мониторинг factory события PairCreated як альтернативний сигнал.
Gas войны і приоритет
Просто поставити високий gasPrice недостатньо — це гонка, яку виграє будь-хто. Правильна схема: EIP-1559 транзакції з maxPriorityFeePerGas (tip), достатнім щоб попасти вище цільової транзакції в блоці, але не переплачувати лишнє.
Для advanced сценаріїв — прямої відправки в Flashbots bundle: eth_sendBundle дозволяє включити свою транзакцію в тому ж блоці що й target, гарантовано після неї, без ризику попасти перед liquidity add (що марно) або в іншому блоці (що пізно).
Anti-bot механізми
Більшість токенів 2023-2024 років мають anti-sniper захист: перші N блоків після лістингу транзакції від адрес, які купили в першому блоці, облаганя податком 99% або блокуються. Знімається це починає через _maxWalletAmount лімити та часові обмеження.
Обходи: покупка через кілька адрес з малими сумами, затримка покупки на 1-3 блоки, аналіз контракту токена перед покупкою на наявність anti-bot коду (паттерни: _isSniper, _blacklist, antiBotEnabled).
Архітектура бота
Мониторинг mempool
WebSocket з'єднання до власної Ethereum-ноди (Geth/Erigon) або до провайдера з mempool доступом (Alchemy, Infura Premium, QuickNode). Публічні ноди мають rate limits і latency 50-200ms. Власна нода на тому ж датацентрі що й крупні майнери/валідатори — latency 5-20ms.
Mempool subscription → calldata decode → token contract fetch →
safety checks → buy tx construction → gas estimation → send
Safety checks перед покупкою
Автоматичний аналіз контракту токена до покупки:
- Перевірка на honeypot: симуляція
sellчерезeth_callпісля покупки. Якщо продаж реверсується — ловушка - Перевірка owner функцій:
mint()без обмежень,setFee(uint256)до 100%,renounceOwnership()не вызван - Перевірка ліквідності: достатньо ли ETH в пулі для нашої покупки без >X% slippage
- Верифікація токена на відомих скам-базах (Token Sniffer API, GoPlus Security API)
Симуляція через Foundry forge script --fork-url або Tenderly Simulation API — дозволяє побачити точний результат транзакції до відправки.
Управління позицією
Take-profit і stop-loss через мониторинг Swap событій пула: якщо ціна упала на X% від ціни покупки — автоматична продаж. Trailing stop: обновляет ориентир при зростанні ціни.
Проблема при продажі: якщо токен має sell tax — потрібно враховувати його в розрахунку мінімального amountOutMin для Uniswap Router. Інакше транзакція реверсується через slippage protection.
Стек
Node.js / TypeScript з ethers.js v6 або viem для взаємодії з мережею. Власна Ethereum-нода (Geth або Erigon) для mempool. Redis для кеша перевірених контрактів. Flashbots SDK для приватних бандлів.
Для Uniswap V3 мониторингу — Uniswap SDK v3 для розрахунку маршрутів і quoter calls.
Орієнтири по термінам
Базовий снайпер з mempool монторингом і простими safety checks — 3-5 днів. Версія з Flashbots інтеграцією, anti-bot обходами та trailing stop — 1-2 тижні.
Вартість рахується індивідуально.







