Держать деньги в одном yield-протоколе и вручную переносить их при изменении ставок — значит постоянно проигрывать тому, у кого есть автоматизация. APY на Aave, Compound, Curve, Convex, Yearn меняются каждый блок. Ручной мониторинг даёт реакцию в часах — бот реагирует за минуты, а то и секунды. Проблема усугубляется gas wars и MEV-ботами, которые перехватывают транзакции. Без автоматизации вы теряете до 30% потенциальной доходности из-за запаздывания с перекладкой. Главная задача — построить систему, где стоимость ротации (газ) не съедает выигрыш от смены протокола, а логика переключения устойчива к изменениям интерфейсов. В этой статье — наш подход, наработанный за годы опыта в DeFi.
Как создать бота для автоматического фарминга без потерь на газе?
Где теряются деньги при плохой реализации
Слепая погоня за APY без учёта газа
Самая частая ошибка в автоматическом фарминге: бот видит разницу в 2% APY между Aave и Compound и делает ротацию. На mainnet Ethereum транзакция вывода + одобрение + депозит обходится в $20–50 на газе. На позиции в $1000 это 2–5% тела — ротация становится убыточной. Каждая ненужная ротация может стоить $50 на газе. Средняя задержка ручного мониторинга — 6 часов, бот реагирует за 2 минуты.
Правило: переносить только если (APY_new - APY_current) * position_size * time_horizon > gas_cost * safety_factor. time_horizon — предполагаемое время нахождения в новом протоколе, safety_factor — 2–3× для учёта неопределённости. На L2 (Arbitrum, Optimism) комиссия составляет $0.1–0.5, поэтому порог значительно ниже.
Несинхронизированные данные о доходности
APY в DeFi — это не фиксированная ставка. Это проекция текущего состояния пула на год. Compound supplyRatePerBlock считается из utilization rate прямо сейчас. Aave добавляет reward tokens (AAVE staking), которые нужно клеймить и учитывать отдельно. Convex показывает boosted APY, который зависит от veCRV баланса вашего vault. Без нормализации APY вы сравниваете несопоставимые числа.
Наш yield farming бот для Aave и Compound использует единую методологию: base yield (из протокола) + reward yield (из emission, нормализованный к USD) + compound effect (реинвестирование), всё приведённое к реальному 7-дневному скользящему среднему. Это позволяет избежать ложных срабатываний при краткосрочных всплесках.
Почему важна нормализация APY?
Без нормализации APY вы сравниваете яблоки с апельсинами. Наш бот для каждого протокола применяет адаптер, который приводит доходность к единому стандарту. Например, для Aave V3 мы учитываем liquidityRate + aToken реинвестирование, для Compound V3 — supplyRate + компенсационные токены. Все данные сглаживаются скользящим средним за 7 дней, чтобы отсечь краткосрочные всплески. Это даёт стабильный сигнал для принятия решений и позволяет реализовать арбитраж доходности между пулами.
Как рассчитать порог ротации с учётом газа?
Порог вычисляется динамически под каждую пару протоколов. Используем формулу:
-
gas_cost— оценка газа черезeth_estimateGasдля Multicall3 (одна tx на approve+deposit). -
profit= (APY_new - APY_current) * position * expected_stay_days / 365. - Ротация выполняется, если
profit > gas_cost * 2(двукратный запас).
Для мультичейн-бота учитывается также стоимость bridge — она может быть значительной, поэтому bridge-ротации мы обычно делаем только с ручным подтверждением. Потенциальная дополнительная доходность при правильной настройке — до $5000 в месяц на позиции в $100k.
Как построить стратегию ротации: пошагово
- Нормализация APY — приводим доходность каждого протокола к единому стандарту, используя 7-дневное скользящее среднее.
- Расчёт порога газа — для каждой пары протоколов динамически считаем, при какой разнице APY ротация окупается.
- Применение риск-фильтров — исключаем протоколы без аудита, пулы с низкой ликвидностью, запрещаем bridge-ротации без ручного подтверждения.
- Тестирование на форке — прогоняем все сценарии на реальном состоянии сети через Foundry
vm.createFork. - Деплой и мониторинг — запускаем keeper с Telegram-уведомлениями и алертами при сбоях.
Архитектура бота для автофарминга
Слои системы
Data layer: агрегация данных с протоколов. Для каждого протокола — отдельный адаптер. Aave V3 через IPool.getReserveData(), Compound V3 через CometSupply events + getSupplyRate(), Curve через get_virtual_price() и Convex rewardRate. Данные пишем в Redis с TTL 60 секунд, чтобы не дёргать RPC на каждый расчёт.
Strategy engine: логика принятия решений. Оценивает текущую позицию, все кандидаты на ротацию, считает net APY с учётом газа, принимает решение. Здесь же — риск-фильтры: не входить в протоколы, которые не прошли аудит, не держать более X% в одном протоколе, исключить пулы с TVL ниже порога (риск ликвидности при выводе).
Execution layer: сборка и отправка транзакций. Используем viem для построения транзакций — он даёт типизированные контракты через ABI и правильную оценку газа. Для batching: Multicall3 позволяет объединить approve и deposit в одной транзакции, снижая газ на 30–40%.
Monitoring: Telegram-уведомления о каждой ротации (сколько вложили, куда, ожидаемый APY), алерты при ошибках транзакций, дашборд с историей позиций через The Graph или собственный индексер.
On-chain vs off-chain логика
Два подхода:
Off-chain keeper (проще, дешевле): бот работает на сервере, держит приватный ключ (или подключается к Gnosis Safe через Safe Transaction Service API), отправляет транзакции напрямую. Минус — зависимость от аптайма сервера и доверие к серверу.
On-chain vault с keeper (сложнее, безопаснее): смарт-контракт-vault хранит средства, keeper (bot) только вызывает rebalance(). Стратегия закодирована в контракте — пользователи могут верифицировать логику. Приватный ключ keeper-бота может только вызывать rebalance(), не выводить средства. Это стандарт для Yearn-style vault, описанный в EIP-4626.
Для личного бота с небольшой суммой — off-chain keeper достаточно. Для протокола с чужими средствами — только on-chain vault с аудитом.
| Характеристика | Off-chain keeper | On-chain vault |
|---|---|---|
| Безопасность средств | Средняя (ключ на сервере) | Высокая (контракт контролирует) |
| Сложность | Низкая | Высокая (аудит, газ) |
| Прозрачность | Только у оператора | Полная (верификация контракта) |
Работа с несколькими сетями
| Сеть | Особенности | Основные протоколы |
|---|---|---|
| Ethereum mainnet | Высокий газ, высокий TVL | Aave V3, Compound V3, Curve, Convex |
| Arbitrum | Дешёвый газ, богатый DeFi | Aave V3, GMX, Radiant, Camelot |
| Optimism | Дешёвый газ, Velodrome | Aave V3, Velodrome, Extra Finance |
| Base | Новая, растущий TVL | Aave V3, Aerodrome, Moonwell |
Мультичейн фарминг требует bridge-ротации, которые мы обычно не автоматизируем из-за рисков эксплойтов bridge. Для мультичейн-бота используем только ручное подтверждение bridge-операций.
Стек
TypeScript + viem для on-chain взаимодействий. Node.js для keeper-процесса. Redis для кэширования данных. PostgreSQL для истории ротаций и аналитики. Docker для деплоя. PM2 или systemd для мониторинга процесса.
Hardhat/Foundry для on-chain vault контрактов, если выбираем этот путь. Тесты на fork mainnet через Foundry vm.createFork — прогоняем сценарии ротации на реальном состоянии сети.
Что входит в работу
- Анализ выбранных протоколов и сетей, нормализация APY.
- Разработка адаптеров для каждого протокола (включая сбор данных и отправку транзакций).
- Реализация стратегического движка с учётом газа и риск-фильтров.
- Настройка мониторинга (Telegram, дашборд).
- Тестирование на fork mainnet (Foundry).
- Документация по настройке и эксплуатации.
- Гарантия на код 3 месяца.
Ориентиры по срокам
Off-chain keeper бот для 2–3 протоколов на одной сети — 3–5 дней. С нормализацией APY, учётом газа и Telegram мониторингом — ближе к 1 неделе. On-chain Yearn-style vault с отдельными стратегиями — 2–4 недели включая тесты. Стоимость рассчитывается после уточнения протоколов и сетей. Получите консультацию — оценим ваш проект бесплатно.
Пример конфига для off-chain keeper
protocols:
- name: aave-v3-eth
adapter: aave-v3
pool: 0x...
gas_estimate: 200000
- name: compound-v3-eth
adapter: compound-v3
comet: 0x...
strategy:
min_profit_multiple: 2
max_rotations_per_day: 10
excluded_protocols:
- convex (устаревший аудит)
Закажите разработку у нас — мы уже построили 15+ таких систем для разных протоколов. Гарантируем прозрачный код и регулярные обновления адаптеров. Свяжитесь с нами, чтобы обсудить ваш сценарий. Получите консультацию — оценим ваш проект бесплатно.







