Integrating Pendle PT Tokens
Integrating Pendle Principal Tokens (PT) into an IPOR Fusion vault enables fixed-yield strategies. However, because PTs are yield-bearing assets with unique pricing and maturity mechanics, Atomists must follow a specific configuration workflow to ensure the vault correctly accounts for these assets.
This guide covers the three pillars of PT integration: Tracking, Valuation, and Execution.
1. Asset Tracking
By default, a Fusion Vault only "sees" the assets explicitly defined in its configuration. If an Alpha strategist swaps vault collateral for a Pendle PT, the asset will not appear in the vault's balance or the UI unless it is registered.
Adding Tracked Assets
Atomists must add the specific PT ERC20 address to the Tracked Assets list.
Why: This ensures the vault's
totalAssets()logic includes the PT balance.Action: Use the
PlasmaVaultGovernanceinterface to add the PT contract address to the vault’s tracked ERC20 tokens (Market ID 7).
2. Valuation (Price Oracles)
Pendle PT tokens are not typically supported by standard Chainlink price feeds. Without a valid price feed, the vault cannot calculate its Total Value Locked (TVL) or the share price, often leading to a "0.00" display or transaction reverts.
Custom Price Feeds
Atomists must configure a Custom Price Feed via the PriceOracleMiddleware.
Mechanism: PT tokens should be priced based on the underlying Pendle Market.
Configuration: Instead of a direct spot price, use a specialized oracle that pulls the PT price from the Pendle Market contract. This is then registered in the
PriceOracleMiddlewareunder the Custom Price Feeds section. Navigate to thePrice Feedsection in the Fusion interface to provide the Pendle Market address to derive the PT price relative to the underlying asset (e.g., PT-sDAI priced against sDAI).
Price feeds can be created with the factory.
3. Substrate Setup for Swapping
For the UniversalTokenSwapper to handle PT tokens, the Atomist must explicitly grant substrates for both the asset and the routing infrastructure.
The PT Token: Granted as an allowed asset (Type 1).
The Pendle Router: Granted as an allowed target for the swapper executor (Type 2).
4. Execution: Swapping vs. Minting
A common point of confusion is the difference between the Pendle Fuse and the Universal Token Swapper.
The Pendle Fuse
The specialized Pendle Fuse is designed for primary market operations:
Minting: Converting an underlying asset into PT and YT.
Redeeming: Converting PT back to the underlying asset at maturity.
Limit: This fuse does not handle market swaps.
Swapping via Universal Token Swapper
To buy or sell PT tokens on the open market (secondary market) before maturity, you must use the Universal Token Swapper (Market ID: 12).
5. Technical: Substrate Encoding for Swapping
The UniversalTokenSwapper uses a typed substrate system. When configuring substrates for Pendle PTs via grantMarketSubstrates, use the following encoding logic provided by the UniversalTokenSwapperSubstrateLib:
Substrate Type
ID (Type Byte)
Usage for Pendle
Token
0x01
PT Token Address: Allows the swapper to spend/receive the PT.
Target
0x02
Pendle Router Address: Allows the swapper to call the Router.
Slippage
0x03
Max Slippage: Defines the USD-value delta allowed for the PT swap.
Encoding Format
Substrates are bytes32 values where the first byte is the Type ID:
Token/Target:
[1-byte Type][11-byte zero padding][20-byte Address]Slippage:
[1-byte Type][31-byte Slippage Value in WAD]
6. Substrate Configuration Checklist
To successfully curate a vault using Pendle PTs, ensure the following substrates are granted:
Market
Market ID
Required Substrate
ERC20 Vault Balance
7
The PT Token Address (to track holdings)
Universal Swapper
12
The PT Token Address (Type 1: Allowed token)
Universal Swapper
12
The Pendle Router Address (Type 2: Allowed target)
Price Oracle
N/A
Custom PT-to-Asset feed derived from Pendle Market
Atomist Pro-Tips
Handling Maturity
When a PT token reaches maturity, its price effectively becomes 1:1 with the underlying asset. However, the vault doesn't automatically "exit" the position. The Alpha must execute a redeem action via the Pendle Fuse or swap it out to move the capital back into a liquid state or a new PT vintage.
Decimal Sensitivity
PT tokens often have specific decimal configurations. Always verify the underlyingDecimals in the PriceOracleMiddleware match the PT's contract to avoid massive over- or under-valuation of the vault.
Testing on Forks
Before deploying to mainnet, always simulate the Pendle swap and balance update on a local fork (Anvil). Ensure that after the swap, totalAssets() correctly reflects the PT position and that the updateMarketsBalances function handles the custom oracle without reverting.
Last updated
Was this helpful?