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

  1. Deposit collateral: You deposit the vault asset and receive ERC4626 shares.
  2. Borrow debt asset: The vault posts collateral in the loan manager and borrows stablecoins at a target LTV.
  3. Deploy strategy: Borrowed stablecoins are routed into the active yield strategy (currently: borrow crvUSD on LlamaLend -> LP in Curve crvUSD/USDT pool -> stake in StakeDAO).
  4. Permissionless upkeep: Anyone can call rebalance(), harvestYield(), and accrueYieldFees().
  5. 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 Vaults

  • WBTC LlamaLend + StakeDAO (wbtc-llamalend) — borrow crvUSD, earn in crvUSD/USDT LP
  • wstETH LlamaLend + StakeDAO (wsteth-llamalend) — same strategy on wstETH collateral

These vaults are marked Testing in the UI while TVL ramps. Implied carry is shown as LTV × (StakeDAO yield APR − LlamaLend borrow APY) on the stats page.

Legacy Vaults (withdraw-only)

  • WBTC Aave-RAAC crvUSD/pmUSD (wbtc-pmusd)
  • wstETH Aave-RAAC crvUSD/pmUSD (wsteth-pmusd)
  • XAUT Aave-RAAC crvUSD/pmUSD (xaut-pmusd)

Legacy vaults no longer accept new deposits (maxDeposit() returns 0). Existing share holders can withdraw.

Read Next

Before Depositing

Read the Risks section and verify addresses in Contracts.