Разработка агрегатора DeFi-доходности

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка агрегатора DeFi-доходности
Сложная
от 2 недель до 3 месяцев
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1258
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1170
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    873
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1092
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    830

Разработка агрегатора DeFi-доходности

Yearn Finance в 2020 году сформулировал идею, которая остаётся актуальной: пользователь не должен вручную мониторить десятки протоколов в поисках лучшего APY. Vault принимает депозит, стратегия автоматически размещает средства в лучшем протоколе, реинвестирует доходность, переключается при изменении условий. Пользователь получает yvToken и больше ни о чём не думает.

Построить агрегатор — значит решить несколько несвязанных инженерных задач одновременно: on-chain vault с множеством стратегий, off-chain keeper для автоматизации, система сравнения APY с нормализацией и gas-оптимизация, которая не съедает всю доходность.

Архитектура: от простого vault до multi-strategy

Базовая ERC-4626 vault

ERC-4626 — стандарт токенизированного vault (принят в 2022, Ethereum mainnet). Определяет единый интерфейс: deposit(), withdraw(), convertToShares(), convertToAssets(). Vault выпускает shares (ERC-20 токены), price per share растёт по мере накопления доходности.

Ключевое преимущество ERC-4626: совместимость. Любой протокол, поддерживающий ERC-4626, может использовать ваш vault как building block. Yearn V3 переработал всё под этот стандарт. Строить vault сегодня — значит имплементировать ERC-4626.

// Минимальный интерфейс
interface IERC4626 {
    function deposit(uint256 assets, address receiver) external returns (uint256 shares);
    function withdraw(uint256 assets, address receiver, address owner) external returns (uint256 shares);
    function totalAssets() external view returns (uint256);
    function convertToShares(uint256 assets) external view returns (uint256);
    function convertToAssets(uint256 shares) external view returns (uint256);
}

Multi-strategy allocation

Один vault — несколько стратегий. Vault распределяет средства между стратегиями по весам. Yearn называет это "allocator". Каждая стратегия — отдельный контракт, реализующий интерфейс IStrategy с методами harvest(), report(), withdraw().

Типичные стратегии для USDC vault:

  • Aave V3 USDC lending (base APY ~5%)
  • Compound V3 USDC lending (base APY ~4-6%)
  • Curve 3pool (base APY ~2-4% + CRV rewards)
  • Morpho (оптимизированный Aave/Compound, APY ~6-8%)

Allocator решает, сколько средств держать в каждой стратегии. Простейший подход: всё в одну с максимальным APY. Более зрелый: диверсификация по max_allocation_per_strategy (например, не более 50% в один протокол) плюс учёт liquidity (стратегия должна уметь вывести средства в разумные сроки).

Проблема gas при малых позициях

Harvest операция (клейм rewards + своп в базовый актив + реинвест) стоит $5-20 на mainnet Ethereum. Для vault с $10K TVL ежедневный harvest съедает 1-2% годовых — и может полностью уничтожить APY.

Решения:

Batch harvesting: harvest вызывается не по расписанию, а когда накопленный unrealized profit превышает порог gas cost * multiplier. Если ожидаемый profit $50, а harvest стоит $15 — выполняем. Если profit $5 — ждём.

L2-first стратегия: на Arbitrum или Base gas harvest в 100-500 раз дешевле. $50K TVL vault на Arbitrum может харвестить ежечасно без существенных потерь.

Gas optimization в самих контрактах: батчинг через Multicall3, использование ERC-2612 (permit) вместо отдельного approve, packed storage.

Сравнение APY: почему нельзя просто взять число с UI

APY, отображаемый на Aave, Compound, Curve — это не одна и та же метрика. Нельзя сравнивать их напрямую.

Aave: supplyAPY = (1 + supplyRatePerSecond)^(seconds_per_year) - 1. Включает base rate, не включает AAVE emissions отдельно.

Compound V3: supplyRate в wei per second. Plus COMP reward token, который нужно клеймить отдельно.

Curve + Convex: base APY из trading fees + CRV emissions (зависит от gauge weight голосования) + CVX rewards + any extra rewards. Итого 4-5 отдельных потоков.

Morpho: оптимизирует Aave/Compound ставки через peer-to-peer matching. APY выше базового, но зависит от utilization peer-to-peer слоя.

Нормализация: все rewards конвертируем в USD по текущей цене (Chainlink oracle), считаем total_yield_per_day / tvl * 365. Это comparable APY. Для forward-looking: используем 7-дневное скользящее среднее, а не spot rate.

Риски и защиты

Strategy loss: стратегия может потерять средства (exploit в Aave, Compound, или другом протоколе). Vault должен иметь механизм отчётности убытков через report() без panic. OpenZeppelin Vault guard: если стратегия репортит убыток больше X% — emergency exit, средства уходят из стратегии.

Withdrawal queue: пользователь хочет вывести $1M, но только $200K свободно в vault (остальное в стратегиях). Нужна очередь: сначала free balance, потом постепенный withdraw из стратегий в порядке приоритета (наименее рискованные сначала).

Rugpull через governance: владелец vault не должен иметь возможность мгновенно перевести funds на любой адрес. Все изменения стратегий — через timelock 48 часов. Emergency function (вывод всех средств) — только на заранее одобренный адрес (multisig).

Инструменты и стек

Foundry для контрактов и тестов. OpenZeppelin для базовых блоков (ERC-4626 base implementation, AccessControl, ReentrancyGuard). The Graph для индексирования событий vault (deposits, withdrawals, harvests) — необходим для analytics dashboard.

Off-chain keeper: TypeScript + viem, runs on Railway или собственном VPS. Cron-like scheduler для проверки harvest conditions каждые 15 минут. Tenderly для simulation перед отправкой реальных транзакций.

Процесс работы

Архитектура и стратегии (1 неделя). Выбор целевых протоколов, определение allocation логики, gas threshold моделирование.

Core vault + базовая стратегия (2 недели). ERC-4626 vault, одна стратегия (Aave или Compound), keeper для harvest.

Дополнительные стратегии (1 неделя на стратегию). Интеграция с Curve, Morpho, Convex по мере необходимости.

APY engine + frontend data (1 неделя). Off-chain сервис нормализации APY, API для frontend.

Аудит. Рекомендован для любого публичного vault с чужими средствами.

Сроки: простой single-strategy vault на одной сети — 2-3 недели. Multi-strategy с keeper, APY engine и аналитикой — 2-3 месяца. Стоимость рассчитывается после уточнения целевых протоколов.