Overview
Scope: every score is computed per chain, from the Morpho markets that exist on whichever chain your wallet is connected to. Switching chains recomputes everything. The Fear & Greed Index is the one exception.Data sources
Update cadence
Data refreshes every 5 minutes. The “Updated” pill in the page header reflects the wall-clock age of the last fetch. Important: every score on the Risk Dashboard is a heuristic for surfacing patterns. None of them are predictions, recommendations, or a substitute for reading market parameters yourself. Always verify before supplying, borrowing, or moving capital.Page Header Metrics
Top-right of the dashboard. Four compact pills, scoped to the connected chain.Flagged TVL Banner
The wide banner near the top showing total flagged USD, percentage of chain TVL, and a Low / Medium / High breakdown. Flagged TVL is the USD sum of all markets whereriskLevel !== "low". The breakdown chips show the same USD totals split by tier.
The banner is not a liquidation predictor. A flagged market can remain healthy for months; an unflagged market can still suffer liquidations if its collateral price moves fast. The signal is “this market has structural properties that warrant extra attention,” not “this market is about to break.”
Risk Tier Classification
Every market gets one of three tiers. The full classification logic (defined insrc/hooks/useMorphoMarkets.ts):
- Low risk: large, mature market with a conservative LLTV. The kind of market most users supply into.
- Medium risk: mid-sized or younger market, or a slightly aggressive LLTV. Workable for experienced users who understand the parameters.
- High risk: small or very new market, or aggressive LLTV. Treat as experimental.
Systemic Risk Score
The big gauge near the top, 0 to 100. A TVL-weighted composite of five signals across all markets on the connected chain.Formula
Interpretation bands
Component: Volatility (weight 25%)
TVL-weighted standard deviation ofborrowRate across markets, rescaled so 5 percentage-point std = 100.
Component: Utilization Stress (weight 20%)
TVL-weighted average of utilization across markets.Component: Liquidation Clustering (weight 20%)
Inverse TVL-weighted std-dev of thelltv - utilization buffer across at-risk markets (risk tier ≠ low). Rescaled so 10 pp std = 0 risk, 0 std = 100 risk.
Component: Liquidity Concentration (weight 20%)
Share of total chain TVL held by the top 3 markets.Component: Oracle Dependency (weight 15%)
Share of total chain TVL secured by the single most-used oracle address.Fear & Greed Widget (External)
This widget shows the alternative.me Crypto Fear & Greed Index, updated daily. It reflects global crypto market sentiment, not Dynamo or Morpho specifically. Same value regardless of which chain you’re on. The score combines volatility, market momentum and volume, social media, dominance, and Google Trends signals. Values 0 to 24 read as Extreme Fear, 25 to 49 Fear, 50 to 54 Neutral, 55 to 74 Greed, 75 to 100 Extreme Greed. We display it as a complement to the Morpho-specific Protocol Heat below.Protocol Heat (Internal Sentiment)
Dynamo’s own 0-to-100 sentiment score, computed from the markets on the connected chain only. Switching chains changes this; it reflects Morpho activity on that specific chain.Formula
Labels
Why two sentiment scores? The external Fear & Greed reflects the broader crypto market’s mood. Protocol Heat tells you whether Morpho crypto lending activity on this chain is in a hot or cold cycle. The two often diverge (e.g. macro Fear plus Morpho Greed when rates spike during a sell-off).
Liquidations Panel (Per-Market)
When you select a market in the per-market section, four numbers are shown.LLTV (Liquidation Loan-to-Value)
Pulled directly from the Morpho Blue market struct as a percentage. The maximum borrow position size relative to collateral value before liquidation is allowed.Liquidation Penalty (LIF)
Computed from LLTV using the Morpho Blue Liquidation Incentive Factor formula:
Higher LLTV markets have lower penalties (closer to 100% allowed leverage). The penalty is what liquidators pocket above the debt they cover; the position holder forfeits it as a haircut on their collateral.
Realized Bad Debt
Cumulative bad debt that has been written off and socialized across the market’s lenders. Pulled from Morpho API fieldMarket.realizedBadDebt { underlying, usd }.
Example: if a liquidation fails to fully cover a borrower’s debt (collateral insufficient even after the penalty), the protocol absorbs the gap. That gap, written off the books, accumulates into Realized Bad Debt.
Healthy markets show $0 here. Non-zero realized bad debt is a signal that liquidations have happened and not been fully covered in the past.
Unrealized Bad Debt
Currently underwater debt that is still on the books: a borrower’s collateral is worth less than what they owe, but the loss has not been written off yet. Pulled from Morpho API fieldMarket.badDebt { underlying, usd }.
Unrealized rising without realization usually means liquidators have not yet stepped in (either because penalties are insufficient, gas costs exceed the bonus, or liquidator bots are missing the chain).
Health Factor (Per-Position)
For each borrower position on a selected market, Health Factor is computed on-chain at oracle price:
The Stress Zone metric below tracks the percentage of top borrowers in the 1.0 to 1.5 band.
Per-Market Analysis Metrics
In the “Drill Down” section, after selecting a market, the dashboard shows the following per-market signals.30-Day APY Trend
A sparkline of borrow APY over the trailing 30 days, sourced from Morpho APIhistoricalState.borrowRate. Values are rescaled to 0-100% if the API returns 0-1 fractions.
Percentage-Point Change
Absolute change between the first and last points of the 30-day window:APY Anomaly (z-score)
Z-score of the latest APY observation against the trailing window (excluding the latest):30-Day Trend Direction
Up, down, or flat between the first and last points:Liquidation Clusters
Groups of borrowers whose health factors fall within ±5% of each other. Each cluster shows count, average HF, and total collateral exposure.Stress Zone Percentage
Share of valid borrower positions with HF < 1.5:Actionable Insights
The dashboard surfaces up to 5 ranked insights from a five-rule library, sorted by severity (critical > warning > info) then by exposure size.
Multiple rules can fire on the same chain. The list is capped at 5 items; ties are broken by exposure (USD weight).
Data Cadence & Freshness
The “Updated” pill in the page header shows the age of the last fetch in human-readable form.
What This Dashboard Is Not
- Not a liquidation predictor. Flagged TVL and at-risk tier classification are structural heuristics, not price models. We do not estimate the probability that a specific market will be liquidated.
- Not financial advice. Every score is a pattern-surfacing tool. Read the underlying market parameters (LLTV, oracle, curator, liquidity) before transacting.
- Not exhaustive of all on-chain risk. Smart-contract bugs, oracle manipulation, governance attacks, and cross-protocol composability risks are not captured by any score on this page.
Glossary
Source-of-truth lives in the repo at
src/lib/risk.ts, src/hooks/useRiskMetrics.ts, src/hooks/useMarketRiskAnalysis.ts, src/hooks/useActionableInsights.ts, and src/pages/RiskDashboard.tsx. The implementation is the spec; this page is its translation into plain language.