CIAN Yield Layer Tech Docs

Base URL:

GET https://yieldlayer.cian.app/{chain_name}/pool

Supported {chain_name} values:

  • ethereum

  • arbitrum

  • bsc

  • sei

Overview

Each vault is an ERC4626 vault. The underlying asset can be retrieved using the asset() function.

1. Chain Vaults List

Endpoint:

/home/vaults

Description:

Retrieve the list of all vaults on the specified chain.

Example:

Response Fields:

  • pool_name: The name displayed on frontend. Might be changed.

  • pool_address: Yield layer contract address.

  • public: If the yield layer is listed on the landing page.

  • 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 INCLUDED.

Return:

2. Vault Config

Endpoint:

Description:

Retrieve configuration details for a specific vault.

Example:

Response Fields:

  • deposit_capacity: The capacity to control deposition on frontend. Depositing directly through contract is not affected.

  • fee_info.exit: Initial exit fee, 0.02 for 0.02%

  • fee_info.exit_override: The actual exit fee applied by the contract, 0.02 for 0.02%

  • fee_info.management: Anual management fee.

  • fee_info.performance: Performance fee, 8 for 8%

  • conf.min_deposit & conf.min_withdraw: Minimum deposit/withdrawal limits (applicable only on Cian's frontend).

  • current_holders_count & history_holders_count: Holders counted by history evnets.

3. Vault Tvls Info

Endpoint:

Description:

Retrieve TVL and related statistics for a specific vault.

Example:

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.

4. User Info

Endpoint:

Params:

param

type

required

user_address

string

Yes

Description:

Retrieve user-specific information for a vault.

Example:

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.

  • received_airdrops: For some yield layers like USD1 Yield Layer and slisBNB Yield Layer, we record the airdrop distribution tx.

5. Vault History

Endpoint:

Params:

param

type

required

Default

limit

int

No

100

Description:

Retrieve the historical data of a vault, including TVL, APY, and holders list in hour basis.

Example:

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.

6. Apy breakdown

Endpoint:

Description:

Retrieve apy && allocation details for a specific vault.

Example:

Response Fields:

  • strategies.id: The ID to identify the strategy.

  • strategies.weight: Allocation percentage.

7. Pending withdraw

Endpoint:

Description:

Get pending withdraw list for a specific vault.

Example:

Response Fields:

8. Confirmed withdraw

Endpoint:

Description:

Get confirmed withdraw list for a specific user on a vault which ORDER BY [block] DESC.

Example:

Response Fields:

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.

Last updated

Was this helpful?