Мы занимаемся разработкой торговых ботов для DEX — систем, которые ищут и исполняют арбитражные возможности за миллисекунды. Наши боты работают на уровне конкурентов: задержка в 100 миллисекунд стоит денег, mempool — поле боя, а неправильная логика может привести к sandwich-атаке. Используем собственную ноду, Flashbots и оптимизированные контракты Uniswap V3. В этой статье разберем архитектуру трех типов ботов (арбитражный, снипер, маркет-мейкинг), техническую реализацию на viem/ethers.js и как защититься от MEV.
Три типа DEX-ботов
| Тип бота | Цель | Сложность | Риски |
|---|---|---|---|
| Арбитражный | Извлечение прибыли из ценовых расхождений между DEX | Высокая (конкуренция MEV) | Sandwich-атаки, высокая latency |
| Sniper | Покупка токенов при создании пула | Средняя | Honeypot, rugpull |
| Market Making | Заработок на спреде через AMM LP | Средняя | Impermanent loss, волатильность |
Получите консультацию по вашему проекту — мы разработаем бота под вашу стратегию.
Как работают DEX-боты?
Арбитражный бот
Находит ценовые расхождения между DEX и извлекает прибыль. Например: ETH стоит $2000 на Uniswap V3 и $2003 на Curve — покупаем на Uniswap, продаём на Curve, $3 прибыли минус gas. На mainnet арбитраж ETH/USDC — занятая ниша с жёсткой конкуренцией. Более реалистичные ниши: новые токены в первые часы торгов (низкая конкуренция), мультихоп маршруты через 3+ пулов, L2 сети (меньше конкурентов, дешевле газ), экзотические пары на менее популярных DEX.
Sniper бот (new listing)
Отслеживает создание новых пулов на Uniswap (событие PoolCreated в Factory) или добавление ликвидности в новый пул. При детекте — мгновенно покупает токен в расчёте на price discovery pump. Технически: WebSocket подключение к Ethereum node, слушаем pending transactions в mempool и PoolCreated события. При детекте — сборка и отправка транзакции с высоким gas priority fee. Риски: honeypot токены, rugpull, MEV competition. Базовые защиты: симуляция sell транзакции перед покупкой, проверка контракта на verified source code, проверка distribution supply.
Market making bot
Выставляет bid/ask ордера вокруг mid-price, зарабатывает на spread. На Uniswap V3 реализуется через управление range positions — бот открывает narrow range position и ребалансирует при выходе цены за диапазон. Uniswap V3 SDK предоставляет все инструменты: расчёт оптимального range через tickToPrice, симуляция fees earned через Pool.computeSwapStep.
Как защититься от sandwich-атак?
Ваши транзакции видны в mempool и могут быть атакованы: бот видит вашу покупку на $10K, вставляет свою покупку до и продажу после. Защиты:
- Private RPC: Flashbots Protect, MEV Blocker — транзакции не попадают в public mempool
- Tight slippage: 0.1-0.3% для ликвидных пар делает sandwich unprofitable
- TWAP исполнение: разбить большой ордер на части
Средняя экономия на комиссиях за счёт private mempool составляет до 30%.
Почему собственная нода критична для скорости?
| Провайдер | Латенция | Стоимость | Применимость |
|---|---|---|---|
| Infura | 50-200 мс | Бесплатно/платно | Прототипы |
| Alchemy | 30-150 мс | Платно | Средние проекты |
| Собственная нода (Erigon) | 1-5 мс | Высокая (сервер) | Конкурентный трейдинг |
Для конкурентного арбитража собственная нода обязательна. Также используем eth_feeHistory для оценки gas и Flashbots для атомарных bundle. Снижение latency на 95% даёт преимущество в гонке за прибыль.
Как запустить базового арбитражного бота: пошаговая инструкция
- Выберите стратегию и целевые пары (например, ETH/USDC на Uniswap V3)
- Настройте RPC-провайдер: собственная нода или Alchemy
- Разверните смарт-контракты (если требуется кастомная логика)
- Запустите скрипт на Node.js с viem/ethers.js
- Настройте мониторинг через Telegram-бота и Grafana
Типичные ошибки при разработке DEX-бота
- Использование Quoter V2 on-chain вместо математического расчёта (медленно) - Отсутствие защиты от sandwich (слиппаж более 0.5%) - Работа без тестов на testnet перед мейннетом - Неправильная конфигурация gas fee (не угадал блок)Техническая реализация
Работа с Uniswap V3
Uniswap V3 — наиболее распространённый DEX для ботов. Ключевые контракты:
-
UniswapV3Factory— создание пулов -
SwapRouter02— исполнение свопов (V3 + backward compatible V2) -
Quoter V2— off-chain котировки без газа -
UniversalRouter— универсальный маршрутизатор (поддерживает V2, V3, и другие протоколы)
import { ethers } from "ethers";
import { Pool, Route, Trade, SwapRouter } from "@uniswap/v3-sdk";
import { CurrencyAmount, TradeType, Percent } from "@uniswap/sdk-core";
const quoter = new ethers.Contract(QUOTER_V2_ADDRESS, QuoterV2ABI, provider);
const amountOut = await quoter.callStatic.quoteExactInputSingle({
tokenIn: WETH_ADDRESS,
tokenOut: USDC_ADDRESS,
fee: 3000,
amountIn: ethers.utils.parseEther("1"),
sqrtPriceLimitX96: 0
});
Для production заменяем callStatic котировки на собственный математический расчёт через on-chain state — это быстрее и не зависит от Quoter availability. Используем whitepaper Uniswap V3 как основу для gas optimization.
Speed: как попасть в нужный блок
Задержка — это деньги. Уровни оптимизации:
RPC уровень: Infura/Alchemy вносят 50-200ms latency. Собственная Ethereum нода (geth или erigon) — 1-5ms.
Mempool мониторинг: через eth_subscribe("newPendingTransactions") получаем хэши pending транзакций. Flashbots Protect API даёт доступ к private mempool.
Gas strategy: EIP-1559 транзакции. maxFeePerGas должен быть достаточным для включения в блок. Для срочных транзакций — maxPriorityFeePerGas выше медианы текущего блока.
Bundle через Flashbots: для arb транзакций, которые нужно включить атомарно — Flashbots MEV-Boost. Защита от frontrunning.
Защита от MEV на собственный бот
Используем private RPC, tight slippage и TWAP-исполнение. Дополнительно проводим audit смарт-контрактов на reentrancy и oracle manipulation.
PancakeSwap и мультичейн
PancakeSwap V3 (BNB Chain) — аналогичная архитектура Uniswap V3, те же SDK концепции. BNB Chain: блок каждые 3 секунды (быстрее Ethereum), cheaper gas. PancakeSwap также на Ethereum и Arbitrum. Мультичейн бот работает с несколькими RPC providers. viem предпочтительнее ethers.js для TypeScript проектов — лучшая типизация, treeshaking, встроенный multicall.
import { createPublicClient, http } from "viem";
import { mainnet, bsc, arbitrum } from "viem/chains";
const clients = {
ethereum: createPublicClient({ chain: mainnet, transport: http(ETH_RPC) }),
bsc: createPublicClient({ chain: bsc, transport: http(BSC_RPC) }),
arbitrum: createPublicClient({ chain: arbitrum, transport: http(ARB_RPC) })
};
Стек и инфраструктура
TypeScript + viem/ethers.js. Node.js worker threads для параллельной обработки. Redis для кэширования состояния пулов. PostgreSQL для истории сделок и PnL. Деплой на VPS с низкой latency до Ethereum nodes (Hetzner Frankfurt, AWS eu-west). PM2 для process management + Telegram алерты.
Что входит в работу
- Архитектурная схема взаимодействия компонентов
- Исходный код бота с комментариями (TypeScript/viem)
- Деплой на ваш VPS или облако
- Настройка мониторинга (Telegram alerts, Grafana)
- Документация по эксплуатации и восстановлению
- Обучение вашего специалиста (1 час онлайн)
Ориентиры по срокам
Базовый арбитражный бот для одной DEX-пары — 3-5 дней. С мультиDEX routing, mempool мониторингом и Flashbots интеграцией — 1-2 недели. Sniper бот с симуляцией sell — 3-5 дней. Market making bot с Uniswap V3 LP management — 1-1.5 недели. Стоимость рассчитывается индивидуально после аудита стратегии.
Наш опыт и гарантии
Мы — команда из 5 senior-разработчиков с суммарным опытом 7+ лет в Solidity и блокчейн-инфраструктуре. Запустили 15+ торговых систем для клиентов из США и ЕС. Работаем с Ethereum, BNB Chain, Arbitrum, Optimism, Polygon. Свяжитесь с нами — мы оценим ваш проект и предложим оптимальное решение. Закажите разработку бота под ключ с гарантией результата.







