Тримати гроші в одному 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+ таких систем для різних протоколів. Гарантуємо прозорий код та регулярні оновлення адаптерів. Зв'яжіться з нами, щоб обговорити ваш сценарій. Отримайте консультацію — оцінимо ваш проект безкоштовно.







