Base URL:
GET https://yieldlayer.cian.app/{chain_name}/pool
Supported {chain_name}
values:
Overview
Each vault is an ERC4626 vault. The underlying asset can be retrieved using the asset()
function.
1. Chain Vaults List
Endpoint:
Description:
Retrieve the list of all vaults on the specified chain.
Example:
Response Fields:
tvl_usd
: The TVL in USD after leverage.
net_tvl_usd
: The TVL in USD users deposited.
apy_7
: 7-day average APY, divided into:
apy_instant_7: Reflected in receipt token prices.
apy_esti_by_points_7: Estimated APY from points earned.
apy_eco_earn_7: Ecosystem-specific APY (e.g., stETH Yield Layer).
CIAN POINTS ARE NOT CALCULATED.
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": "22.5235",
"apy_7": "22.5235",
"apy_instant_7": "8.5235",
"apy_esti_by_points_7": "4",
"apy_eco_earn_7": "10",
"tvl_usd": "392058499.97",
"net_tvl_usd": "66076130.15"
},
...
]
}
2. Vault Config
Endpoint:
/home/vault/:vault_address
Description:
Retrieve configuration details for a specific vault.
Example:
https://yieldlayer.cian.app/ethereum/pool/home/vault/0xB13aa2d0345b0439b064f26B82D8dCf3f508775d
Response Fields:
fee_info.exit
: Exit fee, 0.02 for 0.02%
fee_info.performance
: Performance fee, 8 for 8%
conf.min_deposit
& conf.min_withdraw
: Minimum deposit/withdrawal limits (applicable only on Cian's frontend).
{
"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": "125000",
"apy": "22.5235",
"apy_7": "22.5235",
"apy_instant_7": "8.5235",
"apy_esti_by_points_7": "4",
"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 Tvls Info
Endpoint:
/home/vault/tvl/:vault_address
Description:
Retrieve TVL and related statistics for a specific vault.
Example:
https://yieldlayer.cian.app/ethereum/pool/home/vault/tvl/0xB13aa2d0345b0439b064f26B82D8dCf3f508775d
Response Fields:
tvl_base
: Vault's asset (ERC4626 asset()
, e.g., WETH for stETH Yield Layer; FBTC for FBTC Yield Layer) TVL after leverage.
points_accumulated
: The points earned by this vault.
For some protocols, points will be distributed directly to the users and we do not receive the points.
{
"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"
}
}
}
}
4. User Info
Endpoint:
/home/vault/user/:vault_address
Params:
Description:
Retrieve user-specific information for a vault.
Example:
https://yieldlayer.cian.app/ethereum/pool/home/vault/user/0xB13aa2d0345b0439b064f26B82D8dCf3f508775d?user_address=0x427BBA37B4E6486B2de3b4678844EDf1909eA56B
Response Fields:
principal
: User’s deposited amount.
assets
: Current assets owned by the user.
earnings
: User’s earnings in the vault.
points
: Points earned by 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"
}
}
}
}
5. Vault History
Endpoint:
/home/vault/history/:vault_address
Params:
Description:
Retrieve the historical data of a vault, including TVL, APY, and holders list in hour basis.
Example:
https://yieldlayer.cian.app/ethereum/pool/home/vault/history/0xB13aa2d0345b0439b064f26B82D8dCf3f508775d
Response Fields:
Return the vault history for every hour, including tvl, apy and all holders list.
holders[i].amount
: The receipt token user holds.
holders[i].weight
: The ratio user takes in the whole vault.
{
"code": "ok",
"status": 0,
"msg": "server response ok",
"data": [
{
"vault_address": "0xB13aa2d0345b0439b064f26B82D8dCf3f508775d",
"timestamp": 1733119200,
"tvl_usd": "411559654.94007585",
"tvl_base": "111906.500224345",
"net_tvl_usd": "70622027.170377447",
"net_tvl_base": "19202.717770128",
"apy": "14.626845842",
"apy_theoretic": "14.280446129",
"total_supply": "19753.615235941726521928",
"holders": [
{
"address": "0xD126DD36d66F02C738395d94F5e10467c29A4c66",
"amount": "0.277487519480792635",
"weight": "0.0000140474296055"
},
{
"address": "0x83b27107441800E511dAA32DcF4ad11D95C95298",
"amount": "1.830340935482094906",
"weight": "0.0000926585292677"
},
...
]
},
...
]
}
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.