Appearance
How It Works ​
Deposit Flow ​
- User deposits USDC into the KanaVault
- Vault mints kUSDC shares proportional to the deposit relative to total vault assets
- Vault forwards USDC to the active strategy which splits it across lending protocols according to configured allocation weights
Yield Generation ​
Each protocol generates yield differently:
- Yei Finance — aToken balances grow automatically via interest accrual
- Takara — cToken exchange rate increases + COMP reward tokens
- Morpho — P2P optimized lending rates, often higher than pool rates
The strategy's balanceOf() function reports the total value across all protocols, which is how the vault calculates share prices.
Harvesting & Compounding ​
The keeper bot periodically calls harvestWithSlippage() on the strategy:
- Fetches Merkl proofs for Morpho rewards from
https://api.merkl.xyz/v4/claim?user={strategyAddress}&chainId=1329 - Calculates fair prices for reward swaps using Sailor DEX quotes
- Applies 1% slippage tolerance to determine minimum output amounts
- Claims accrued rewards from all protocols (including Merkl distributor for Morpho)
- Swaps non-USDC rewards to USDC with slippage protection (reverts if price is manipulated)
- Reports yield to the vault (which takes its performance fee)
- Redeposits the remaining USDC back into lending protocols
Withdrawal Flow ​
Withdrawals pull funds proportionally from all protocols. This avoids concentration risk and ensures no single protocol is drained first.
Rebalancing ​
When APYs shift significantly, the keeper bot rebalances:
- Monitors APYs across all protocols
- Compares current allocation vs optimal allocation
- If the delta exceeds a threshold, triggers a rebalance
- Withdraws from lower-yield protocols, deposits into higher-yield ones
- Sends Telegram alert with details