Skip to main content

StandardizedYield (SY)

Overview

SY is a wrapped version of an yieldToken that can also be staked into other protocols to earn even more interest. In the Pendle system, SY is used instead of the yieldToken for all operations, including trading on PendleMarket or minting Principal Tokens (PT) and Yield Tokens (YT).

Minting and Redeeming SY

SY can usually be minted using tokenIn, with some exceptions. Remember, SY simply wraps the underlying yield token. Minting SY essentially buys the underlying token. Consequently, minting/redeeming behavior varies based on the underlying protocol. Here are some examples of quirks:

  • GLP: While purchasable with ETH, USDC, USDT, UNI, etc., caps on ETH & USDC are frequently reached, preventing their use for GLP acquisition. Therefore, SY-GLP, despite offering these tokens as tokenIn, may not guarantee their use for minting.
  • ankrBNB: Requires a minimum mint amount of 0.1 BNB. Minting SY-ankrBNB with less than 0.1 BNB will revert. Similarly, ankrBNB can only be withdrawn to BNB through a quick withdrawal pool with sufficient liquidity. Redeeming SY-ankrBNB might occasionally fail.
  • wstETH: Allows minting by staking ETH, but not vice versa. Consequently, SY-wstETH's getTokensIn includes ETH, but getTokensOut does not.

The most reliable way to mint/redeem SY is by using the protocol's yield token. However, hardcoding this is not recommended.

Preview Functions

The underlying protocol often lacks an explicit function for previewing the amount of mintable/redeemable tokens. SY's preview function, a best effort by the Pendle team, approximates the actual mint/redeem results. While its correctness is verified through testing, it is not audited, and on-chain use is discouraged.

Accrued Rewards Function

Similar to preview functions, the underlying protocol might not offer a way to preview a user's redeemable rewards. Therefore, SY's accruedRewards function only reflects accrued rewards for the user. To get the latest results, simulate claimRewards(user) through eth_call or staticCall.

Asset of SY / AssetInfo Function

Pendle is a derivative protocol that integrates a wide range of underlying protocols, each with its own unique mechanism. SY acts as an adapter for these protocols, and hence SY's metadata standard (AssetInfo function, what SY is wrapping) is not consistent and doesn't follow a strict standard, though Pendle tries its best to make it so.

The AssetInfo function returns the asset that represents the best estimation of what asset SY appreciates against and aims to enable a rough estimation of SY's value on-chain. It's important to note that it's an estimation because more often than not the asset doesn't exist. The address may not be on the same chain as the SY. For example, SY-wstETH on Arbitrum appreciates against stETH, but stETH doesn't exist on Arbitrum, so we set the address to be stETH's address on Ethereum instead.

SY's exchange rate represents how much asset a SY is worth. A 2x increase in the exchange rate means a SY is now worth double the amount of the underlying asset.

Standard SYs

Most SYs in Pendle are standard, 1-1 wrap of yieldToken. It's best to value PT/YT/LP by yieldToken (getPtToSy / getLpToSy). If not possible, value it by Asset but take into account the risk of not being able to withdraw from yieldToken to Asset (getPtToAsset / getLpToAsset). This is not to be considered an official security advisory in any way.

MarketRecommended way to get priceUnit of priceyieldToken of SY (1-1 wrap)NoteAsset of SY
weETHgetPtToSyweETHweETH-eETH
weETHsgetPtToSyweETHsweETHslimited liquidity to market sellweETHs (constant exchange rate)
weETHkgetPtToSyweETHkweETHklimited liquidity to market sellweETHk (constant exchange rate)
weETH (Karak)getPtToSyweETH (Karak)weETHk (Karak)can't market selleETH
USDegetPtToSyUSDeUSDe-USDe
sUSDegetPtToSysUSDesUSDe-USDe
pufETHgetPtToSypufETHpufETH-ETH staked on Puffer
pzETHgetPtToSypzETHpzETHlimited liquidity to market sellpzETH (constant exchange rate)
wstETHgetPtToSywstETHwstETH-stETH
GLPgetPtToSyGLPGLP-GLP
MUXLPgetPtToSyMUXLPMUXLPcan't market sellMUXLP
HLPgetPtToSyHLPHLPcan't market sellHLP
ezETHgetPtToSyezETHezETH-ETH staked on Renzo
rETHgetPtToSyrETHrETH-ETH staked on Rocket
ezETH (Zircuit)getPtToSyezETHezETH-ETH staked on Renzo then Zircuit
uniETHgetPtToSyuniETHuniETH-ETH staked on Bedrock
rswETHgetPtToSyrswETHrswETH-ETH staked on Swell
rswETH Swell L2getPtToSyrswETHrswETH-ETH staked on Swell
swETHgetPtToSyswETHswETH-ETH staked on Swell
ETHxgetPtToSyETHxETHx-ETH staked on Stadler
rsETHgetPtToSyrsETHrsETH-ETH staked on Kelp
sDAIgetPtToAssetDAIsDAI-DAI
crvUSD SilogetPtToAssetcrvUSDscrvUSD-crvUSD
gDAIgetPtToAssetDAIgDAIcan't market sellDAI staked in Gains

Notes on Assets of SYs:

  • All Liquid Staking Tokens (LRTs) except for weETH have assets listed as "ETH staked in xyz." This is different from ETH, as it takes 7 days or more to withdraw, and these staked ETH are subject to slashing if it occurs. As a result, LRT always trades at a slight depeg compared to the amount of ETH withdrawable from it. Hence, it's not safe to value these markets directly in ETH (which would not account for this depeg). Always value these in the original LRT form.
  • sDAI, scrvUSD, and gDAI tokens are not tradable, so they must be valued directly in their underlying asset. Similar to LRT, valuing them directly in the underlying asset will skip the protocol's risk of not being able to withdraw from yieldToken to Asset. Please keep that in mind!
  • All in all, it's safe to value tokens in yieldToken, whereas valuing them in assets carries additional conversion risk that you should be aware of.

Non-standard SYs

Other SYs that are not 1-1 wrap of yieldToken:

MarketRecommended way to get priceUnit of priceyieldToken of SY (NOT 1-1 Wrap)Asset of SY
aUSDTgetPtToAssetUSDT-USDT
aUSDCgetPtToAssetUSDC-USDC
ePENDLEgetPtToAssetePENDLE-ePENDLE
mPENDLEgetPtToAssetmPENDLE-mPENDLE

For aUSDT and aUSDC, similar considerations apply as for sDAI, scrvUSD, and gDAI. Value them directly in their underlying asset.