ZenSats Documentation
ZenSats is an ERC4626 vault system that automates collateralized carry trades. You deposit collateral (WBTC, wstETH, or other supported assets), the vault borrows stablecoins through a loan manager, and deploys the borrowed capital into a yield strategy. You earn the spread.
Two Forms of Collateral Accounting
The vault tracks value in collateral units using two buckets: direct collateral (collateral token held in vault + loan manager) and debt-side value (strategy and idle debt assets converted back to collateral-equivalent value via loan manager pricing).
How It Works
- Deposit collateral: You deposit the vault asset and receive ERC4626 shares.
- Borrow debt asset: The vault posts collateral in the loan manager and borrows stablecoins at a target LTV.
- Deploy strategy: Borrowed stablecoins are routed into the active yield strategy (currently: USDT -> crvUSD -> pmUSD/crvUSD LP -> StakeDAO).
- Permissionless upkeep: Anyone can call
rebalance(),harvestYield(), andaccrueYieldFees(). - Redeem shares: Withdraw/redeem burns shares and returns collateral, including unwind logic when needed.
Admin Model (Restricted Powers)
- Owner can tune bounded parameters, toggle idle mode, withdraw protocol fees, and run emergency unwind flows. Cannot swap the loan manager or strategy.
- Gov has a narrow role: swapper contract changes only, via propose/execute/cancel with a 1-week timelock. The vault validates swapper output against oracle pricing.
- No arbitrary user-fund drain path: collateral/debt tokens cannot be rescued via generic rescue function.
- Emergency mode is one-way: once enabled, it cannot be switched off.
Current Live Vault Family
- WBTC Aave-RAAC crvUSD/pmUSD
- wstETH Aave-RAAC crvUSD/pmUSD
Legacy deployments may remain visible for historical withdrawals or analytics, but new deposits should use active vaults.