# Tokenizing Yield







As mentioned in [getting-started.md](/docs/getting-started "mention"), the fundamental concept of tokenizing 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.

<img alt="Aave aTokens" src="__img0" />

## Step by step [#step-by-step]

### 1. Find a PrincipalToken [#1-find-a-principaltoken]

Each Principal Token is associated to an [Interest Bearing Token (IBT)](/docs/glossary#ibt) and has a specific duration (a specific expiry date).

* PTs are designed to operate with any ERC4626 Tokenized Vault token.
* Each IBT is associated to an underlying. The underlying assets of the IBT are verified using [`ERC4626.asset()`](https://eips.ethereum.org/EIPS/eip-4626#asset)

<Callout type="info">
  Available ERC4626 Vaults on the relevant network can be found at [https://erc4626.info](https://erc4626.info/). \
  \
  Additionally, new Principal Tokens for any Interest Bearing Token that complies with the ERC-4626 standard can be deployed without the need for special permissions, see[ how to deploy PT and LP Vault in a permisionless manner](/docs/guides/deploy-pt-and-curve-pool).
</Callout>

To find a relevant PrincipalToken:

* All Principal Tokens deployed using the [Factory](/docs/technical-reference/contract-functions/factory)  can be accessed through the  [Registry](/docs/technical-reference/contract-functions/registry). The number of tokens deployed is determined using  [`Registry.pTCount()`](/docs/technical-reference/contract-functions/registry#ptcount). The PT at each index from 0 to `ptCount` is retrievable using [`Registry.getPTAt()`](/docs/technical-reference/contract-functions/registry#getptat).
* Verify the Interest Bearing Token (IBT) tokenized in the PT contract using [`getIBT()`](/docs/technical-reference/contract-functions/principal-token#getibt), then examine its conversion rate over recent blocks using [`IBT.convertToAssets()`](https://eips.ethereum.org/EIPS/eip-4626#converttoassets).
* The maturity and duration of the PT are checked using [`PT.maturity()`](/docs/technical-reference/contract-functions/principal-token#maturity).

### 2. Deposit [#2-deposit]

Deposit either the underlying asset (e.g. USDC) or an [Interest Bearing Token](/docs/glossary#ibt) of the underlying asset (e.g. aUSDC).

<Callout type="info">
  The relevant allowance of the token must be approved for the associated PrincipalToken contract before depositing.
</Callout>

* If depositing the underlying asset, use PrincipalToken's [`deposit()`](/docs/technical-reference/contract-functions/principal-token#deposit).
* If depositing the interesting bearing token, use [`depositIBT()`](/docs/technical-reference/contract-functions/principal-token#depositwithibt).

### 3. Receive PT and YT [#3-receive-pt-and-yt]

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, the Yield Tokens represents the generated yield from the deposited principal. YT holders can claim the yield generated by the corresponding deposited IBTs over time as they hold the token.

<img alt="chrome KiSsKbf7lW" src="__img1" />

### 4. Before expiry [#4-before-expiry]

Before the expiry/maturity, a YT/PT holder can:

* Claim the yield generated by the YT, see [`claimYield()`](/docs/technical-reference/contract-functions/principal-token#claimyield)
* Trade or sell YT to hedge interest rate risks.
* Trade or sell PT, speculating on interest rates without exposure to the principal asset.
* Earn additional yield by providing liquidity to the IBT-PT pairs on AMMs. See [Providing Liquidity](/docs/guides/providing-liquidity).
* 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()`](/docs/technical-reference/contract-functions/principal-token#withdraw) and [`redeem()`](/docs/technical-reference/contract-functions/principal-token#redeem) .

<Callout type="info">
  Before expiry a user needs the same amount of PT and YT to be able to[`withdraw()`](/docs/technical-reference/contract-functions/principal-token#withdraw) or [`redeem()`](/docs/technical-reference/contract-functions/principal-token#redeem).
</Callout>

### 5. After expiry [#5-after-expiry]

After expiry/maturity, the token holder could:

* Redeem the underlying assets of the PT, see [`redeem()`](/docs/technical-reference/contract-functions/principal-token#redeem) and [`withdraw()`](/docs/technical-reference/contract-functions/principal-token#withdraw)
* Claim the remaining yield of the YT see [claimYield()](/docs/technical-reference/contract-functions/principal-token#claimyield).

<Callout type="info">
  The token holder after expiry does not need to be the same as the depositor. Both PT and YT are transferable tokens.

  E.g. they could have purchased the PT at a discount and waited for expiry, earning a fixed yield since all PT are redeemable to the underlying asset at expiry.
</Callout>
