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

Ручная торговля на DEX не успевает за скоростью арбитражных возможностей, а упущенная прибыль складывается в ощутимые потери. Мы разрабатываем торговых ботов для Base, которые автоматизируют поиск и исполнение сделок на Aerodrome и других пулах. Наша команда реализует проект под ключ — от аудита ликвидности до запуска и последующей поддержки, обеспечивая надёжную работу вашей стратегии.
Часто задаваемые вопросы

Разработка торгового бота для 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 млрд в день.

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

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

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1141