Tracking Pendle PT and YT Positions Correctly
Pendle splits a yield-bearing asset into principal and yield tokens with different valuation curves. Pricing either at spot gives the wrong number.
Protocols covered
Pendle
Ethereum
Pendle is the position type that breaks naive portfolio tracking most cleanly, because it deliberately separates an asset into two instruments whose values move in opposite directions as time passes.
What Pendle does
Deposit a yield-bearing asset and Pendle splits it into two tokens with a fixed maturity date:
| Token | What it is | Value at maturity |
|---|---|---|
| PT (Principal Token) | A claim on the underlying at maturity | Converges to par — 1:1 with the underlying |
| YT (Yield Token) | A claim on the yield until maturity | Goes to zero |
Before maturity, PT trades at a discount to par. That discount is the implied fixed yield: buying PT at 0.94 and holding to maturity for 1.00 is the fixed-rate trade Pendle exists to enable.
YT does the inverse. It accrues the underlying's yield over the remaining term, and on the maturity date it is worth nothing at all.
Why spot pricing gets it wrong
Both directions of error are common:
PT priced at par overstates the position. A PT maturing in nine months is not worth its face value today; the whole point is that it is not.
YT priced as a normal token misses that its value decays deterministically to zero. A YT position marked at last trade, with no model of time to maturity, drifts further from reality every day — and unlike a market loss, this decay is known in advance.
Correct valuation needs three inputs a balance query does not have: the maturity date, the current implied yield, and time remaining.
The third position type
Pendle also has LP positions, which are a pool of PT against the underlying. Valuing one requires resolving the pool share into its components and then valuing the PT leg properly — so an LP position inherits every complication above, plus the pool-composition problem described in Valuing Uniswap V3 Concentrated Liquidity.
| Position | What decoding requires |
|---|---|
| PT | Maturity, discount curve |
| YT | Accrued yield, time decay to zero |
| LP | Pool composition, plus PT valuation |
What this means for reporting
For a fund holding Pendle, two consequences follow directly:
Mark-to-market needs a term structure. Fixed-income instruments cannot be marked from a spot price alone, and PT is a fixed-income instrument wearing an ERC-20 interface.
Maturity dates are a reporting event. A PT position converts to the underlying at maturity. A portfolio system unaware of maturity dates will show a position that silently changes character on a known future date.
Checking a provider on Pendle
Take a wallet with an open PT position and ask:
- Is the PT valued at a discount, or at par?
- Does the response expose the maturity date?
- Is a YT position present at all, and does its value decline as maturity approaches?
- Are LP positions resolved into PT plus underlying, or shown as an opaque LP token?
A provider that prices PT at par is not wrong by a rounding error — it is reporting a fixed-income instrument as if the fixed income were free. For the broader pattern, see Why Portfolio APIs Disagree About Net Worth.
Keep reading
ProtocolsTracking Aave Positions: Supply, Debt, Health
Aave supplies and borrows are separate tokens with independent balances. How to net them into a real position, and why health factor belongs in risk data.
2 min read
ProtocolsValuing Uniswap V3 Concentrated Liquidity
A Uniswap V3 position is an NFT whose composition changes with price. Why a token balance tells you nothing, and what has to be computed to value one.
2 min read
ProtocolsValuing stETH and Liquid Staking Positions
Rebasing and wrapped staking tokens need different valuation logic. Why stETH balances change with no transaction, and how wstETH breaks naive pricing.
2 min read