- USDY — Ondo’s T-bill token
- sUSD — Solayer’s T-bill + restaking MEV
- syrupUSDC — Maple’s institutional lending
- sUSDe — Ethena’s funding-arb
- sHYUSD — Hylo’s Stability-Pool staked hyUSD (monitoring_only)
- JLP — Jupiter’s perps liquidity pool (monitoring_only)
- ONyc — OnRe’s reinsurance (monitoring_only)
Why the formula is different
For USDC, the answer to “what’s the peg?” is “1, you’re done. For USDY, the answer to “what’s the peg?” is “the NAV Ondo published 3 minutes ago, which is 1, you’ll think it’s catastrophically over-pegged. It isn’t — it’s correctly priced against a NAV that’s grown 7.8% over its lifetime. So the formula becomes: **peg = NAV, not peg = 1`. A market price below NAV is redemption stress; a market price above NAV is buy-side demand running ahead of the issuer’s published rate.How NAV gets on chain
Three patterns dominate today on Solana: Pyth Redemption Rate (USDY, syrupUSDC, sUSDe, ONyc). The issuer signs and pushes a redemption price to a dedicated Pyth feed. Pegana subscribes to the SSE stream and reads it the moment it’s published. Staleness gate: 30s — older readings are refused so you don’t act on a NAV from yesterday. Token-2022 InterestBearing extension (sUSD). The mint itself stores a rebasing rate. Reading it is agetAccount on the mint and a
small calculation. Pegana’s solayer_susd adapter does this every 15s.
Issuer dashboard scrape (fallback).
When an issuer hasn’t published a Pyth feed yet, Pegana can fall back to scraping the
issuer’s published NAV from its dashboard. Such entries are explicitly marked
verified=false in assets.toml until a real feed lands. (pbUSDC used this fallback
but was deactivated 2026-06-01 — only a thin dust pool remained, so its prices were
unreliable; USD* was removed 2026-05-22.)
The market side is trickier than it looks
Yield-bearing stables are often thin. Maple’s syrupUSDC has institutional liquidity but limited DEX depth. ONyc trades on a couple of venues. The Jupiter route quote can swing meaningfully on small order sizes. Pegana mitigates this in two ways:- Thresholds for yield-bearing assets are widened — sUSD’s drift threshold is 2.75% (275 bps), calibrated from a 24h p99 of ~2.19%, not 0.30%, because its noise sits up there by design.
- Confidence label. The engine tags low-liquidity feeds with a confidence label so downstream consumers can decide whether to act on a thin-market signal. See confidence score.
When the NAV itself is the risk
Sometimes the depeg isn’tmarket < NAV — sometimes the NAV itself drops.
- ONyc’s NAV reflects underwriting performance: a catastrophic claim event drops the NAV directly.
- sUSDe’s NAV depends on positive perp funding: a sustained negative-funding regime stops the NAV from growing, may even reverse it.
- syrupUSDC’s NAV can be hit by a borrower default.
/explain command on the bot calls out the issuer-specific risks for each asset
(T-bill shock, negative funding, claim event, borrower default) so subscribers see
what could cause the next alert before it fires.
What this means for builders
If you’re integrating yield-bearing stables as collateral, the cardinal sin is treating NAV as constant. A $1-pegged USDC oracle, applied to USDY, will overvalue collateral by 7.8% today and more tomorrow. Use the actual NAV feed. Pegana exposes bothintrinsic_usd (NAV) and market_usd in the same payload so you can pick which
one your protocol should price against.
Read next
Live yield-bearing states
See the current state of every tracked yield-bearing asset.
Methodology
The intrinsic-vs-market formula and per-asset thresholds.