Розробка системи автокомпаундингу для стейкингу
Автокомпаундинг — автоматичне реінвестування винагород стейкингу назад у позицію. Без нього користувач отримує винагороди до гаманця та повинен вручну переставити їх. З ним — складні відсотки працюють автоматично. Різниця між 10% APY без компаундингу та 10.47% з щоденним компаундингом здається малою, але на позиції $1M за 3 роки це $150K+ додаткових.
Математика оптимальної частоти
Формула для ефективного APY при компаундингу n разів на рік:
APY_effective = (1 + APR/n)^n - 1
Але кожен компаундинг коштує газу. Оптимальна частота:
n_optimal = APR × Position_Size / (2 × Gas_Cost)
При 10% APR, позиції $50K, $10 газу за транзакцію:
n = 0.10 × 50000 / (2 × 10) = 250 разів на рік = кожні 1.46 дні
Перерахувати динамічно при зміні ціни газу та розміру позиції.
On-chain vs Off-chain реалізація
Off-chain keeper (найпоширеніший): зовнішній сервіс (бот) періодично викликає функцію compound() в контракті. Chainlink Automation, Gelato, або власний keeper. Вимагає оплати газу.
On-chain trigger: сам контракт ініціює компаундинг при кожній новій операції (deposit/withdraw). Додатковий газ для користувачів, але автоматично.
Vault контракти (ERC-4626): стандарт для yield-bearing vault'ів. Автокомпаундинг — частина стандартного функціоналу. Протоколи типу Yearn Finance використовують цей паттерн.
// ERC-4626 натхнений автокомпаундинг
function deposit(uint256 assets, address receiver) external returns (uint256 shares) {
_compound(); // Claim та реінвест накопленої винагороди
uint256 totalAssets = totalAssets(); // Після компаундингу
shares = assets.mulDivDown(totalSupply, totalAssets);
_mint(receiver, shares);
asset.safeTransferFrom(msg.sender, address(this), assets);
}
Мультипротокольний компаундинг
Розвинені системи компаундять через кілька етапів:
- Claim винагород в token винагород (напр., CRV)
- Swap CRV у USDC через Uniswap
- Додати USDC до Curve пулу
- Переставити LP токени назад у Convex
Кожен етап — окрема транзакція або атомарний пакет через Multicall. Складна ланцюжок вимагає ретельного тестування: якщо один етап не вдасться — весь компаундинг може застрягнути.
Zap контракти: атомарний swap та компаундинг в одній транзакції. Економія газу, кращий UX.
Система автокомпаундингу — 3-6 тижнів розробки залежно від числа підтримуваних протоколів.







