How to monitor a curated lending vault
What should risk monitoring for a curated lending vault cover? The usual list is utilisation, collateral health, oracle behaviour and liquidation exposure. The 22 March 2026 USR exploit on Morpho shows how each needs to be read:
- Compare the oracle with the market price, because the oracle decides whether liquidations happen at all. USR's oracle stayed at 1.00 while USR traded at 0.05. The largest borrower became liquidatable within the first hour and has still not been liquidated.
- Track your supply in every market, not only your own allocations. Three vaults with nothing in these markets before the exploit were exposed by the evening, through moves others made.
- Measure what depositors can withdraw, not total assets. Two vaults with under 1% exposure could pay out nothing by 06:00.
- Read a share price that rises too fast as a loss. One vault's share price quadrupled on interest nobody paid. It now holds nothing and still reads 2.93.
As of 6 November 2026. All figures are read from Ethereum at the blocks given; times are UTC.
22 March 2026, minute by minute
A Morpho market is a single lending pool: one collateral, one loan asset, one price oracle and a liquidation threshold (LLTV). Curated vaults take deposits and spread them across markets. Resolv's post-mortem says attackers reached its signing infrastructure and that "the first illicit transaction was executed at 02:21:35 UTC", minting 50M USR. Sixteen Morpho markets took USR, wstUSR (staked USR) or RLP, Resolv's other token, as collateral. Four held more than $5,000.
| Time (UTC) | What the chain showed |
|---|---|
| 21 Mar | At 12:15:47, the last update of the USR price feed the market oracles read: 1.00. It came from the same address that sent both illicit mints the next day. The feed has not changed since. |
| 02:21:35 | 50M USR minted in one transaction. USR supply goes from 102.5M to 152.5M. |
| 02:31 | USR at 0.73 on Uniswap. Oracle: 1.00. |
| 02:33:35 | First change by any exposed vault, 12 minutes after the mint. |
| 02:38 | USR at 0.05. Oracle: 1.00. |
| 02:40:23 | A borrower pulls vault money into the wstUSR/USDC market and borrows it in the same transaction. |
| 02:48:59 | RLP/USDC is fully borrowed; USR/USDC follows at 02:50:47 and wstUSR/USDC at 02:54:59. wstUSR/USDC had 5,123 USDC supplied before the mint and 3.14M at 02:54:59. |
| 04:15 | All four markets fully borrowed. They still are. |
| 05:16 | Resolv pauses its contracts. |
| 23:59:59 | wstUSR/USDC: 6.23M USDC supplied, 6.23M borrowed. By the oracle its largest borrower is just past the LLTV (LTV 0.915); at the Uniswap price its collateral covers about a third of its debt. |
By Morpho's rules that borrower was liquidatable from about 03:00. Nobody liquidated it, and the three larger markets saw no liquidations at all through 31 March. Liquidations run "at the current oracle price": a liquidator would have repaid USDC for collateral the oracle valued at 1.13 per wstUSR and the market at about a third of that. A stale oracle hides the loss and removes the reason anyone would clear it.
Exposure that arrives after the exploit
Morpho's Public Allocator lets "anyone […] request a reallocation, but addresses with the vault's allocator role set the boundaries": a borrower can pull a vault's supply from one market into another, up to limits the vault sets per market (flow caps). On 22 March it moved 6.8M of vault money into these markets, mostly inside borrowers' own transactions: 5.07M from Gauntlet USDC Core, 1.00M from Clearstar Yield USDC (its full limit), 0.41M from Gauntlet USDC Frontier, 0.25M from Resolv USDC and under 40,000 from two others. Vaults' own allocations added about 2.4M more. From 12:33 others also supplied into these markets in vaults' names, which supply caps do not stop: "caps only limit reallocations […], not donations".
What depositors could take out
"Withdrawable" here is what a depositor could take out at that block: the vault's cash plus, in each market, the smaller of the vault's supply and the money not yet borrowed. The table has every MetaMorpho USDC vault with at least $1M that had supply in one of the 16 markets before the mint or by the end of the day.
| Vault | Assets before | In these markets, before → end of day | Withdrawable 02:21 | 06:00 | End of day |
|---|---|---|---|---|---|
| Gauntlet USDC Frontier | $109.2M | 0.31% → 4.16% | 28.7% | 0.9% | 3.7% |
| Smokehouse USDC | $61.1M | 0.02% → 0% | 51.4% | 0.0% | 9.1% |
| Gauntlet USDC Core | $39.7M | 0.01% → 20.56% | 54.2% | 4.6% | 12.8% |
| Usual Boosted USDC | $9.3M | 0.57% → 0.75% | 77.4% | 0.0% | 30.1% |
| Clearstar Yield USDC | $6.5M | 0% → 22.50% | 48.4% | 5.0% | 0.2% |
| kpk USDC Yield | $4.1M | 1.77% → 8.37% | 74.7% | 2.6% | 54.0% |
| Keyrock USDC | $2.4M | 0% → 1.46% | 100.0% | 46.0% | 93.7% |
| Etherealm USDC | $2.0M | 0% → 10.64% | 100.0% | 76.9% | 89.4% |
| Resolv USDC | $1.0M | 95.14% → 99.67% | 32.4% | 0.0% | 0.0% |
Percentages are of each vault's total assets; withdrawable is an upper bound, since vaults in a market share what is left in it. Frontier also held 0.51M in a PT-RLP market outside the 16. August AUSD is left out only because it is not a USDC vault.
Smokehouse and Usual Boosted had under 1% in these markets, yet by 06:00 neither could pay out anything: depositors were leaving every vault in their other markets, 31.4M from Frontier alone. That "does not mean your funds are lost", as Morpho notes, but a depositor could not leave. Withdrawals make it worse: the vault shrinks, but its supply stuck in a fully borrowed market does not. Core went from 0.01% to 20.56% exposed in a day, through money moved in and depositors leaving.
The loss then showed up three ways. Core, on version 1.0 of the vault contract, lost 29.5% of its share
price in one block when it removed the markets. Frontier, on 1.1, booked 1.91M as lostAssets and
kept its share price. Resolv USDC, also curated by
Gauntlet and set up for Resolv collateral, holds almost nothing in markets and reads 1.08. Only real
assets per share (the vault's supply in its markets divided by its shares) shows all three.
A share price that rises too fast
In March and April, depositors took 5.50M out of Clearstar Yield USDC at 1.03 to 1.05 per share. After that almost nothing could leave: what remained was mostly in RLP/USDC, fully borrowed. At 100% utilisation Morpho's rate model keeps raising the borrow rate, and the interest is added to suppliers whether or not anyone pays it. Clearstar's share price climbed to 4.25 by 24 June. That day the vault removed the market; it now holds nothing in any market, and its 1.06M remaining shares still read 2.93. The market shows the same thing: wstUSR/USDC now shows 519.5M USDC supplied, almost all of it unpaid interest.
In November 2025, after Elixir's deUSD fell from 0.99 to 0.02 on Curve, Relend USDC's share price rose 2.0% in a week, with about 98% of what was left in one fully borrowed sdeUSD market. On removal it went from 1.117 to 0.017. Its withdrawable liquidity had fallen from 76.9% to 7.3% before Curve moved.
A share price speeding up while a market is fully borrowed is interest nobody is paying.
What to monitor
If you curate the vault, for every market in its queues:
- Oracle against market price. What the oracle reads (an issuer-updated feed, a DEX price, a fixed value), who posts it and when it last moved, plus the collateral token's own supply: USR's rose 49% in one block. Morpho's advice is to "deploy automated monitoring that detects when oracle prices diverge from market prices".
- Every change to your supply: Public Allocator flows against flow caps, supply in the vault's name by others, and your own automation moving into a market that has just been fully borrowed.
- Withdrawable liquidity, next to withdrawals from other vaults in the same markets.
- Borrowers: LTV by the oracle and by market price, and how concentrated the debt is.
- What each action stops. On Vaults V1, flow caps to zero stop others moving your supply; a cap cut is instant but does not stop supply in your name; an empty supply queue stops new deposits going there. "Only removing it from the withdrawal queue fully eliminates the risk", and with supply still in the market that is timelocked: the two Gauntlet vaults queued it on 22 March and executed it on 31 March.
If you allocate to the vault, from outside it:
- Real assets per share next to the share price. A gap, or a share price rising faster than the vault's own history, is a loss the APY does not show.
- Your withdrawable amount against your position. If the vault can pay out less than you hold, you cannot leave in full.
- Pending changes. On V1, raising a cap is timelocked, so a new market is visible before money can go into it. The vault's flow caps for each market are public too.
- Questions for your curator: which markets the Public Allocator can move your money into, what empties the supply queue, and how the vault books a loss.
Limits
- Market price is only as good as the venue. The USR pools were thin; wstUSR and RLP prices here are derived from USR's.
- Only MetaMorpho V1 vaults were scanned. Vaults V2 that allocate into them carry the same exposure.
- The chain shows what happened, not why. Who controls the borrowing addresses is not established, and this piece does not assess how any curator handled either episode.
- Monitoring is not a forecast. These checks say what you hold and could take out, not when a loss will happen.
Doing this across every position
One morning on one chain took archive reads on sixteen markets and nine vaults; a real book spans protocols and chains. Datablocks indexes every EVM chain from genesis and updates every block, and values every lending, LP, vault and fixed-yield position at any block, with protocol parameters as they were at each block, so a team can answer what is my risk right now, across every protocol my positions touch. If you run or allocate to vaults, book a call below and tell us what you need to watch.