Skip to content

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_bps fees
  • 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.