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







