{"protocol":"Zenji (ZenSats)","description":"Automated carry trade vaults. Deposit collateral (WBTC, wstETH, XAUT), borrow stables against it, earn yield on the spread.","network":"Ethereum Mainnet (chainId: 1)","docsUrl":"https://zensats.app/llms.txt","timestamp":"2026-06-21T11:59:22.233Z","vaults":[{"slug":"wbtc-pmusd","vaultAddress":"0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739","viewHelperAddress":"0x0aDC622F11D8fA2F3E4709D037e95010a651471A","loanManagerAddress":"0x25a1b8262f9644F00Fc80F11eF8cc2Ea1b74BDE3","oracleAddress":"0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c","chainId":1,"depositAsset":{"symbol":"WBTC","address":"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599","decimals":8},"strategy":"Borrow USDT on Aave V3 -> swap to crvUSD via Curve -> LP in RAAC crvUSD/pmUSD pool -> stake in StakeDAO","standard":"ERC-4626","state":{"totalAssets":"15033653","totalAssetsFormatted":"0.15033653","totalSupply":"14933002","pricePerShare":"100674017","pricePerShareFormatted":"1.00674017","tvlUsd":9642,"assetPriceUsd":64139.9172,"currentLtvPct":0,"apr24hBps":"0","apr7dBps":"0","snapshotTimestamp":1782039601},"howToDeposit":{"step1_approve":"Call approve(\"0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739\", amount) on 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599. Amount uses 8 decimals.","step2_deposit":"Call deposit(amount, receiverAddress) on 0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739. Returns shares minted.","preview":"Call previewDeposit(amount) on 0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739 to see expected shares."},"howToWithdraw":{"redeem":"Call redeem(shares, receiverAddress, ownerAddress) on 0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739. Returns collateral amount.","withdraw":"Call withdraw(assets, receiverAddress, ownerAddress) on 0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739. Returns shares burned.","checkMax":"Call maxRedeem(ownerAddress) or maxWithdraw(ownerAddress) on 0x617A6877f0a55D1eF2B64b5861A2bB5Fe6FEB739."}},{"slug":"wsteth-pmusd","vaultAddress":"0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1","viewHelperAddress":"0xc99e21f05722230E7B5A26f9De1Db415080c872E","loanManagerAddress":"0x10a0Cec186B5B5365E9D8b671cE423b4eCbDeeCc","oracleAddress":"0x557460ee98E32e57d520CcBFB50Ca412EbA5d0c2","chainId":1,"depositAsset":{"symbol":"wstETH","address":"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0","decimals":18},"strategy":"Borrow USDT on Aave V3 against wstETH -> swap to crvUSD via Curve -> LP in RAAC crvUSD/pmUSD pool -> stake in StakeDAO","standard":"ERC-4626","state":{"totalAssets":"406358470030060166","totalAssetsFormatted":"0.406358470030060148","totalSupply":"405110938409689097","pricePerShare":"1003079481450854923","pricePerShareFormatted":"1.003079481450855015","tvlUsd":870,"assetPriceUsd":2141.56427353,"currentLtvPct":0,"apr24hBps":"0","apr7dBps":"0","snapshotTimestamp":1782039601},"howToDeposit":{"step1_approve":"Call approve(\"0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1\", amount) on 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0. Amount uses 18 decimals.","step2_deposit":"Call deposit(amount, receiverAddress) on 0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1. Returns shares minted.","preview":"Call previewDeposit(amount) on 0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1 to see expected shares."},"howToWithdraw":{"redeem":"Call redeem(shares, receiverAddress, ownerAddress) on 0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1. Returns collateral amount.","withdraw":"Call withdraw(assets, receiverAddress, ownerAddress) on 0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1. Returns shares burned.","checkMax":"Call maxRedeem(ownerAddress) or maxWithdraw(ownerAddress) on 0xbaEc8343B610A5ee7Ca2c5b93507AC7def98E2B1."}},{"slug":"xaut-pmusd","vaultAddress":"0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD","viewHelperAddress":"0x40c2D606Ce9E060Bef7374951BaE4Ca6906517BD","loanManagerAddress":"0x55aE1060c67eB78E6f655dfcDE4386bbB063bEB5","oracleAddress":"0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6","chainId":1,"depositAsset":{"symbol":"XAUT","address":"0x68749665FF8D2d112Fa859AA293F07A622782F38","decimals":6},"strategy":"Borrow USDT on Aave V3 against Tether Gold -> swap to crvUSD via Curve -> LP in RAAC crvUSD/pmUSD pool -> stake in StakeDAO","standard":"ERC-4626","state":{"totalAssets":"35221","totalAssetsFormatted":"0.035221","totalSupply":"28326","pricePerShare":"1243415","pricePerShareFormatted":"1.243415","tvlUsd":146,"assetPriceUsd":4158.355,"currentLtvPct":0,"apr24hBps":"-2176","apr7dBps":"5427","snapshotTimestamp":1782039601},"howToDeposit":{"step1_approve":"Call approve(\"0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD\", amount) on 0x68749665FF8D2d112Fa859AA293F07A622782F38. Amount uses 6 decimals.","step2_deposit":"Call deposit(amount, receiverAddress) on 0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD. Returns shares minted.","preview":"Call previewDeposit(amount) on 0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD to see expected shares."},"howToWithdraw":{"redeem":"Call redeem(shares, receiverAddress, ownerAddress) on 0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD. Returns collateral amount.","withdraw":"Call withdraw(assets, receiverAddress, ownerAddress) on 0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD. Returns shares burned.","checkMax":"Call maxRedeem(ownerAddress) or maxWithdraw(ownerAddress) on 0x7d5281D590Fb0647aDc7d8494a2c8Fb8C2B23cBD."}}],"onChainFunctions":{"description":"Call these directly on the smart contracts for real-time data. Each vault has its own vaultAddress, viewHelperAddress, and loanManagerAddress listed above.","vault":{"totalAssets()":"returns uint256 — total collateral managed","totalSupply()":"returns uint256 — total shares outstanding","convertToShares(uint256 assets)":"returns uint256 — shares for given assets","convertToAssets(uint256 shares)":"returns uint256 — assets for given shares","maxDeposit(address)":"returns uint256 — max depositable (0 means paused)","maxWithdraw(address owner)":"returns uint256 — max assets owner can withdraw","maxRedeem(address owner)":"returns uint256 — max shares owner can redeem","previewDeposit(uint256 assets)":"returns uint256 — expected shares for deposit","previewRedeem(uint256 shares)":"returns uint256 — expected assets for redemption","idle()":"returns bool — true if deposits held but not deployed","emergencyMode()":"returns bool — true if withdrawals only","depositCap()":"returns uint256 — max total deposits","targetLtv()":"returns uint256 — target LTV (1e18 precision, divide by 1e16 for %)","feeRate()":"returns uint256 — performance fee (1e18 precision, divide by 1e16 for %)","rebalanceBountyRate()":"returns uint256 — rebalance caller reward rate (1e18 precision)","MIN_DEPOSIT()":"returns uint256 — minimum deposit in asset decimals","harvestYield()":"permissionless — compounds yield rewards","rebalance()":"permissionless — rebalances LTV if outside deadband"},"viewHelper":{"getHealth(address vault)":"returns int256 — vault health factor","isRebalanceNeeded(address vault)":"returns bool — true if LTV outside deadband","getTotalCollateralValue(address vault)":"returns uint256 — total value in collateral units","getUserValue(address vault, address user)":"returns uint256 — user position in collateral units"},"loanManager":{"getCurrentLTV()":"returns uint256 — current LTV (1e18 precision, divide by 1e16 for %)","getCurrentDebt()":"returns uint256 — outstanding debt in debt asset decimals","getCurrentCollateral()":"returns uint256 — collateral supplied in asset decimals"}}}