TL;DR — the decision rule
The drawdown transmitted to lenders as yield compression, not as loss. BTC fell 21.5% peak-to-trough (May 22 → Jun 7), with a −15% leg in five days, and none of the eight ≥$100M BTC-collateral stablecoin vaults on Ethereum/Base took bad debt — $77.1M was liquidated across 3,654 retail-sized positions (≈6% of the main market’s borrow) cleanly, with seized collateral worth ~108% of repaid debt. Borrowers deleveraged (forced and voluntary) faster than lenders withdrew, so utilization on the dominant Base cbBTC/USDC market fell (90.3% → 85.3%) and daily net supply APY compressed ~80 bps instead of spiking; market exit liquidity improved through the stress ($135M → $203M). The rule:
For sub-25% BTC drawdowns, hold BTC-collateralized stablecoin lending positions; expect 50–100 bps of APY compression and improved (not worsened) exit liquidity while deleveraging runs. The binding risks are elsewhere: a gap move beyond the ~30% aggregate price buffer to the 86% LLTV, oracle failure, or a wrapper depeg (cbBTC/WBTC/kBTC/LBTC) — none of which this window exercised. Distinguish vaults by instant liquidity: the Base USDC vaults exited the week with 39–58% of TVL withdrawable, the Sentora V2 vaults with 8–12%.
Question
The GnosisDAO endowment holds stablecoin positions in curated Morpho vaults (see ../../protocols/steakhouse-usdc-prime-instant.md). The largest such vaults are, in practice, levered-BTC funding desks: 87–98% of their loans are collateralized by BTC derivatives. The week of Jun 2–7, 2026 delivered the first sharp BTC drawdown since those vaults reached current size. We wanted to know empirically — not from the whitepaper — whether a fast BTC repricing hurts the stablecoin lender via bad debt, APY whiplash, or a withdrawal-driven liquidity crunch, and whether the answer differs between Morpho V1 (MetaMorpho) and V2 vaults.
Universe
All Ethereum + Base vaults with ≥$100M deposits, stablecoin-denominated, with material BTC-derivative collateral exposure (Morpho API, accessed 2026-06-10). This confirms the Morpho-UI filter result: its 7 rows are exactly this set — no vault is missing.
| Vault | Net | Ver | Deposits | BTC-collateral share | BTC types | Instant liquidity |
|---|---|---|---|---|---|---|
Gauntlet USDC Prime 0xeE8F…4b61 | Base | V1 | $439.9M | 94.3% | cbBTC | $170M (39%) |
Steakhouse Prime USDC 0xBEEFE9…83b2 | Base | V1 | $334.6M | 93.9% | cbBTC | $170M (51%) |
PayPal USD Main 0xb576…59FB2 | Eth | V2 | $289.8M | 39.3% | LBTC, kBTC, cbBTC, WBTC | $36M (12%) |
Steakhouse USDC 0xbeeF010f…8183 | Base | V1 | $286.6M | 97.8% | cbBTC | $166M (58%) |
Sentora RLUSD Main 0x6dC5…E6bf | Eth | V2 | $202.3M | 49.5% | kBTC, cbBTC, WBTC | $16.5M (8%) |
Steakhouse Prime USDC 0xbeef0e08…73C9 | Base | V2 | $188.2M | 98.4% | cbBTC | $160M (85%) |
Steakhouse USDC 0xBEEF0173…64CB | Eth | V1 | $102.3M | 86.8% | WBTC, cbBTC | $38M (38%) |
Notes on completeness, verified against the full API universe (only 6 V1 + 3 V2 vaults ≥$100M exist on these two networks at all):
- PayPal USD Main V2 is a 100% wrapper of Sentora PYUSD V1 (
0x19b3…8c55, $289.8M) — on-chaintotalAssets()of the two differ by $3 of dust. They are one pool of money; the UI correctly shows it once. Its BTC share counts kBTC ($64.2M), which the UI exposure icons under-represent. - Steakhouse Ethena USDtb ($110.3M, Eth V1) is the only ≥$100M stablecoin vault correctly excluded: 100% sUSDe collateral, zero BTC.
- Instant liquidity = Morpho “liquidity” (idle + reallocatable + market liquidity). The three Base USDC vaults share the same underlying market, so their liquidity figures partially double-count the same $158M of market cash — they cannot all exit simultaneously at these numbers.
Methodology
Data sources & how to reproduce
Three pulls, all rerunnable from this folder:
scripts/pull-morpho-data.py— Morpho public GraphQL API (blue-api.morpho.org/graphql), no auth. Pulls (a) dailytotalAssetsUsd+dailyNetApy(V1) /avgNetApy(V2) per vault, (b) daily utilization, supply/borrow APY, liquidity, collateral and borrow USD for every BTC-collateral market the vaults allocate to (10 markets, all LLTV 86%), (c) everyLiquidationtransaction in those markets since May 20. Outputs the three JSONs indata/.scripts/pull-borrower-response.py— daily counts and volumes of repays / collateral top-ups / collateral withdrawals / liquidations in the Base cbBTC/USDC market (the margin-call footprint). Output:data/borrower-response.json.- BTC prices — CoinGecko free endpoint, saved to
data/btc-prices.json(accessed 2026-06-10):curl "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=21&interval=daily". - On-chain verification (cast) —
totalAssets()of all 8 vaults read directly on Ethereum/Base RPCs on 2026-06-10 and compared to API figures:
| Claim (API) | On-chain totalAssets() | Match |
|---|---|---|
| Gauntlet USDC Prime $439.9M | 440,037,769.51 USDC | ✓ (drift <0.1%) |
| Steakhouse Prime USDC V1 Base $334.6M | 334,723,695.23 USDC | ✓ |
| Steakhouse USDC Base $286.6M | 286,702,666.29 USDC | ✓ |
| Sentora PYUSD V1 $289.8M | 289,876,846.85 PYUSD | ✓ |
| PayPal USD Main V2 $289.8M | 289,876,843.81 PYUSD | ✓ (= V1 minus $3, confirms wrapper) |
| Sentora RLUSD V2 $202.3M | 202,292,816.88 RLUSD | ✓ |
| Steakhouse Prime USDC V2 Base $188.2M | 188,227,438.56 USDC | ✓ |
| Steakhouse USDC Eth $102.3M | 102,343,194.52 USDC | ✓ |
Liquidation USD figures are computed from raw repaidAssets/seizedAssets with token decimals (stables at par, seized BTC at same-day CoinGecko price). APY series are the Morpho API’s daily series, accessed same-day (2026-06-10).
Findings
The shock
BTC (CoinGecko, daily UTC closes): $77,546 on May 22 → $71,360 Jun 2 → $66,650 Jun 3 → $63,796 Jun 5 → $60,862 trough Jun 7 → $61,658 Jun 10. Peak-to-trough −21.5%; the sharp leg Jun 2→7 was −14.7%.
Vault-level: TVL and APY
(Chart: scripts/build-chart.py. V2 vaults are omitted — the API only exposes a trailing-average APY for V2, not comparable to V1 daily series — and PayPal USD Main V2 is the Sentora PYUSD line by construction. The two Base Prime vaults overlap almost exactly: same underlying market.)
| Vault | TVL Jun 1 | TVL trough (day) | TVL Jun 10 | Daily net APY Jun 1 | APY trough (day) | Δ APY |
|---|---|---|---|---|---|---|
| Gauntlet USDC Prime (Base) | $361.4M | $322.5M (Jun 4)¹ | $440.0M¹ | 4.63% | 3.84% (Jun 8–9) | −79 bps |
| Steakhouse Prime USDC V1 (Base) | $455.2M | $334.8M (Jun 10)¹ | $334.8M¹ | 4.63% | 3.84% (Jun 8–9) | −79 bps |
| Steakhouse USDC (Base) | $305.7M | $283.7M (Jun 10) | $283.7M | 3.45% | 2.86% (Jun 8–9) | −59 bps |
| Steakhouse USDC (Eth) | $109.4M | $92.2M (Jun 6)² | $102.2M | 4.16% | 3.45% (Jun 8) | −71 bps |
| Sentora PYUSD V1 / PayPal V2 (Eth) | $296.7M | $288.8M (Jun 6) | $289.8M | 2.64% | 2.40% (Jun 10) | −24 bps |
| Sentora RLUSD Main V2 (Eth) | $209.7M | $198.3M (Jun 6) | $202.3M | 5.37%³ | — | +30 bps³ |
| Steakhouse Prime USDC V2 (Base) | $184.3M | — (grew all week) | $188.1M | 4.56%³ | 3.83% (Jun 8)³ | −73 bps |
¹ The Jun 4–5 step in both vaults is one depositor, not flight: contract 0xb98c948CFA24072e58935BC004a8A7b376AE746A withdrew $111.7M from Steakhouse Prime V1 (txs 0xada890…, 0xb010fe…, 0xf92c6f…, Jun 4 15:48–15:59 UTC) and deposited $111.7M into Gauntlet USDC Prime 2–13 minutes later (0xe51580…, 0x11be81…). Same-market reallocation between curators mid-drawdown. Gauntlet separately absorbed a $34.0M withdrawal on Jun 1 (0x333d68…).
² Round-trip: −$13M on Jun 6, +$8M back Jun 7. Worst single-vault drawdown of the week at −12.3% intraweek, fully recovered.
³ V2 series is avgNetApy (trailing average) — not directly comparable to V1 daily APY; direction is what matters. RLUSD APY rose because Sentora was simultaneously scaling new kBTC/RLUSD markets ($30M → $80M supplied during the window).
No vault’s stablecoin TVL was mechanically affected by the BTC price (assets are stables); all moves above are flows. Aggregate flows were small: ex-reallocation, the seven vaults’ combined TVL fell ~3% over the stress week and had largely recovered by Jun 10.
Market-level: the transmission mechanism
The dominant venue — Base cbBTC/USDC, LLTV 86%, $1.38B supplied, backing all three Base USDC V1 vaults plus the V2 (94–98% of each) — through the drawdown:
| Day | BTC | Util | Daily borrow APY | Daily supply APY | Collateral | Borrow | Market liquidity |
|---|---|---|---|---|---|---|---|
| Jun 1 | $73.6k | 90.3% | 5.14% | 4.63% | $2,340M | $1,259M | $135M |
| Jun 3 | $66.7k | 89.2% | 4.79% | 4.26% | $2,139M | $1,240M | $151M |
| Jun 5 | $63.8k | 86.6% | 4.65% | 4.01% | $2,045M | $1,196M | $184M |
| Jun 6 (trough) | $60.9k | 85.3% | 4.60% | 3.94% | $1,975M | $1,175M | $203M |
| Jun 10 | $61.7k | 88.3% | 4.53% | 3.94% | $2,041M | $1,187M | $158M |
Borrow fell ~$84M net (−6.7%) in six days while suppliers barely moved → utilization down, rates down, liquidity up. The decline decomposes into ~$72M of forced liquidation repays plus a wave of voluntary repays, partly offset by new borrowing. Collateral USD fell 15.6% (price) but aggregate market LTV only rose from 53.8% to 59.5% — at the trough, BTC needed to fall a further ~31% (to ≈$42k) before the average position hit the 86% liquidation threshold. The Ethereum WBTC/cbBTC USDC markets (Steakhouse USDC Eth) showed the one counter-move: utilization briefly spiked to 91.8% on Jun 6 when the vault’s $13M withdrawal drained liquidity to $12.3M, popping daily supply APY to ~4.1–4.2% before normalizing next day — withdrawal-driven tightening, not BTC-driven.
Liquidations: the system worked
3,654 liquidation events across the 10 BTC markets in the window, >99% of them (by value) in Base cbBTC/USDC, tracking each leg of the BTC decline:
| Day | BTC close | Events | Debt repaid | Collateral seized | Bad debt |
|---|---|---|---|---|---|
| May 28 | $74.4k | 285 | $3.84M | 54.9 BTC (~$4.1M) | $0 |
| Jun 1 | $73.6k | 315 | $2.75M | 40.1 BTC (~$3.0M) | $0 |
| Jun 2 | $71.4k | 1,070 | $15.05M | 228.7 BTC (~$16.3M) | $0 |
| Jun 3 | $66.7k | 509 | $11.49M | 183.8 BTC (~$12.2M) | $0 |
| Jun 4 | $64.0k | 653 | $27.06M | 451.0 BTC (~$28.9M) | $0 |
| Jun 5 | $63.8k | 768 | $16.80M | 291.4 BTC (~$18.6M) | $0 |
| Jun 6 | $60.9k | 12 | dust | dust | $0 |
| Total (incl. dust days) | 3,654 | $77.11M | $0 |
$77.1M repaid is ~6% of the Base market’s borrow — granular (average event ~$21k, retail-sized) and profitable for liquidators throughout (seized value ≈ 108% of repaid debt). Zero bad debt accrued in any of the 10 markets (badDebt.usd = 0 and realizedBadDebt.usd = 0 on all, API 2026-06-10). The PYUSD/RLUSD BTC markets saw one $7.4k liquidation in total — kBTC/LBTC borrowers there carry materially lower LTVs.
Borrower response: the margin-call footprint
Morpho itself has no margin calls — liquidation at the 86% LLTV is automatic and permissionless, with no protocol-level warning. But the dominant market is the back-end of Coinbase’s consumer BTC-backed loan product, which does notify borrowers as their LTV approaches liquidation. Those notifications are off-chain and unobservable; the response is on-chain (Base cbBTC/USDC, daily event counts):
| Day | BTC close | Repays | Collateral top-ups | Top-up volume (≥0.05 BTC events) | Collateral withdrawals | Liquidations |
|---|---|---|---|---|---|---|
| May 25–31 (baseline avg) | — | ~810/day | ~1,000/day | ~116 BTC/day | ~280/day | ~46/day |
| Jun 1 | $73.6k | 1,308 | 1,720 | 196 BTC | 435 | 311 |
| Jun 2 | $71.4k | 3,162 | 4,176 | 597 BTC | 931 | 1,083 |
| Jun 3 | $66.7k | 2,447 | 3,110 | 359 BTC | 597 | 504 |
| Jun 4 | $64.0k | 3,398 | 4,095 | 580 BTC | 852 | 638 |
| Jun 5 | $63.8k | 4,054 | 4,829 | 703 BTC | 929 | 762 |
| Jun 6 | $60.9k | 1,400 | 1,857 | 373 BTC | 355 | 10 |
| Jun 7–9 (post avg) | ~$62k | ~750/day | ~1,140/day | ~182 BTC/day | ~313/day | 0 |
Top-ups ran 3–5× baseline for four straight days — 2,600 BTC ($170M at the time) of fresh collateral posted Jun 2–6 by thousands of distinct events, dwarfing the ~1,252 BTC seized. Repay counts peaked at 4,054/day (vs ~810 baseline) while large repays (≥$50k) never exceeded $7.5M/day — the deleveraging was thousands of small borrowers acting, not whales. The sequencing is the margin-call signature: top-ups and repays surged on Jun 2 with the first sharp leg, liquidations peaked by value two days later (Jun 4) among whoever hadn’t responded, and activity snapped back to baseline within a day of the bottom. Behaviorally, the borrower base heard the warnings and defended positions — which is exactly why utilization fell and lenders saw compression instead of stress.
Decision framework
- Don’t exit BTC-collateral stable vaults into a sub-25% BTC drawdown. The empirical transmission is: BTC falls → borrowers deleverage → utilization and APY fall → exit liquidity improves. Lenders who withdrew mid-week sold yield, not risk. This stops applying if the drawdown outruns deleveraging — the tell is utilization rising through a falling market, which this week never showed on Base.
- Expect 50–100 bps APY compression per ~15% BTC leg down, persisting while leverage demand rebuilds (Base daily supply APY was still at its lows on Jun 10, three days after the BTC bottom).
- Size the gap-risk buffer off aggregate market LTV, not vault marketing. At the trough the dominant market sat at 59.5% LTV against an 86% LLTV — ~31% of further same-instant downside before the average position liquidates. A single-block move of that size, an oracle failure, or a cbBTC depeg is the loss scenario; gradual repricing is not.
- Treat V1 vs V2 as irrelevant to this risk; treat instant liquidity as the real differentiator. Both versions behaved identically (the V2s are wrappers/allocators over the same markets). What differed is exit capacity: Base USDC vaults 39–85% of TVL withdrawable vs 8–12% for Sentora’s PYUSD/RLUSD V2 vaults — the latter are the ones to pre-plan exits for, and their week proved flows of −11% TVL are absorbable but instant exit of our size may not be.
- Single-market concentration is the structural note for the Base vaults: 94–98% of three separate vaults is one cbBTC/USDC market. Diversification across these vaults is cosmetic; the risk unit is the market, not the vault.
- The early-warning metric is borrower response, not liquidation volume. Liquidations are a lagging, bounded signal (the system clearing as designed). The leading signal is the ratio of collateral top-ups to liquidations: this week it ran ~2:1 in BTC terms (2,600 added vs 1,252 seized), meaning the borrower base was defending. A drawdown where top-up counts don’t surge while liquidations climb — borrowers exhausted, unable, or no longer notified — is the regime change that precedes bad debt, and it’s observable a day or two before it matters.
Caveats
- Position-level LTV distribution not measured — aggregate LTV understates tail positions (the $77.1M that liquidated were obviously above average). A follow-up pulling borrower-level LTV histograms would harden finding #3.
- Wrapper basis risk not measured: cbBTC, WBTC, kBTC, LBTC traded near par all week (no depeg event to study). The oracle stack (per-market oracles, mostly Chainlink-based) was not exercised by this drawdown and is unverified here.
- V2
avgNetApyis a trailing average — fine for direction, not for daily attribution. - Vault “instant liquidity” double-counts shared market cash across the three Base vaults (flagged in Universe).
- BTC prices are CoinGecko daily closes (third-party, accessed 2026-06-10); liquidation seizure values use same-day closes, not per-block prices.
- The Morpho API silently truncates
marketTransactionsat 1000 items per page — the initial single-page pull undercounted liquidations 4×. Both scripts now paginate by advancingtimestamp_gte; any re-pull over a longer window must keep doing so. - Margin calls themselves (Coinbase LTV notifications) are off-chain and unobservable; the borrower-response table shows behavior consistent with mass notifications, not direct evidence they were sent.
- Falsifier: any non-zero
realizedBadDebtin these markets dated Jun 2026 would invalidate the headline conclusion — none exists as of 2026-06-10.