See the risk you’re actually taking.
Vault dashboards show the front door. We trace every dollar of yield back to the Morpho markets, Aave reserves, and Pendle PTs underneath — on Base, Ethereum, and Arbitrum — so you can see how concentrated the capital you’re lending really is.
What is your USDC actually lent against?
Vaults lend USDC to borrowers who post these assets as collateral. The bigger the bar, the more capital flows to that asset.
| Collateral | Vault capital lent | # Vaults | On Aave | Aave supply APY | Top vault |
|---|---|---|---|---|---|
| cbBTC | $1.2B | 11 | Yes | 2.4% | Steakhouse Prime USDCV1.1($450.8M) |
| WETH | $63.0M | 12 | Yes | 1.7% | Gauntlet USDC PrimeV1.0($20.0M) |
| wstETH | $8.3M | 11 | Yes | 0.1% | Moonwell Flagship ETHV1.0($6.2M) |
| wsuperOETHb | $7.4M | 2 | No | — | Metronome msETH VaultV1.0($7.0M) |
| cbETH | $6.2M | 12 | Yes | 3.8% | Gauntlet WETH CoreV1.0($1.9M) |
| cbXRP | $2.8M | 3 | No | — | Yearn OG USDCV1.1($1.9M) |
| weETH | $2.7M | 3 | Yes | 0.0% | Moonwell Flagship ETHV1.0($2.0M) |
| yoUSD | $2.6M | 1 | No | — | Clearstar USDC ReactorV1.1($2.6M) |
| LBTC | $1.3M | 4 | No | — | Moonwell Frontier cbBTCV1.0($1.3M) |
| PT-USDai-18JUN2026-(ARB) | $1.3M | 1 | No | — | Steakhouse High Yield USDC v1.1V1.1($1.3M) |
| cbADA | $1.2M | 2 | No | — | Gauntlet USDC FrontierV1.0($467K) |
| cbDOGE | $498K | 3 | No | — | Steakhouse High Yield USDC v1.1V1.1($180K) |
| SOL | $422K | 2 | No | — | Steakhouse High Yield USDC v1.1V1.1($422K) |
| rETH | $201K | 2 | No | — | Moonwell Flagship EURCV1.0($127K) |
| cbLTC | $195K | 2 | No | — | Steakhouse High Yield USDC v1.1V1.1($153K) |
| deSPXA | $14K | 1 | No | — | Steakhouse High Yield USDC v1.1V1.1($14K) |
| USDC | $14K | 1 | Yes | 3.0% | Moonwell Flagship ETHV1.0($14K) |
| YFI | $9K | 1 | No | — | Yearn OG USDCV1.1($9K) |
| superOETHb | $2K | 1 | No | — | Clearstar USDC ReactorV1.1($2K) |
| LsETH | $2K | 1 | No | — | Gauntlet WETH CoreV1.0($2K) |
| AERO | $266.25 | 1 | No | — | Steakhouse High Yield USDC v1.1V1.1($266.25) |
| bsdETH | $42.99 | 1 | No | — | Gauntlet WETH CoreV1.0($42.99) |
| cUSDO | $6.74 | 1 | No | — | Steakhouse High Yield USDC v1.1V1.1($6.74) |
Different vaults — same underlying markets.
Two vaults can advertise different strategies but share 80% of their underlying Morpho markets. The matrix shows where “diversification” is just rebranding.
| Steakhouse Prime USDC | Gauntlet USDC Prime | Steakhouse USDC | Pangolins USDC | Froge's USDC | Moonwell Flagship USDC | Spark USDC Vault | Moonwell Flagship ETH | Metronome msETH Vault | Gauntlet WETH Core | |
|---|---|---|---|---|---|---|---|---|---|---|
| Steakhouse Prime USDC | — | 98% | 99% | 96% | 96% | 43% | 3% | 0% | 0% | 9% |
| Gauntlet USDC Prime | 98% | — | 97% | 94% | 94% | 45% | 5% | 0% | 0% | 10% |
| Steakhouse USDC | 99% | 97% | — | 97% | 97% | 42% | 3% | 0% | 0% | 9% |
| Pangolins USDC | 96% | 94% | 97% | — | 100% | 39% | 0% | 0% | 0% | 9% |
| Froge's USDC | 96% | 94% | 97% | 100% | — | 39% | 0% | 0% | 0% | 9% |
| Moonwell Flagship USDC | 43% | 45% | 42% | 39% | 39% | — | 60% | 1% | 1% | 10% |
| Spark USDC Vault | 3% | 5% | 3% | 0% | 0% | 60% | — | 0% | 0% | 0% |
| Moonwell Flagship ETH | 0% | 0% | 0% | 0% | 0% | 1% | 0% | — | 1% | 27% |
| Metronome msETH Vault | 0% | 0% | 0% | 0% | 0% | 1% | 0% | 1% | — | 12% |
| Gauntlet WETH Core | 9% | 10% | 9% | 9% | 9% | 10% | 0% | 27% | 12% | — |
Cross-Protocol Collateral · Morpho ∩ Aave
Assets posted as collateral on Morpho that are also lent on Aave — a single asset crash hits both protocols.
Pick an asset. Drag the slider. See who breaks.
First-order LTV stress: if cbBTC drops 30%, which Morpho markets cross their liquidation threshold and which vaults absorb the loss? Back-of-envelope — the API doesn’t yet expose average_borrow_ltv per market, so we assume loans sit at 85% of LLTV across the board, which inflates the impact at high shock sizes.
Markets crossing LLTV(3)
- cbBTC/USDC−$48.8M
- cbBTC/EURC−$50K
- cbBTC/WETH−$32K
Vaults absorbing loss(11)
- Steakhouse Prime USDC−$19.1M (4%)
- Gauntlet USDC Prime−$14.9M (4%)
- Steakhouse USDC−$12.1M (4%)
- Pangolins USDC−$1.4M (4%)
- Froge's USDC−$1.0M (4%)
- Moonwell Flagship USDC−$165K (2%)
- Moonwell Flagship EURC−$50K (3%)
- Gauntlet WETH Core−$32K (1%)
- + 3 more vaults
Methodology — how the cascade is computed
For every Morpho market posting cbBTC as collateral we approximate currentLtv = lltv × 0.85 — the Compass API doesn’t expose average_borrow_ltv per market yet, so we fall back to a conservative “typical” utilization. Most cohorts aren’t simultaneously at 85% of LLTV, so the cascade reads worse than reality. Roadmap to swap in a per-market borrow-LTV when the API ships it: docs/plans/2026-05-08-risk-dashboard-roadmap. After the shock, newLtv = currentLtv / (1 − shockPct).
When newLtv > 1 the collateral is worth less than the loan and the lender (the vault) eats the shortfall as bad debt. We compute it per market:
badDebt = exposureUsd × (1 − 1 / newLtv)
This is what the headline number reports and why doubling the shock roughly doubles the bad debt — not just lights up the same markets twice.
- Ignores TWAP smoothing, oracle deviation, partial liquidations, and liquidation incentives.
- Markets where the new LTV is past LLTV but still under 100% are not shown — the liquidator covers the loss in those cases, not the lender.
- LLTV is wei-scaled (1e18) on the API; we divide and render as percent.
Where yields are heading.
Compare 7d, 30d, and 90d APY by vault. Pendle PT pricing reveals what the market is paying to lock the rate in today.
Yield comparison — Morpho vs Aave vs Pendle
| Vault | 7d APY | 30d APY | 90d APY | 30d Δ (bps) | Trend |
|---|---|---|---|---|---|
| Steakhouse Prime USDC | 4.3% | 4.3% | 4.0% | +3 bps | Stable |
| Gauntlet USDC Prime | 4.3% | 4.3% | 4.0% | +3 bps | Stable |
| Steakhouse USDC | 3.2% | 3.2% | 3.0% | +2 bps | Stable |
| Pangolins USDC | 4.3% | 4.2% | 3.7% | +14 bps | Stable |
| Froge's USDC | 4.3% | 4.3% | 4.0% | +3 bps | Stable |
| Moonwell Flagship USDC | 3.6% | 3.6% | 3.4% | +2 bps | Stable |
| Spark USDC Vault | 3.8% | 3.8% | 3.6% | +1 bps | Stable |
| Moonwell Flagship ETH | 1.2% | 2.7% | 1.9% | -145 bps | Stable |
| Metronome msETH Vault | 3.4% | 2.1% | 1.7% | +132 bps | Stable |
| Gauntlet WETH Core | 1.5% | 2.9% | 2.2% | -141 bps | Stable |
| Steakhouse High Yield USDC v1.1 | 5.5% | 5.5% | 4.8% | +4 bps | Stable |
| Clearstar USDC Reactor | 4.4% | 4.9% | 5.1% | -49 bps | Stable |
| Gauntlet USDC Frontier | 5.4% | 5.1% | 4.7% | +31 bps | Stable |
| Yearn OG USDC | 4.6% | 4.9% | 4.2% | -35 bps | Stable |
| Gauntlet USDC Core | 3.9% | 3.9% | 3.6% | +3 bps | Stable |
| Moonwell Flagship EURC | 1.0% | 1.3% | 1.0% | -25 bps | Stable |
| Moonwell Frontier cbBTC | 0.0% | 0.0% | 0.0% | 0 bps | Stable |
| Grove x Steakhouse USDC High Yi… | 4.3% | 4.3% | 4.0% | +2 bps | Stable |
Pendle implied APY — forward-rate signal
PT prices imply the fixed yield the market will accept to lock in today. Morpho is averaging 3.6%; if implied APY prints below that, traders expect rates to fall.
How we measure this
7d / 30d / 90d APY are time-weighted means reported by the Compass /v2/earn/vaults endpoint — APR realized over that lookback window.
30d Δ (bps) = apy7d − apy30d, expressed in basis points. We bucket the trend pill at ±10 bps: Compressing when the recent week is < −10 bps below the month; when it’s > +10 bps; Stable otherwise.
Pendle implied APY is the fixed yield priced into each market’s PT today. If implied APY prints below the average Morpho APY, the market is paying to lock today’s rate — i.e. it expects rates to fall.
Is the APY worth the volatility?
Each dot is a vault. Top-left is the goldilocks zone — high APY with steady rates. T-bills (3.75%) and Aave USDC supply mark the baselines you should beat.
How we measure this
APY drift = |apy7d − apy30d| expressed in basis points. This is a directional drift signal, not a true volatility measure — rolling standard deviation of daily APY snapshots is the right metric, but the Compass API doesn’t yet expose a daily series. Drift underweights long-tail volatility (a vault that crashed three weeks ago looks calm today), so read it as “how much have rates moved lately,” not as a Sharpe input. Roadmap to a proper stddev: docs/plans/2026-05-08-risk-dashboard-roadmap.
30d APY is the time-weighted mean reported by the Compass /v2/earn/vaults endpoint. T-bill 3M is the 3-month constant-maturity Treasury yield, hardcoded at 3.75% in lib/risk/calculations.ts · T_BILL_RATE. We update it by hand; a follow-up task swaps in a server-side FRED fetch (see roadmap doc above).
Bubble size is sqrt(tvl_usd) clamped to 4–18 px, so the biggest vault doesn’t dwarf the others. We jitter equal-x dots by ±0.5 bps so dense clusters stay readable.
Vaults newer than 30 days have no 30d APY yet — we plot them at x = 0 using their 7d APY for y, so they stay on the chart. They cluster on the y-axis until they accumulate a 30-day series.
How the yield works — and how to leave.
Where each vault’s headline APY actually comes from, how it’s drifted recently, and how much of your deposit you could pull right now.
| Vault | 7d APY | Yield source | 7d vs 30d | Withdrawable now |
|---|---|---|---|---|
| Steakhouse Prime USDCV1.1$468.3M | 4.3% | 100% borrower demand | +3 bps | 30.9% of TVL |
| Gauntlet USDC PrimeV1.0$375.2M | 4.3% | 100% borrower demand | +3 bps | 38.6% of TVL |
| Steakhouse USDCV1.0$295.0M | 3.2% | 100% borrower demand | +2 bps | 49.0% of TVL |
| Pangolins USDCV1.1$33.4M | 4.3% | 100% borrower demand | +14 bps | 100.0% of TVL |
| Froge's USDCV1.1$23.8M | 4.3% | 100% borrower demand | +3 bps | 100.0% of TVL |
| Moonwell Flagship USDCV1.0$9.9M | 3.6% | 100% borrower demand | +2 bps | 100.0% of TVL |
| Spark USDC VaultV1.1$9.1M | 3.8% | 100% borrower demand | +1 bps | 84.0% of TVL |
| Moonwell Flagship ETHV1.0$8.6M | 1.2% | 100% borrower demand | -145 bps | 28.8% of TVL |
| Metronome msETH VaultV1.0$7.1M | 3.4% | 100% borrower demand | +132 bps | 7.3% of TVL |
| Gauntlet WETH CoreV1.0$3.6M | 1.5% | 100% borrower demand | -141 bps | 35.0% of TVL |
| Steakhouse High Yield USDC…V1.1$3.4M | 5.5% | 100% borrower demand | +4 bps | 39.5% of TVL |
| Clearstar USDC ReactorV1.1$2.8M | 4.4% | 100% borrower demand | -49 bps | 18.2% of TVL |
| Gauntlet USDC FrontierV1.0$2.4M | 5.4% | 100% borrower demand | +31 bps | 78.8% of TVL |
| Yearn OG USDCV1.1$2.1M | 4.6% | 100% borrower demand | -35 bps | 99.7% of TVL |
| Gauntlet USDC CoreV1.0$2.1M | 3.9% | 100% borrower demand | +3 bps | 96.8% of TVL |
| Moonwell Flagship EURCV1.0$1.6M | 1.0% | 100% borrower demand | -25 bps | 55.1% of TVL |
| Moonwell Frontier cbBTCV1.0$1.3M | 0.0% | 100% borrower demand | +0 bps | 95.2% of TVL |
| Grove x Steakhouse USDC Hig…V1.1$1.0M | 4.3% | 100% borrower demand | +2 bps | 92.1% of TVL |
Methodology — how we estimate this
Yield source. We isolate Pendle PT contribution as (capital in PT collateral) × (Pendle implied APY) ÷ vault TVL, divided by the headline 7d APY. The remainder is shown as “borrower demand” — but that bucket also absorbs Aave idle reserves, incentive emissions, and any other yield source the API doesn’t individually tag. A vault showing 100% borrower demand is therefore the default residual when no Pendle PT exposure is detected, not a positive claim that the entire APY came from Morpho borrowers. Treat the split as directional, not exact. Roadmap to a mechanically clean breakdown (idle reserves tagged separately by the API): docs/plans/2026-05-08-risk-dashboard-roadmap.
7d vs 30d. apy_7d − apy_30d in basis points. A positive number means yield is expanding lately; negative means it’s compressing.
Withdrawable now. liquidity_usd ÷ tvl_usd, the share of the vault you could redeem in a single transaction without queuing or waiting for borrower repayments. Anything below ~15% of TVL is a practical exit-risk signal.
Every chart on this page is
one HTTP call away.
Compass exposes vault, market, and position data across Morpho, Aave, and Pendle. Pull the same risk view into your own product.