Розробка бота для фронтраннингу
Кожну секунду в Ethereum мемпулі знаходяться тисячи непідтверджених транзакцій. Крупна покупка токена на Uniswap видна до включення у блок. Бот замічає її, відправляє свою покупку з вищим gas price — потрапляє у блок першим, піднімає ціну. Жертва покупає дорожче. Бот продає. Класичний sandwich. Це і є frontrunning у його базовій формі.
Розробка frontrunning-бота — це одночасно робота з низкоуровневим мемпулом, економікою MEV та інженерією швидкості. Затримка у 100 мілісекунд коштує реальних грошей.
Архітектура: від мемпулу до виконання
Мониторинг мемпулу
Стандартний eth_subscribe("pendingTransactions") через WebSocket дає хеші транзакцій. Для фронтраннингу потрібне тіло транзакції: txpool_content або eth_getTransactionByHash — додатковий RPC-вызов з затримкою. Це вже програш по швидкості.
Правильний підхід — підключення до нод з newPendingTransactions full subscription (деякі клієнти підтримують повернення повного тіла одразу). Або пряме підключення до кількох нод одночасно — той, хто надіслав першим, швидший. Використовуємо: власна geth/Erigon нода + Alchemy/Infura як fallback, WebSocket з'єднання до обох.
Декодування calldata: визначаємо цільовий контракт та функцію. Для Uniswap v2/v3 — парсимо swapExactTokensForTokens, exactInputSingle, інші swap-функції. Розраховуємо очікуваний price impact. Якщо impact > threshold — кандидат для sandwich.
Розрахунок прибутковості
Бот повинен розрахувати за мілісекунди:
- Поточні резерви пулу (SLOAD з кешованого стану або RPC-вызов)
- Price impact жертви
- Оптимальний розмір власної транзакції (через бінарний пошук або аналітичну формулу)
- Вартість газу (front + back транзакція)
- Очікуваний прибуток після вирахування газу
Якщо expectedProfit > gasCost * safetyFactor — відправляємо пачку транзакцій. Safety factor зазвичай 1.2-1.5, інакше при малому slip програємо гроші.
Приоритет виконання: gas price vs Flashbots
Наївний підхід — газ вищий, ніж у жертви. Працював до 2021. Тепер це priority gas auction: ви піднімаєте газ, конкуренти бачать та піднімають своє, прибуток йде у газ. Плюс failed транзакції платять газ — якщо жертва відмінила транзакцію або конкурент обігнав, ви всеодно заплатили.
Flashbots MEV-Boost — правильне рішення. Відправляєте bundle (кілька транзакцій як одиниця) прямо до блок-білдера, мінуючи публічний мемпул. Або bundle виконується повністю, або не включається — немає ризику частково виконання та оплати за failed транзакції. Оплата білдеру через coinbase transfer у кінці бандла (частина прибутку).
const bundle = [
{ transaction: frontrunTx, signer: wallet },
{ hash: victimTxHash }, // жертва
{ transaction: backrunTx, signer: wallet }
];
await flashbotsProvider.sendBundle(bundle, targetBlockNumber);
Типи стратегій
Sandwich attacks — найпоширеніші на DEX. Вимагають точного розрахунку slippage жертви: якщо у неї minAmountOut майже дорівнює оптимальному — sandwich не спрацює, жертва отримає revert.
Pure backrunning — тільки back транзакція, без front. Наприклад: крупний swap створює arb-можливість між Uniswap та Curve. Бот замічає це, вставляє свій arb-swap одразу після транзакції жертви у тому ж блоці. Менш агресивно, менше конкуренції з іншими MEV-ботами.
Liquidation frontrunning — мониторинг позицій у Aave/Compound, що близькі до liquidation threshold. При падінні ціни оракула — гонка за першою ліквідацією з liquidation bonus.
Технічний стек
Написано на TypeScript (viem/ethers.js) або Rust для максимальної швидкості декодування. Go також популярний серед MEV-ботів через низьку latency.
Для вычислень swap — або реалізація формул Uniswap v2/v3 локально (без RPC), або Uniswap SDK v4 з локальним кешем стану пулів. Локальне симулювання через eth_call з stateOverride дозволяє перевірити транзакцію без надсилання.
Flashbots SDK (@flashbots/ethers-provider-bundle) для EVM-цепочок. На інших мережах: MEV Blocker для Gnosis Chain, aori/mev-share на Ethereum для більш кооперативних стратегій.
| Інструмент | Призначення |
|---|---|
| viem / ethers.js v6 | RPC взаємодія, підпис транзакцій |
| Flashbots SDK | Bundle submission |
| Erigon node | Низька latency мемпул |
| Redis | Кеш стану пулів |
| PostgreSQL | Історія виконаних бандлів, PnL |
Конкурентна середовище та реалії
MEV-боти — висококонкурентна середовище. На Ethereum mainnet працюють сотні професійних ботів від добре фінансованих команд. Arbitrum та інші L2 пропонують менше конкуренції, але й менше обсягу.
Реальна прибутковість залежить від: унікальності стратегії, швидкості інфраструктури, якості кешування стану. Публічно відомі стратегії швидко стають нерентабельними через копіювання.
Орієнтири за часом
Базовий sandwich-бот для однієї DEX (Uniswap v2/v3) з Flashbots інтеграцією — 1-2 тижні. Мультичейн бот з кількома стратегіями та мониторингом — 3-5 тижнів. Кастомна MEV-інфраструктура з власною нодою та симулятором — від 2 місяців.
Вартість розраховується після обговорення стратегій та цільових мереж.







