Бот для автоматического фарминга: нормализация APY и минимизация газа

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Бот для автоматического фарминга: нормализация APY и минимизация газа
Средний
~3-5 дней
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1351
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    951
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1186
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    922

Держать деньги в одном 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.

Как построить стратегию ротации: пошагово

  1. Нормализация APY — приводим доходность каждого протокола к единому стандарту, используя 7-дневное скользящее среднее.
  2. Расчёт порога газа — для каждой пары протоколов динамически считаем, при какой разнице APY ротация окупается.
  3. Применение риск-фильтров — исключаем протоколы без аудита, пулы с низкой ликвидностью, запрещаем bridge-ротации без ручного подтверждения.
  4. Тестирование на форке — прогоняем все сценарии на реальном состоянии сети через Foundry vm.createFork.
  5. Деплой и мониторинг — запускаем 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+ таких систем для разных протоколов. Гарантируем прозрачный код и регулярные обновления адаптеров. Свяжитесь с нами, чтобы обсудить ваш сценарий. Получите консультацию — оценим ваш проект бесплатно.

Разработка DeFi-протоколов

Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.

Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.

Почему оракулы — критический компонент DeFi?

Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.

Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.

TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.

Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.

Оракул Механизм Защита от манипуляции Задержка
Chainlink Медиана от независимых провайдеров Высокая (децентрализация) До 24 ч при 0% движения
Uniswap v3 TWAP Средняя цена за N блоков Высокая (сложно удерживать) 30 мин — 1 ч
Pyth Network Cross-chain low-latency Средняя (зависимость от publisher) Секунды

В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.

Как защитить DeFi-протокол от flash loan атак?

Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.

Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.

Ключевые компоненты DeFi-архитектуры

Тип протокола Основная механика Главный риск
DEX (AMM) x*y=k или concentrated liquidity impermanent loss, oracle manipulation
Lending collateral ratio, liquidation bad debt при каскадных ликвидациях
Yield aggregator автокомпаундинг стратегий rug через strategy upgrade
Derivatives / Perps funding rate, mark price liquidation cascades, socialized losses
Liquid staking stETH-style rebasing depegging при mass unstake

AMM: от x*y=k до concentrated liquidity

Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.

Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.

Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.

Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.

Lending протоколы: collateral, liquidation, bad debt

LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.

Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.

Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.

Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.

Yield farming и incentive mechanics

Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.

Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.

Что входит в нашу разработку DeFi-протоколов

  • Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
  • Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
  • Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
  • Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
  • Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
  • Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
  • Поддержка после запуска: обновления, патчи, апгрейды через proxy.

Наши компетенции и опыт

Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.

DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.

Сроки

  • DEX с AMM (Uniswap v2 fork): 6–10 недель
  • Lending protocol (Aave-style, один collateral): 3–5 месяцев
  • Yield aggregator с несколькими стратегиями: 2–4 месяца
  • Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит

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

Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.