know what your collateral is actually worth if you had to sell it.
shoal publishes how much of a token can really be sold, and caps borrowing to that number.

last week of august 2026
three protocols, one week, same attack.
pump a token nobody trades. post it as collateral at the inflated price. borrow real assets. leave. the protocol never asked how much of that token could actually be sold.

- aug 30
tectonic
~$75m
TONIC pumped ~100x in 20 minutes, borrowed against it. cronos halted the chain.
- aug 27

moonwell
$8.7m
illiquid MAMO manipulated and used as collateral on base.
- aug 25
morpho
$36.4m liquidated
a $320k trade in a thin pendle pool moved PT-reUSD 3%. $67.5m of collateral sat behind a $9m pool.
aave pays risk firms to watch for it. the other couple hundred lending markets have nothing.
how it works
two numbers, one plug-in.
- 01
depth oracle
how much usd you could sell right now within a slippage band. dex side from uniswap pools via the graph, cex side inside a chainlink confidential workflow.
- 02
cap steward
a contract a lending market enrolls with one call. it clamps borrow caps to a fraction of executable liquidity and drops them to zero when a pump starts.
- 03
scanner
every market we can index, ranked by how much is lent vs how much could actually be sold. with a time machine.
- 04
api
the depth numbers behind an x402 gateway. any agent can pay per query.

demo
same attack. two markets. one survives.
two identical compound-fork markets, one pump. the plain one gets drained. the one running shoal reverts with BorrowCapExceeded.
honest limits
what it doesn’t do.
it won’t save a market from a flash crash or from bad debt caused by honest volatility. it stops one attack, the one that keeps working, for everyone gauntlet and chaos labs don’t cover.
team
built at ethonline 2026
FAQ
questions, answered.
no. a price feed tells you what one token trades at. shoal tells you how much of it you could actually sell.