Разработка торгового бота для 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 можно сэкономить до 500 USD ежемесячно на операционных расходах по сравнению с mainnet. Средняя стоимость разработки такого бота начинается от 3 000 USD, включая 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:

  • Аэродром 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 млрд в день.

Получите консультацию эксперта для вашего проекта — мы поможем выбрать стратегию и реализовать бота под ключ. Свяжитесь с нами, чтобы обсудить детали.