url: GET https://yieldlayer.cian.app/{chain_name}/pool
chain_name: ethereum / arbitrum
Basic
Each vault is an ERC4626 vault, you can get the asset by `asset()` function.
1. Chain Vaults List
The list of vaults on this chain.
Example:
Return:
{
"code": "ok",
"status": 0,
"msg": "server response ok",
"data": [
{
"chain_id": 1,
"pool_name": "stETH Yield Layer",
"pool_address": "0xB13aa2d0345b0439b064f26B82D8dCf3f508775d",
"pool_type": "yield-layer",
"apy": "12.779658299",
"tvl_usd": "95920581.86",
"net_tvl_usd": "11433655.69"
},
...
]
}
2. Vault Config
/home/vault/:vault_address
Get the configs of a certain vault.
Example:
Return:
fee_info.exit
: Exit fee, 0.02 for 0.02%
fee_info.performance
: Performance fee, 8 for 8%
{
"code": "ok",
"status": 0,
"msg": "server response ok",
"data": {
"chain_id": 1,
"pool_name": "stETH Yield Layer",
"pool_address": "0xB13aa2d0345b0439b064f26B82D8dCf3f508775d",
"pool_type": "yield-layer",
"created_at": "2024-06-12T15:00:21Z",
"deposit_capacity": "45000",
"apy": "12.779658299",
"net_apy": "11.75728563508",
"tvl": "39807.664984646",
"tvlUsd": "95920581.860476976",
"fee_info": {
"exit": "0.02",
"performance": "8",
"management": "0",
"reserve_fund": "0"
},
"conf": {
"gas_limit": "1500000",
"min_deposit": "0.05",
"min_withdraw": "0.05",
"safety_level": "4"
}
}
}
```
3. Vault Apy Info
/home/vault/reward/:vault_address
Get the apy info.
Example:
It is suggested to directly use the apy given in 1. Chain Vaults List or 5. Asset Allocation
4. Vault Tvls Info
/home/vault/tvl/:vault_address
Example:
Return:
For stETH Yield Layer, the asset is WETH, so is based on WETH. In other cases, for example, FBTC Yield Layer, tvl_base
represents the FBTC amount.
points_accumulated
: The points gathered by this vault.
{
"code": "ok",
"status": 0,
"msg": "server response ok",
"data": {
"id": 21179,
"vault_address": "0xB13aa2d0345b0439b064f26B82D8dCf3f508775d",
"time": "2024-10-11T08:01:31Z",
"tvl_usd": "95920581.860476976",
"tvl_base": "39807.664984646",
"tvl_eth": "39807.664984646",
"net_tvl_usd": "11433655.689450938",
"net_tvl_base": "4745.041433313",
"net_tvl_eth": "4745.041433313",
"points_accumulated": {
"cian": {
"vault_history_earned": "287800",
"vault_balance": "287800",
"transferred_to_user": "0",
"difference": "0"
},
"mellow": {
"vault_history_earned": "39464.873",
"vault_balance": "39464.873",
"transferred_to_user": "0",
"difference": "21.777"
},
"symbiotic": {
"vault_history_earned": "39464.8733641944",
"vault_balance": "39464.8733641944",
"transferred_to_user": "0",
"difference": "21.7769288103"
}
}
}
}
5. Asset Allocation
/home/vault/distribution/:vault_address
The detail of each strategy's apy and asset allocation.
Example:
Return:
We use xxx_display
on our frontend.
leverage_overall_display
: The strategy's weight of the vault.
apy_strategy_display
: The apy of the strategy.
apy_overall_display
: The apy this stratrgy contributes to the entire vault.
{
"code": "ok",
"status": 0,
"msg": "server response ok",
"data": {
"distribution": [
{
"chain_id": 1,
"network": "ethereum",
"name": "aavev3lido wsteth recursive staking",
"type": "wstETH Recursive Staking",
"contract": "0x07833EAdF87CD3079da281395f2fBA24b61F90f7",
"layer": 2,
"protocols": ["aavev3lido", "lido"],
"yield_sources": ["Supply wstETH Yield", "Borrow WETH Yield", "stETH Rebase Yield"],
"leverage_overall_current": "0.637380359",
"leverage_overall_theoretic": "0.76",
"leverage_overall_display": "0.637380359",
"apy_overall_current": "11.805472573",
"apy_overall_theoretic": "11.545733644",
"apy_overall_display": "11.805472573",
"apy_strategy_current": "18.5218643880427448",
"apy_strategy_theoretic": "15.1917547947368421",
"apy_strategy_display": "18.5218643880427448"
},
{
"chain_id": 1,
"network": "ethereum",
"name": "stETH Yield Layer",
"type": "Hold",
"contract": "0xB13aa2d0345b0439b064f26B82D8dCf3f508775d",
"layer": 1,
"protocols": ["lido"],
"yield_sources": ["stETH Rebase Yield"],
"leverage_overall_current": "0.354933943",
"leverage_overall_theoretic": "0",
"leverage_overall_display": "0.354933943",
"apy_overall_current": "0.950409137",
"apy_overall_theoretic": "0",
"apy_overall_display": "0.950409137",
"apy_strategy_current": "2.6777070937957602",
"apy_strategy_theoretic": "0",
"apy_strategy_display": "2.6777070937957602"
},
{
"chain_id": 1,
"network": "ethereum",
"name": "strategy steakLRT",
"type": "stETH Restaking",
"contract": "0xFed44EdF4560DC09271d3a7d514B843F789540A5",
"layer": 2,
"protocols": ["lido", "mellow", "symbiotic"],
"yield_sources": ["stETH Rebase Yield", "Restake Yield"],
"leverage_overall_current": "0.007685697",
"leverage_overall_theoretic": "0.24",
"leverage_overall_display": "0.007685697",
"apy_overall_current": "0.023931066",
"apy_overall_theoretic": "0.747291429",
"apy_overall_display": "0.023931066",
"apy_strategy_current": "3.1137144750827414",
"apy_strategy_theoretic": "3.1137142875",
"apy_strategy_display": "3.1137144750827414"
}
]
}
}
6. User Info
/home/vault/user/:vault_address
Params:
Example:
Return:
principal
: The amount user deposited.
assets
: The amount currently belong to user.
earnings
: The amount of asset user earned.
points
: The points belong to the user.
{
"code": "ok",
"status": 0,
"msg": "server response ok",
"data": {
"total_supply": "4696.341398469461731647",
"vault_net_assets": "4742.674286984195394669",
"user_shares": "1994.27561111999753851",
"user_weight": "0.4246445140827991",
"principal": {
"asset": "2000",
"usd": "4614740",
"eth": "2000"
},
"assets": {
"asset": "2013.950618049",
"usd": "4862445.919712259",
"eth": "2013.950618049"
},
"earnings": {
"asset": "13.950618049",
"usd": "247705.919712259",
"eth": "13.950618049"
},
"points": {
"cian": {
"history": "113051.20245037841914",
"balance": "113051.20245037841914",
"claimed": "0"
},
"mellow": {
"history": "8828.5857861136639136218",
"balance": "8828.5857861136639136218",
"claimed": "0"
},
"symbiotic": {
"history": "8828.58629611259937396226190871",
"balance": "8828.58629611259937396226190871",
"claimed": "0"
}
}
}
}
Cian Yield Layer ABI
Deposit
optionalDeposit(address _token, uint256 _assets, address _receiver, address _referral) returns (uint256 _shares)
Before calling this function, user should approve the contract to spend the token (token can be WBTC / FBTC / pumpBTC).
Example:
optionalDeposit(WBTC, 1e8, UserAddress, ReferralAddress) Means UserAddress deposits 1 WBTC to the vault, and ReferralAddress gets the referral fee.
Return:
_shares
: The amount of shares user gets.
Also emits event: OptionalDeposit(msg.sender, _token, _assets, _receiver, _referral)
Withdraw
requestRedeem(uint256 _shares)
Will transfer the assets from the user's address to redeemer address, and request to redeem the shares to tokens.
Example:
requestRedeem(1e8) Means user wants to redeem 1 shares.