Redeem it
If the backing sits on this chain, a liquidator hands the token back and takes the asset. Bounded by what the vault actually holds, not by anyone’s willingness to buy.
spUSDG holds its USDG here. It can do this.
Liquidation coverage · Robinhood Chain
A lending market reports collateral, LLTV and utilization. None of them tell you whether a liquidator can actually get out. We measure the exit — every day, against the venues a contract can actually reach on this chain.
Bad debt across these markets is currently zero. Coverage is not a forecast; it is the width of the door as of block 20323271.
To scale
Bar width is dollars of collateral, on one shared scale. The filled portion is what can leave.
Where it stops
USDe into USDG, quoted at block 20323271. Both bars share one scale. Past roughly $508,080, additional input buys nothing.
Two doors
If the backing sits on this chain, a liquidator hands the token back and takes the asset. Bounded by what the vault actually holds, not by anyone’s willingness to buy.
spUSDG holds its USDG here. It can do this.
If the backing lives elsewhere, the only move is a pool. A contract can reach Uniswap v4 and a v2 factory here, and nothing else — 0x rejects these assets, Arcus and Lighter take orders signed off-chain, the UniswapX reactor carries no code. Both are measured; for these assets v2 holds about $2,000.
USDe and syrupUSDG are in this column. It is the whole exit.
Not an assumption
Coverage assumes a liquidator converts seized collateral through a pool, atomically. That does not have to be assumed. Morpho has processed seven liquidations on this chain, and one of them shows the whole sequence.
Morpho seizes the borrower's collateral and hands it to the liquidator.
Liquidate · market 0x039503b6… · block 11,576,642
The liquidator swaps it through a pool.
Swap · 0xe3d40f1c… (Uniswap v2 pair)
Then through a second pool, into the loan asset.
Swap · 0xca46b092… → USDG
The loan is repaid and the position closes.
USDG → Morpho Blue · 0x9D53d5E3…
All four steps are in one transaction. The liquidator never held the collateral, never bridged it, never redeemed it — the position had to close in a single block, so the exit was whatever a pool would absorb at that moment. That is what coverage measures, and it is why redemption only counts when it can happen on this chain.
By market
| Market | Collateral | Borrowed | Max exit | Mechanism | Coverage |
|---|---|---|---|---|---|
| USDe / USDG | $184,300,804 | $159,050,512 | $508,080 | bridged | 0.28% |
| syrupUSDG / USDG | $48,924,971 | $43,277,446 | $2,042,563 | bridge-minted | 4.17% |
| spUSDG / USDG | $17,291,861 | $14,413,609 | $15,049,660 | redeemable | 87.03% |
| wsNET / USDG | $0 | $10,716 | not measured | ||
43 markets carry $216,752,309 of borrow between them. Only the rows above hold meaningful exposure. Markets with exposure but no probe read not measured — they are never counted as covered.
For machines
An agent sizing a trade, or a curator sizing a market, needs one thing this page cannot give: the answer for their size. That is what the endpoint is for.
Every figure on this page, the daily snapshots in the repo, and the console above. Enough to check whether we are right.
GET /v1/health git clone hatch run probe/exit_depth.py
The question the page cannot answer, because it does not know your size: can this much get out, right now, and what does it cost you.
HTTP/1.1 402 Payment Required
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "eip155:4663",
"asset": "0x5fc5…d168", // USDG
"maxAmountRequired": "1000000"
}]
}Call /v1/exit?symbol=USDe&size=1000000. It answers 402 and tells you what it costs.
Send the USDG to the address in the response. Your wallet, your gas, your call.
Sign hatch-pass:<tx hash> with the wallet that paid, and retry with X-PAYMENT: <tx hash>.<signature>.
The server reads the transaction off the chain and checks the signature recovers to the wallet that sent it. Transfers to this address are public, so a bare hash would be a ticket anyone could photocopy — the signature is what only the payer can produce.
You can run all of that in the console at the top of this page — no terminal, no client library.
hatch/live USDe 1000000 — the console calls this endpoint for real and prints the 402 it gets back, with the address to pay.hatch/pay 0x… — your wallet signs the hash (one click, moves nothing), and the question you already asked runs by itself.The console hits the same URL an agent would, gets the same 402, and keeps your pass in this browser only. The free commands keep working whether or not you ever pay.
There is no database and no wallet holding your funds here. You pay from your own wallet and hand over the transaction hash; the chain is the ledger, so the payment is auditable by anyone and there is no key on this side for anyone to take. A pass is a transaction, not an account.
Check it yourself
Nothing here needs an API key, an account, or funds. Run hatch/proof USDe in the console above and paste what it gives you into a terminal. If our number is wrong, that is how you find out.