Розробка бота для фронтраннінгу

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка бота для фронтраннінгу
Складний
~1-2 тижні
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1120
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    588
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    855

Розробка бота для фронтраннингу

Кожну секунду в 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 місяців.

Вартість розраховується після обговорення стратегій та цільових мереж.