
DeFi Research

Renesis Team
Pendle is where the most sophisticated yield in DeFi trades, and it is where fund books go wrong most quietly. The positions look simple in a wallet: three token balances. What they represent is a zero-coupon bond, a decaying claim on future yield, and an AMM share that changes composition over time. Price them like normal tokens and your NAV is wrong every day in a different direction, and the error only becomes visible at maturity, usually during an audit.
This guide covers what a Pendle position actually is, how each piece should be valued, where the income sits, and the edge cases we handle in production for fund clients.
How Renesis accounts for Pendle

Renesis is a crypto portfolio management system for funds, and Pendle support is native. PT and YT are detected on-chain and valued as distinct instruments: PT is priced from Pendle's own on-chain oracle, a 900 second TWAP of the PT to asset rate with a spot fallback, multiplied into the underlying's price, and YT is valued as the residual claim on the same rate. Maturity is handled structurally rather than manually: the moment a PT crosses expiry it values at par, and an expired YT is zeroed instead of being left at a stale market price. Cost basis is set from the oracle rate at acquisition, so a PT's discount surfaces as yield earned over the holding period rather than a phantom day one gain or loss. Claimed rewards are recognized as income at the claim, and the value of yield still to come is carried in the YT mark. The rest of this article is the reasoning behind that treatment, the same playbook whether you automate it or run it by hand.
What a Pendle position actually is

Pendle takes a yield-bearing asset, wraps it into a standardized form called SY, and splits it into two tokens with a fixed maturity date, typically three to twelve months out.
PT, the principal token, redeems 1:1 for the underlying at maturity. Before maturity it trades at a discount, exactly like a zero-coupon bond. Buy PT at 0.95, redeem at 1.00, and the 5% is your fixed yield.
YT, the yield token, collects all the yield the underlying produces until maturity, after which it is worth exactly zero. Its price is a market bet on future yield, and time works against it by construction.
LP positions in Pendle's AMM hold a mix of PT and SY that shifts as the pool trades, converging so that impermanent loss disappears at maturity when PT becomes 1:1 redeemable.
Hold any of these and your books contain a fixed-income instrument, a decaying derivative, or both at once, denominated in an asset that is itself yield-bearing.
The valuation problem
PT before maturity. The correct value is the underlying's value discounted for time to maturity, and the question is which discount. There are three candidates and they disagree. The AMM market price reflects live implied yield but can be thin near maturity or in stressed markets. Pendle's own on-chain TWAP oracle smooths that and resists manipulation, which is why lending protocols use it. A linear discount model is the tempting spreadsheet shortcut, and it is systematically wrong: Chaos Labs' analysis of PT oracles found linear discounting persistently underprices PT, worst for high-yield and long-dated markets. Whichever source you choose, use it consistently and document it, because your administrator will ask.
PT at maturity. The instrument flips from market-priced to 1:1 redeemable overnight. Your books need to flip with it: the discount you carried yesterday becomes realized yield today.
PT after maturity, unredeemed. The trap almost nobody documents. An expired PT sitting in a wallet is not accruing anything, and per Pendle's design, unclaimed positions are eventually auto-converted with the interim yield flowing to vePENDLE holders, not to you. An expired PT on the books at yesterday's logic overstates nothing dramatically, but it misclassifies a dead position as a live one and quietly donates its yield to someone else.
YT. Market-price it from the AMM, and recognize that the price trends to zero at maturity by design. The value of a YT position is not the token price alone: it is the token price plus the accrued, claimable yield sitting behind it. Books that read only the wallet balance show a position bleeding value while missing the income stream that justifies holding it.
LP. An LP token is not a token with a price, it is a claim on a shifting basket of PT and SY plus accrued swap fees and reward emissions. Correct treatment decomposes it into the underlying pieces and values each; naive treatment finds whatever secondary price exists for the LP token and inherits all of its staleness.
Where the income actually is
The recurring confusion is what counts as income versus price movement. YT yield claims are income, realized when claimed or accrued when claimable, depending on your policy. PT's pull to par is yield economically, and whether you accrete it daily like a bond or realize it at maturity is a policy choice your administrator and auditor need to agree on before month one, not after month twelve. Reward emissions on LP positions are income in a third token, which means an income line denominated in an asset your books may not otherwise touch.
In our books the policy is: cost basis for a PT is set from the oracle rate at acquisition, so unrealized PnL starts near zero and accretes toward the full discount as maturity approaches, realized on redemption or sale. That is zero coupon bond accounting applied on-chain, and it is what makes a fixed yield position look like fixed yield in an investor letter instead of five flat months and one violent one. YT reward claims are booked as income when the claim lands; the value of the stream still to come is carried in the daily YT mark.
What naive tracking gets wrong, and in which direction
A balance-and-price-feed tracker prices PT and YT at their underlying's par, which overstates PT by a few percent and overstates YT by an order of magnitude or more, since a YT's value is only the remaining yield. It books cost at par, so genuine fixed yield opens as a day one loss. It silently drops positions to zero when the underlying has no address it can price, native ETH yield sources above all. And it leaves an expired YT at its last market print instead of at zero. The errors do not net out. They stack into a NAV that drifts from reality until a redemption or an audit forces the reconciliation.
Three examples from production, symptoms first.
The par trap. Generic price feeds resolve PT and YT to their underlying at roughly par. For PT that is a few percent of error. For a YT it is catastrophic: we have seen an inherited YT cost basis carried at roughly seventy times its true value, and close to 200,000 dollars of phantom realized PnL booked on a single wallet because exited YTs were priced at par on the way out. The rule that came from it is absolute: PT and YT prices are always derived from the oracle rate, never taken from a generic feed, however confident the feed looks.
The vanishing underlying. Some SY wrappers report their underlying as the zero address, because the yield source is native ETH, and some underlyings cannot be priced by contract address at all. Handled naively, a perfectly priceable position silently drops to zero NAV. We resolve native cases to the wrapped asset and peg USD stable underlyings to the dollar. Where an underlying genuinely cannot be priced safely, the position shows zero deliberately and visibly, an honest undercount beats a fabricated number.
The phantom day one loss. Book a pre-maturity PT at par and its entire future yield appears as an immediate loss, several hundred dollars of red on a position that has done nothing wrong. Rate at acquisition is the only cost treatment that makes the economics legible, and when historical chain state is unavailable we estimate the acquisition rate from implied yield rather than defaulting to par.
Tracking looped and nested Pendle positions

