Розробка flash loan арбітражного бота

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка flash loan арбітражного бота
Складний
~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
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    587
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Розробка flash loan арбітражного бота

Розрив у ціні WETH між Uniswap v3 та SushiSwap: 0.3%. На $500k занятих через Aave flash loan — це $1,500 до комісій. Після уплати 0.09% flash loan fee ($450) та газу ($20-50 на Ethereum mainnet) — чистий прибуток близько $1,000 за одну атомарну транзакцію, яка виконується або повністю, або откатується без потерь капіталу. Саме ця атомарність робить flash loan арбітраж принципово іншим видом торгівлі порівняно з класичним.

Чому «простий» арбітраж не працює

Gas auction та MEV конкуренція

На публічному mempool ти не один, хто бачить ціновий розрив. MEV-боти сканують mempool та фронтранять прибуткові транзакції — виставляють більш високий gas price, їхня транзакція потрапляє в блок першою, розрив закривається, твоя транзакція реверсується, газ сгорів.

Рішення: відправка через Flashbots eth_sendBundle. Транзакція йде напрямки валідатору, минаючи публічний mempool. Ніякого фронтраннінгу, ніякого gas auction з ботами. Flashbots беруть процент від прибутку (miner tip), але це передбачувано.

Другий варіант — MEV Blocker або BuilderNet для ширшого охоплення. На L2 (Arbitrum, Base) централізований sequencer знижує MEV-ризики, але не усуває їх повністю — приватні mempool там теж є.

Sandwich-захист у executor-контракті

Контракт отримав flash loan, купив WETH на DEX A, повинен продати на DEX B. Між цими двома свапами є вікно — в теорії sandwich-бот може вмішатися, якщо транзакція багатошагова. На практиці для flash loan арбітража все виконується в одній транзакції, тому зовнішній sandwich неможливий. Але amountOutMinimum на кожний свап обов'язковий — інакше sandwich у межах того ж блока через інші транзакції може зсунути price пулу.

Revert та газ-потері

Flash loan реверсується, якщо не повернути борг з fee в тій же транзакції. Якщо арбітражна логіка падає — весь газ сгорає. На Ethereum mainnet невдала транзакція обходиться в $10-50. При високій частоті спроб це накопичується.

Оптимізація: pre-simulation перед відправкою. eth_call з повним calldata — контракт моделюється безплатно, і ми бачимо revert/success до того, як тратити реальний газ. У production-боті це обов'язковий крок: simulate → if success → send bundle.

Як будуємо систему

Компоненти

Price scanner — off-chain сервіс на TypeScript/viem, підписаний на `Swap» события всіх відстежуваних пулів через WebSocket. При кожній eventi перерахуємо spot price та порівнюємо з матрицею пар. Виявлений розрив > порога (з врахуванням всіх комісій) — сигнал для арбітража.

Profit calculator — точний розрахунок PnL з врахуванням: flash loan fee (Aave v3: 0.09%, Balancer: 0%), газу на поточному блоці (через eth_gasPrice + EIP-1559 base fee), slippage обох свапів (через Quoter), multisig tip для Flashbots. Якщо результат негативний — не відправляємо.

Executor contract — Solidity контракт, реалізуючий IFlashLoanSimpleReceiver (Aave) або IFlashLoanRecipient (Balancer). Усередину executeOperation / receiveFlashLoan — логіка двох свапів та повернення боргу.

Flash loan провайдер Fee Ліміт Особливості
Aave v3 0.09% Ліквідність пулу ERC-3156 сумісний
Balancer v2 0% Ліквідність vault Немає fee до кінця транзакції
Uniswap v3 0.05-1% Ліквідність пулу Flash swap, токен повертається в пул
dYdX 0% Обмежені активи Solo Margin, складніше інтегрувати

Executor: що усередину

function executeOperation(
    address asset,
    uint256 amount,
    uint256 premium,
    address initiator,
    bytes calldata params
) external returns (bool) {
    require(msg.sender == address(POOL), "Caller not Aave Pool");
    require(initiator == address(this), "Initiator mismatch");
    
    (address dexA, address dexB, uint256 amountOutMin) = 
        abi.decode(params, (address, address, uint256));
    
    // swap on DEX A
    uint256 received = _swapExact(dexA, asset, targetToken, amount, 0);
    // swap back on DEX B  
    uint256 finalAmount = _swapExact(dexB, targetToken, asset, received, amountOutMin);
    
    uint256 totalDebt = amount + premium;
    require(finalAmount >= totalDebt, "Unprofitable");
    
    IERC20(asset).approve(address(POOL), totalDebt);
    return true;
}

Перевірки msg.sender та initiator» — обов'язкові. Без них будь-хто може викликати executeOperationнапрямки, передаючи довільнийparams`, та дренувати токени, які контракт тримає в approve.

Моніторинг та обслуговування

Арбітражний бот — не set-and-forget система. Розриви сужаються по мірі того, як конкурентів стає більше. Потрібен dashboard: кількість спроб на годину, процент успішних, середня прибуток, витрата газу. Якщо success rate падає нижче 5% — пора переглядати пороги або додавати нові пари.

Процес роботи

Аналітика (2-3 дні). Визначаємо цільові пари, чейни, DEX. Аналізуємо історичні дані розривів через The Graph або Dune Analytics — оцінюємо реалістичну прибутковість.

Розробка (1-2 тижні). Executor-контракт + off-chain scanner + Flashbots інтеграція. Fork-тесты на історичному блоці з реальними розривами.

Тестування. Прогон на testnet (Sepolia) з тестовими flash loan. Потім mainnet в режимі simulation-only (тільки eth_call, без відправки) — тиждень збору даних та калібровки порогів.

Продакшн деплой. Executor через Gnosis Safe (owner-функції захищені). Скрипти моніторингу та auto-restart через PM2.

Орієнтири по срокам

Базовий бот для одного чейну та двох DEX — 1-2 тижні. Мультичейн система з власним price graph та Flashbots інтеграцією — 3-4 тижні.

Вартість розраховується після аналізу технічного завдання.