Cian Yield Layer Docs

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

/home/vaults

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:

paramtyperequired

user_address

string

Yes

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.

Example:

optionalDeposit(WBTC, 100, UserAddress, ReferralAddress) Means UserAddress deposits 100 satoshit 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(100) Means user wants to redeem 100 shares.

Last updated