Liquidation coverage · Robinhood Chain

We measure the door.
Not the fire.

$233.2M wants out$2.6M fits
One arrival in 91 gets through. The gap is drawn at 1.09% — the measured width of the exit at block 20323271, not a number picked to look alarming.

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.

Collateral behind the door$233,225,775
What fits through it$2,550,643
91.4 : 1dollars waiting per dollar that can leave
HATCH CONSOLECHAIN 4663 · READ ONLY
$

To scale

91.4 to 1

Can redeem on this chain87.03%
$17,291,861exit $15,049,660
Bridged — the pool is the whole exit1.09%
$233,225,775exit $2,550,643

Bar width is dollars of collateral, on one shared scale. The filled portion is what can leave.

Where it stops

Ask for more.
Get the same.

$10,000$9,9990.00%
$50,000$49,986-0.02%
$100,000$99,947-0.04%
$250,000$249,681-0.12%
$500,000$498,740-0.24%
$1,000,000$508,080-49.19%
$2,500,000$508,080-79.67%
Selling
Received

USDe into USDG, quoted at block 20323271. Both bars share one scale. Past roughly $508,080, additional input buys nothing.

Two doors

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.

Sell it

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

Seven liquidations have already run here

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.

One liquidation, start to finish0xa61c0fe79608534b1e16c816f353aa6bfcb53713afeaf8563f5c6e2f40e0784c
  • 01

    Morpho seizes the borrower's collateral and hands it to the liquidator.

    Liquidate · market 0x039503b6… · block 11,576,642

  • 02

    The liquidator swaps it through a pool.

    Swap · 0xe3d40f1c… (Uniswap v2 pair)

  • 03

    Then through a second pool, into the loan asset.

    Swap · 0xca46b092… → USDG

  • 04

    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

MarketCollateralBorrowedMax exitMechanismCoverage
USDe / USDG$184,300,804$159,050,512$508,080bridged0.28%
syrupUSDG / USDG$48,924,971$43,277,446$2,042,563bridge-minted4.17%
spUSDG / USDG$17,291,861$14,413,609$15,049,660redeemable87.03%
wsNET / USDG$0$10,716not 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

Priced per question, paid onchain

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.

Free, alwaysno key, no account

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
Paid1 USDG · 30 days

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"
  }]
}
01

Call /v1/exit?symbol=USDe&size=1000000. It answers 402 and tells you what it costs.

02

Send the USDG to the address in the response. Your wallet, your gas, your call.

03

Sign hatch-pass:<tx hash> with the wallet that paid, and retry with X-PAYMENT: <tx hash>.<signature>.

04

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.

  1. hatch/live USDe 1000000 — the console calls this endpoint for real and prints the 402 it gets back, with the address to pay.
  2. Send the USDG from your own wallet. Nothing on this page can move your funds.
  3. 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

Every figure has a command

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.