Tokenising Yield

As mentioned in Getting Started, the fundamental concept of tokenising yield means that the future yield generated is separated from the underlying principal asset. So if a yield of 3% is generated on 100 USDC after 1 year, the 3% yield (3 USDC) is the yield, and 100 USDC is the principal.

Step by step

1. Find a PrincipalToken

Each PrincipalToken uses a specific underlying asset and generates yield a certain way, with a specific maturity/expiry.
To find a relevant PrincipalToken:

2. Deposit

Deposit either the underlying asset (e.g. USDC) or an Interest Bearing Token of the underlying asset (e.g. aUSDC).
The relevant allowance of the token must be approved for the associated PrincipalToken contract before depositing.
  • If depositing the underlying asset, use PrincipalToken's deposit().
  • If depositing the interesting bearing token, use depositWithIBT().

3. Receive PT and YT

Deposited tokens will be used in an interest earning capacity. During the deposit, the depositor receives:
  • Principal Token (PT): This represents the original amount deposited, i.e. the principal amount. This is also referred to as 'shares' of the PrincipalToken.
  • Yield Token (YT): Minted by the PrincipalToken contract, this represents the yield generated by the deposited token.
Depositing IBTs which are then split into Principal Tokens (PT) and Yield Tokens (YT).

4. Before expiry

Before the expiry/maturity, a holder of PTs and/or YTs could:
  • Claim the yield generated by the YT, see claimYield()
  • Sell YT, essentially 'fixing' their APR and receiving a fixed yield.
  • Trade or sell YT to hedge interest rate risks.
  • Trade or sell PT, speculating on interest rates without exposure to the principal asset.
  • Earn more yield by providing liquidity, see Providing Liquidity guide.
  • Withdraw the equivalent assets in proportion to the amount of PT and YT they currently hold, i.e. convert their PT and YT to the underlying asset (e.g. USDC) and exit their position. See withdraw() and redeem() .

5. After expiry

After expiry/maturity, the token holder could:
  • Redeem the underlying assets of the PT, see redeem() and withdraw()
  • Claim the remaining yield of the YT see claimYield().
The token holder after expiry does not need to be the same as the depositor.
E.g. they could have purchased the PT at a discount and waited for expiry, earning a fixed yield since all PT and YT are 1:1 to the underlying asset.