The queries that bring people to a page like this are rarely about a lone PT in a wallet. They are about the composed versions.
Looped positions. The common Pendle loop posts PT as collateral on a lending market, Morpho, Euler or TermMax, borrows against it, buys more PT, repeats. Your tracker now has to see a Pendle instrument living inside another protocol's position, value the PT leg with the same oracle discipline as a directly held PT, and net it against the borrow leg. We price PT collateral through the same oracle machinery inside those lending positions, so a looped position reads as what it economically is: leveraged fixed yield with the loan visible, rather than a mystery balance on a money market.
Nested positions. The wrapper cases, a PT inside an Aave aToken, an SY layered over another yield source, cut the other way: the same economic exposure appears at two addresses, and the cardinal rule is to price it exactly once. Our detection deliberately attributes a wrapped PT to the wrapper's position rather than double-counting it as a second Pendle holding, because a NAV that counts the same dollar twice fails its audit in the other direction.
If you are evaluating any position tracker for Pendle strategies, these two cases are the test to run before trusting it: one looped PT on a lending market, one wrapped PT, and check whether the numbers survive.
A worked example

A wallet buys 52,645 PT of a USD stablecoin market on BNB Chain with several months to maturity, oracle rate 0.982 at acquisition. Cost basis: 52,645 × 0.982 × 1 dollar, roughly 51,700. Day one unrealized: approximately zero, as it should be. Months later the rate has risen to 0.99: the position values at about 52,120, unrealized around +420, the accretion made visible on the daily mark. At maturity the PT redeems one to one for 52,645, and the full discount of roughly 950 dollars has moved from future yield to realized income on a schedule an auditor can follow. Booked at par instead, the same position opens with a phantom loss near 950 dollars, shows months of nothing, then jumps, and the investor letter has to explain a move that never economically happened.
Month-end checklist for Pendle positions
Confirm the PT price source and that it moved with implied yield. Check no held PT crossed maturity unredeemed. Sweep claimable YT yield and reward emissions into income. Decompose LP positions rather than pricing the LP token. And reconcile the SY layer: the wrapper's exchange rate to the true underlying is one more conversion that drifts if snapshotted carelessly.
This is the class of work a portfolio management system exists to automate, and Pendle is one of the protocols where automation pays for itself fastest, because the instrument does not forgive spreadsheet treatment. If you are running yield strategies more broadly, our guide to reducing yield farming risks covers the portfolio side of the same discipline.
Built by builders.
For builders.
We're a DeFi-native team shipping fast. No enterprise sales cycles, no bloated pricing. Start free, talk to us when you're ready.