Vaults 101¶
ELI5: A vault pools many users' tokens and invests them via strategies. You get shares whose value goes up when the pool earns yield — like a mutual fund unit.
ERC-4626 standard¶
Keep implements ERC-4626 (tokenized vault):
| Action | You send | You receive |
|---|---|---|
deposit(assets) |
USDC | Vault shares (e.g. kkUSD) |
withdraw(shares) |
Shares | USDC |
Share price = total assets / total shares. As strategies earn, total assets rise → each share worth more.
Keep's multi-strategy design¶
Keep splits USDC across strategies:
- Priority 0: CoilMakerStrategy (proprietary Coil spread)
- Fallback: Curve TARE LP, Aave, Compound, Morpho
total_idle (cash in vault) + total_debt (deployed) = totalAssets. Donations cannot inflate share price — assets tracked in storage.
Tranches (optional layer)¶
TranchedVault splits one vault into:
- Senior (skUSD) — fixed APR, paid first
- Junior (jkUSD) — first loss, captures excess yield
Flywheel connection¶
Keep is the revenue accumulator in FLYWHEEL 2.0:
- Receives Coil
keep_bpsfees - Receives TARE surplus emission slice
- Deploys to CoilMakerStrategy first
- Gauge votes steer allocation weights
See Keep hub.
What can go wrong¶
Vault risks — different from TARE engine
- Admin roles (
STRATEGY_MANAGER_ROLE) can add strategies and set limits — should be timelock/multisig. - Strategy loss socialized across shareholders.
- Smart routing depends on keeper-updated APR — operational assumption.
Deep dive: inflation attacks
Keep uses virtual shares (DECIMALS_OFFSET) and storage-only totalAssets to resist donation inflation attacks. See MultiStrategyVault docs.