Розробка торгового бота для DEX на Base

Розробка торгового бота для DEX на Base Розробити торгового бота для DEX на Base — означає вирішити задачу отримання доходу на арбітражі в мережі з низьким газом і високою пропускною здатністю. Base, побудована на OP Stack і керована Coinbase, пропонує унікальні умови: транзакції підтверджуються

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

Часті запитання

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

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

Розробка торгового бота для DEX на Base

Розробити торгового бота для DEX на Base — означає вирішити задачу отримання доходу на арбітражі в мережі з низьким газом і високою пропускною здатністю. Base, побудована на OP Stack і керована Coinbase, пропонує унікальні умови: транзакції підтверджуються за секунди, а вартість газу в десятки разів нижча за Ethereum. Однак автоматизація торгівлі вимагає глибокого розуміння архітектури Aerodrome та Uniswap V3, вміння оптимізувати смарт-контракти та правильно розраховувати slippage. Наша команда блокчейн-інженерів з десятирічним досвідом побудувала більше 50 ботів для різних мереж, і ми готові поділитися перевіреними рішеннями. Завдяки низькому газу на Base можна заощадити на операційних витратах порівняно з mainnet. Середня вартість розробки такого бота визначається після аналізу, включаючи audit смарт-контрактів.

Екосистема DEX на Base

Ключові майданчики для інтеграції:

DEX Модель Об'єм / день Особливості
Aerodrome Finance ve(3,3) AMM + CLOB $1B+ Форк Velodrome, нативний DEX Base
Uniswap V3 Concentrated liquidity $500M+ Стандартний V3, ті ж контракти що mainnet
BaseSwap Fork Uniswap V2 $50M Менше ліквідності
SushiSwap V2 + Trident $20M Мультичейн, крос-DEX арбітраж

Aerodrome — пріоритет для глибокої інтеграції: 60%+ DEX об'єму Base проходить через нього.

Чому Base підходить для торгових ботів?

Base використовує централізований sequencer під управлінням Coinbase, що принципово змінює MEV-ландшафт. Публічного mempool в Ethereum-сенсі немає — транзакції публікуються атомарно. Класичні sandwich-атаки через frontrunning практично неможливі, зате арбітраж між DEX працює ефективно. Розміщення сервера в us-east-1 (AWS) дає мінімальну затримку до sequencer. Транзакції відправляються через https://mainnet.base.org RPC або через Alchemy/Infura.

Aerodrome: архітектура, важлива для бота

Aerodrome успадковує Velodrome V2 архітектуру з двома типами пулів:

Volatile pools (Pool.sol): стандартна x*y=k формула. Підходить для некорельованих пар (ETH/USDC, cbBTC/USDC).

Stable pools (Pool.sol з stable=true): крива x³y + y³x = k — оптимізована для близьких за ціною активів (USDC/USDT, cbETH/wstETH). Важливо: для стейбл-пулів getAmountOut() дає інший результат при тих же вхідних даних.

// Aerodrome Router ABI const AERODROME_ROUTER = '0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43' const routes = [{ from: WETH_ADDRESS, to: USDC_ADDRESS, stable: false, // Для volatile пари factory: AERODROME_FACTORY }] const amounts = await aerodromeRouter.getAmountsOut(amountIn, routes) 

Помилка, яку роблять розробники з EVM-фоном: використовують stable: false для всіх пар. Для USDC/USDbC пари це дає розрахунковий amountOut у 5–10% гірший за реальний через неправильну криву.

ve(3,3) та epoch rewards

Aerodrome використовує veAERO (locked voting tokens) для направлення emissions в пули. Для арбітражного бота це важливо опосередковано: пули з високими emissions приваблюють більше LP, мають менший slippage. Відстеження голосувань та emissions допомагає передбачати, де з'явиться глибока ліквідність.

Як працює арбітраж з flash loan на Base?

Найдоступніший і стабільніший MEV на Base — арбітраж між різними DEX:

  • Aerodrome vs Uniswap V3: та ж пара (ETH/USDC) торгується на двох різних майданчиках з різною ціною через асинхронну поведінку LP.
  • Стейблкоін арбітраж: USDC vs USDbC (bridged USDC) vs axlUSDC — часто торгуються з slight discount/premium на різних пулах.
  • cbETH / wstETH арбітраж: похідні ETH активи, ціна прив'язана до ETH через exchange rate. При відхиленні від справедливої вартості — арбітражна можливість.

Базовий цикл бота:

