Як побудувати агрегатор DeFi-доходності?
Кілька років тому Yearn Finance сформулював ідею, яка залишається актуальною: користувач не повинен вручну моніторити десятки протоколів у пошуках найкращого APY. Ми проєктуємо vault, який приймає депозит, а стратегія автоматично розміщує кошти в найкращому протоколі, реінвестує доходність і перемикається при зміні умов. Користувач отримує yvToken і більше ні про що не думає. Наш досвід показує, що побудувати агрегатор — означає вирішити кілька непов'язаних інженерних задач одночасно: on-chain vault з безліччю стратегій, off-chain keeper для автоматизації, система порівняння APY з нормалізацією та газ-оптимізація, яка не з'їдає всю доходність. Ми гарантуємо високу якість коду та безпеку на всіх етапах.
Як влаштована архітектура multi-strategy vault?
Базова ERC-4626 vault
ERC-4626 — сучасний стандарт токенізованого vault. Він визначає єдиний інтерфейс: deposit(), withdraw(), convertToShares(), convertToAssets(). Vault випускає shares (ERC-20 токени), price per share зростає в міру накопичення доходності. Ключова перевага 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 розподіляє кошти між ними за вагами (allocator). Кожна стратегія — окремий контракт, що реалізує інтерфейс IStrategy з методами harvest(), report(), withdraw(). Типові стратегії для USDC vault:
| Стратегія | Базовий APY | Додаткові нагороди | Ризик |
|---|---|---|---|
| Aave V3 lending | ~5% | Немає | Низький (перевірений протокол) |
| Compound V3 | ~4-6% | COMP (клейм окремо) | Низький |
| Curve 3pool | ~2-4% | CRV, CVX | Середній (зміна gauge) |
| Morpho | ~6-8% | Немає | Середній (peer-to-peer шар) |
Allocator вирішує, скільки коштів тримати в кожній стратегії. Найпростіший підхід — все в одну з максимальним APY. Більш зрілий — диверсифікація з max_allocation_per_strategy (не більше 50% в один протокол) та врахування liquidity.
Чому ERC-4626 — основа сучасного vault?
Стандарт дозволяє легко інтегруватися з будь-якими DeFi-протоколами. Vault, що відповідає ERC-4626, може бути використаний як building block для інших продуктів: колатерал в lending, забезпечення StableSwap, компонент yield-bearing портфеля. Ми використовуємо OpenZeppelin імплементацію для надійної бази.
Gas optimization при малих позиціях
Harvest операція (клейм rewards + своп + реінвест) коштує $5-20 на mainnet Ethereum. Для vault з $10K TVL щоденний harvest з'їдає 1-2% річних. Рішення:
- Batch harvesting: викликається, коли unrealized profit перевищує поріг gas cost × multiplier. Якщо очікуваний profit $50, а harvest коштує $15 — виконуємо. Якщо profit менший — чекаємо.
- L2-first стратегія: на Arbitrum або Base gas harvest в 100-500 разів дешевше. $50K TVL на Arbitrum може харвестити щогодини без втрат. Економія на gas при TVL $1M може досягати $5000 на місяць.
- Gas optimization: батчінг через Multicall3, використання ERC-2612 (permit), packed storage.
| Мережа | Приблизний gas за harvest | TVL для окупності |
|---|---|---|
| Ethereum | $10-25 | >$200K |
| Arbitrum | $0.05-0.1 | >$10K |
| Base | $0.02-0.05 | >$5K |
Чому порівняння APY — нетривіальна задача?
APY, що відображається на Aave, Compound, Curve — це не одна й та сама метрика. Aave: supplyAPY = (1 + supplyRatePerSecond)^(seconds_per_year) - 1, не включає AAVE emissions. Compound: supplyRate в wei per second, COMP reward окремо. Curve + Convex: base APY з trading fees + CRV + CVX + extra rewards — всього 4-5 потоків. Morpho: APY вищий за базовий завдяки peer-to-peer matching.
Нормалізація: всі rewards конвертуємо в USD по Chainlink oracle, рахуємо total_yield_per_day / tvl * 365. Це comparable APY. Для forward-looking використовуємо 7-денне ковзне середнє.
Які ризики та захисти ми передбачаємо?
-
Strategy loss: стратегія може втратити кошти (exploit). Vault має механізм
report()з emergency exit при збитку >X%. - Withdrawal queue: користувач виводить $1M — спочатку free balance, потім поступовий withdraw зі стратегій у порядку пріоритету.
- Rugpull через governance: всі зміни стратегій проходять через timelock 48 годин. Emergency function — тільки на заздалегідь схвалений multisig.
Які інструменти використовуємо?
Foundry для контрактів та тестів. OpenZeppelin (ERC-4626, AccessControl, ReentrancyGuard). The Graph для індексування подій. Off-chain keeper: TypeScript + viem, запуск на Railway або VPS. Tenderly для simulation.
Як ми працюємо?
- Архітектура та стратегії (1 тиждень): вибір протоколів, allocation логіка, gas threshold.
- Core vault + базова стратегія (2 тижні): ERC-4626, Aave/Compound, keeper.
- Додаткові стратегії (1 тиждень на стратегію): Curve, Morpho, Convex.
- APY engine + frontend data (1 тиждень): сервіс нормалізації, API.
- Аудит (за бажанням).
Терміни та вартість варіюються: від 2 тижнів до 3 місяців, ціна — від $15 000 до $60 000 залежно від кількості стратегій та мереж. Точну оцінку даємо після затвердження ТЗ.
Що входить в роботу
- Документація архітектури та інтерфейсів.
- Вихідні коди смарт-контрактів та keeper.
- Тести (unit, integration, fuzzing) з покриттям >90%.
- Інструкція з деплою та експлуатації.
- Технічна підтримка на етапі запуску.
- Можливість навчання вашої команди.
Вже понад 5 років ми розробляємо DeFi-рішення, реалізували 30+ проектів і запустили 10+ vault на mainnet. Gas optimization та rebalancing — наші ключові компетенції.
Замовте розробку агрегатора DeFi-доходності — зв'яжіться з нами для обговорення технічного завдання. Отримайте консультацію з архітектури та термінів.







