Реализация DEX-арбитражного бота: тонкости и решения
На Uniswap V3 ETH/USDC стоит $3 201.50, на SushiSwap — $3 199.80. Разница $1.70 на ETH. Чтобы сделка была прибыльной, нужно учесть: gas 21 000 + 150 000 (два свапа) ≈ 170 000 gas × 30 gwei × $3 200 / 1e9 ETH = ~$16 на gas. Значит, при сделке в $1 000 разница должна быть хотя бы 1.6%, а при $100 000 хватит 0.016%. DEX-арбитраж работает только при достаточном размере позиции или ценовом расхождении — flash loans делают этот бизнес доступным без собственного капитала. Типичная сделка приносит от $200 до $500 чистой прибыли.
Более 10 реализованных DeFi-проектов за 5 лет — наш опыт гарантирует надёжность решения.
Почему DEX-арбитражные боты часто не приносят прибыль?
Mempool конкуренция и MEV
Самый сложный враг DEX-арбитражника — MEV-боты с прямым доступом к блок-билдерам. Через Flashbots eth_sendBundle транзакция попадает напрямую к билдеру, минуя public mempool. Flashbots предоставляет механизм приватной отправки, который в 3 раза эффективнее обычной отправки в мемпул: процент успешных транзакций повышается в 2–3 раза.
Если ваш бот отправляет транзакции в public mempool — вы в проигрышной позиции. Обычный gas auction означает, что другие боты видят вашу транзакцию, оценивают прибыльность и выставляют более высокий gas. Решение: отправлять все транзакции через Flashbots или MEV Blocker (агрегатор нескольких private relays). Плюс — можно включать несколько транзакций в один bundle с atomic исполнением.
Slippage и расчёт реальной цены
Проблема большинства начинающих реализаций: расчёт арбитражной возможности по spot price пула без учёта price impact. Реальная цена после свапа зависит от текущей ликвидности в активном диапазоне (Uniswap V3), размера транзакции и spread через несколько tick ranges. Для V3 правильный расчёт требует симуляции свапа через Quoter контракт или off-chain через @uniswap/v3-sdk. Разница между spot price и реальной ценой исполнения при $100k свапе на среднеликвидном пуле — 0.3-1.5%. Без учёта этого расчёт прибыльности будет неверным.
Gas оптимизация: разница между прибылью и убытком
На mainnet Ethereum арбитраж работает только при оптимизированном gas usage. Типичная ошибка: два отдельных ERC-20 approve + swap = +43 000 gas сверху. Решение — использовать permit (EIP-2612) для токенов с поддержкой, или заранее одобрить максимальную сумму и не переодобрять. Ещё больше экономит atomic arbitrage через flash loan в одном контракте: нет нескольких transfer между EOA и DEX, нет отдельных транзакций. Весь арбитраж — одна транзакция: flash loan → swap A → swap B → repay loan → profit. Gas на такую транзакцию: 200 000 - 400 000 в зависимости от протоколов. Оптимальная настройка газа экономит до 30% комиссий.
Как построить надёжный DEX-арбитражный бот?
Какой стек технологий используется?
-
On-chain контракт на Solidity 0.8.x исполняет сделку атомарно, реализует flash loan callback (Aave
IFlashLoanReceiverили Uniswap V3IUniswapV3FlashCallback), выполняет свапы и проверяет profit. - Off-chain executor на Rust мониторит пулы через WebSocket-подписки на собственные Ethereum-ноды, рассчитывает пути с помощью алгоритма Bellman-Ford (см. Wikipedia) и отправляет транзакции через Flashbots.
Пример контракта:
function executeArbitrage( address tokenIn, uint256 amountIn, SwapPath[] calldata path, uint256 minProfit ) external { // Flash loan from Aave // Execute swaps along path // Assert profit >= minProfit, else revert // Repay flash loan // Transfer profit to owner } Revert при недостаточной прибыли — ключевая защита: если рынок изменился, контракт откатится, потратив только base gas (~21 000), а не весь газ исполнения свапов.
Сравнение стратегий арбитража
| Стратегия | Риски | Прибыльность | Сложность реализации |
|---|---|---|---|
| Простой двухсторонний | Низкие | Средняя | Низкая |
| Multi-hop (3+ пути) | Средние | Высокая | Средняя |
| Cross-chain через bridge | Высокие | Высокая | Высокая |
| Flash loan + MEV защита | Средние | Очень высокая | Высокая |
На практике стратегия с flash loan и Flashbots bundle показывает в 1.5–2 раза больше прибыльных транзакций по сравнению с обычной отправкой в мемпул.
Поиск оптимального пути: Bellman-Ford
Для multi-hop арбитража (A→B→C→A) задача нахождения прибыльного пути — это задача нахождения отрицательного цикла в графе цен. Классический алгоритм — Bellman-Ford на графе, где узлы = токены, рёбра = пулы, веса = log(exchange_rate). На практике для 5-10 DEX и 50-100 токенов граф небольшой, Bellman-Ford считается за миллисекунды.
Процесс разработки
- Аналитика (2-3 дня). Определение целевых DEX, сетей, токен пар. Анализ конкурентной среды — сколько ботов уже работает в выбранном сегменте.
- Разработка контракта (1 неделя). Flash loan интеграция, multi-hop swap логика, profit assertion. Тесты на mainnet fork через Foundry.
- Разработка executor (1-2 недели). WebSocket мониторинг пулов, Bellman-Ford / path finding, Flashbots bundle отправка.
- Оптимизация и деплой (3-5 дней). Gas профилирование, fine-tuning minProfit порогов, деплой в production.
Мониторинг и управление рисками
Арбитражный бот в production требует мониторинга нескольких метрик: win rate по транзакциям (если > 30% revert — слишком медленный executor), gas efficiency, capital utilization, конкурентная среда. Используем Grafana + Prometheus для метрик, алерты через Telegram bot.
Что входит в работу
Мы предоставляем: исходный код контракта и экзекьютора, документацию по развёртыванию, доступ к мониторингу (Grafana дашборд), обучение команды, техническую поддержку в течение 30 дней после запуска.
Свяжитесь с нами для детального обсуждения вашего проекта. Закажите разработку бота с гарантированной поддержкой — получите консультацию экспертов с 5-летним опытом в DeFi.
Ориентиры по срокам
Базовый бот (2 DEX, один network, flash loan) — 1-2 недели. Multi-DEX, multi-path с Flashbots интеграцией — 2-4 недели. Cross-chain или advanced MEV стратегии — от 6 недель. Стоимость рассчитывается индивидуально.







