Asset: mSOL · Class: LST · Date: 2022-06-19
Worst spread: −1500 bps · Duration: ≈ 4 min outside PEGGED
Detected live: No (pre-Pegana retrospective)
Background
Solend used Pyth’s mSOL/USD feed which composited from Mango Markets liquidity. mSOL
had real depth on Saber and Marinade’s redemption, but the Mango pool was thin.
Healthy mSOL borrows used mSOL as collateral with conservative LTV.
Trigger
A user exited Mango by selling ~88k mSOL into thin depth. The pool’s mid-point
printed mSOL at 0.85× SOL — accurate for that pool, wildly wrong for the actual
asset.
Cascade
- Solend’s oracle ingested the print. mSOL collateral re-valued at 0.85×.
- Liquidation engines triggered on ~$21M of positions that were nowhere near
liquidation against true intrinsic.
- Liquidators sold the seized mSOL — also into thin venues — amplifying the
down-print.
- Marinade’s on-chain redemption never moved. Intrinsic stayed pegged. Market lied
for 4 minutes.
Recovery
Mango depth recovered as the seller ran out of supply. The oracle re-converged. mSOL
re-pegged inside 4 minutes. Liquidated positions did not recover.
What Pegana would have shown
- t=0 — Whale begins selling. Smoothed spread starts rising sharply.
- t≈30s — Spread crosses 300 bps.
PEGGED → DRIFT (would have notified
subscribers including Solend, if they were on Pegana).
- t≈45s — Spread crosses 500 bps.
DRIFT → DEPEG.
- t≈60s — Spread crosses 1000 bps.
DEPEG → CRITICAL.
- t≈4min — Mango depth recovers. Smoothed spread falls back below thresholds.
- t≈5min — After exit dwell,
CRITICAL → DEPEG → DRIFT → PEGGED.
The crucial fact: throughout the entire incident, Sanctum’s sol_value for mSOL
would have shown no change — Marinade’s on-chain redemption was unaffected. The
Jupiter routed quote, however, would have shown the dramatic drop. The
intrinsic_usd / market_usd divergence in the alert payload would have made the
“market is broken” framing obvious.
Whether a lending protocol could have acted in 30 seconds is a different question.
But the signal would have been there.
Lesson
Intrinsic vs market is the right primitive for LSTs. If your monitor only watches a
market price, you’ll miss the case where market is the broken side. Pegana checks
Sanctum’s on-chain sol_value as ground truth and compares against Jupiter route
quotes — exactly to catch this kind of incident.
Sources