async function checkArbitrage(tokenA: Address, tokenB: Address) { // Паралельний запит цін з двох DEX const [aeroPrice, uniPrice] = await Promise.all([ getAerodromePrice(tokenA, tokenB, amountIn), getUniswapV3Price(tokenA, tokenB, amountIn) ]) const priceDiff = Math.abs(aeroPrice - uniPrice) / Math.min(aeroPrice, uniPrice) if (priceDiff > MIN_PROFIT_THRESHOLD) { const gasEstimate = await estimateArbitrageGas(...) const gasCostUSD = gasEstimate * gasPrice * ethPrice const grossProfit = calculateProfit(aeroPrice, uniPrice, amountIn) if (grossProfit > gasCostUSD * 1.5) { // Мінімум 1.5x покриття gas await executeArbitrage(...) } } } 

Atomic arbitrage через flash loan

На Base доступні Aave V3 flash loans (контракт деплоєн на Base). Атомарний арбітраж: беремо flash loan → купуємо дешевше → продаємо дорожче → повертаємо flash loan + fee (0.09%). Flash loan fee встановлює мінімальний поріг прибутковості — різниця цін має бути > 0.09% + gas.

contract BaseArbitrageBot is IFlashLoanSimpleReceiver { function executeArbitrage(address token, uint256 amount, bytes calldata params) external { POOL.flashLoanSimple(address(this), token, amount, params, 0); } function executeOperation( address asset, uint256 amount, uint256 premium, address, bytes calldata params ) external override returns (bool) { (address dexA, address dexB, bytes memory swapDataA, bytes memory swapDataB) = abi.decode(params, (address, address, bytes, bytes)); IERC20(asset).approve(dexA, amount); (bool successA,) = dexA.call(swapDataA); require(successA, "Swap A failed"); uint256 received = IERC20(outputToken).balanceOf(address(this)); IERC20(outputToken).approve(dexB, received); (bool successB,) = dexB.call(swapDataB); require(successB, "Swap B failed"); uint256 repayAmount = amount + premium; IERC20(asset).approve(address(POOL), repayAmount); return true; } } 

Контракт — мінімалістичний. Ніякого storage state — все через calldata та події.

Що входить в розробку бота?

В рамках робіт ми надаємо:

  • Дослідження MEV-можливостей на Base зі звітом за обсягами та конкуренцією.
  • Інтеграція з Aerodrome та іншими DEX (на вибір) з підтримкою volatile та stable пулів.
  • Арбітражний двигун з підтримкою flash loan (Aave V3).
  • Моніторинг цін, gas price та аномалій з алертами в Telegram/Discord.
  • Документація з розгортання та управління ботом.
  • Підтримка після запуску протягом 1 місяця.

Стек розробки

Бот: TypeScript + viem (переважніше ethers.js для Base через кращу підтримку EIP-1559 типів). Bull (Redis-backed queue) для управління чергою транзакцій. Prometheus + Grafana для метрик.

Контракти: Solidity 0.8.24 + Foundry. Fork-тест на Base mainnet через forge test --fork-url https://mainnet.base.org. Foundry підтримує Base як target network.

Деплой бота: Docker на AWS EC2 (us-east-1) або Fly.io для простоти, з автоматичним рестартом через systemd/Supervisor.

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

Дослідження (2–3 дні). Аналіз MEV можливостей на Base через Dune Analytics, оцінка обсягів та конкуренції.

Розробка (1–2 тижні). Інтеграція з Aerodrome та Uniswap V3, арбітражний двигун, flash loan контракт, моніторинг.

Тестування (3–5 днів). Backtesting на історичних даних Base, paper trading в fork-тестах. Запуск. Деплой з малими сумами → моніторинг продуктивності → масштабування.

Оцінка ризиків арбітражних стратегій
Ризик Ймовірність Зниження
Slippage вищий за розрахунковий Середня Split великих ордерів, динамічний gas price
Flash loan не пройшов Низька Перевірка liquidity в пулі перед операцією
Маніпуляція ціною оракула Низька Price deviation alerts, зупинка при 2%
Відмова RPC ноди Середня Резервні провайдери (Alchemy, Infura)

Моніторинг та управління ризиками

Price deviation alerts: якщо різниця цін між DEX перевищує 2% — потенційна аномалія (маніпуляція, баг оракула). Бот має зупиняти роботу до з'ясування.

Gas price tracking: на Base gas нестабільний при високому навантаженні. Бот має перевіряти eth_gasPrice та встановлювати maxFeePerGas динамічно. Жорсткий ліміт gas price — вище порогу арбітраж нецікавий.

Slippage на великих позиціях: розрахунок getAmountsOut для суми X не враховує, що під час виконання ціна зсунеться. Для великих свопів потрібна симуляція з урахуванням price impact — або split на кілька менших транзакцій.

Dead man's switch: якщо бот не здійснював транзакцій більше N хвилин за наявності можливостей — алерт на Telegram/Discord. Могло статися: нода впала, немає балансу на gas, unexpected revert.

За даними Dune Analytics, обсяг Aerodrome перевищує $1 млрд на день.

Отримайте консультацію експерта для вашого проекту — ми допоможемо вибрати стратегію та реалізувати бота під ключ. Зв'яжіться з нами, щоб обговорити деталі.