SmugCalls · research
Morpho's public API says $27,786,508,296 is borrowed across its markets. Throw away every market whose borrow rate is above 1,000% a year and $4,752,869,523 is left — which matches DefiLlama's on-chain figure of $4,818,788,694 to within 1.4%. The missing $23bn is not money. It is compound interest accruing on loans that will never be repaid, in markets that have been dead for a year.
Two methods that share no code agree to 1.4%. That is the whole argument. Everything below is just showing where the other 83% comes from.
A Morpho market is a pair: one collateral asset, one loan asset, one liquidation threshold. When the collateral collapses, borrowers stop repaying — there is nothing to reclaim. Lenders withdraw whatever liquidity is left, and utilisation climbs until it hits exactly 100%. At 100% the interest rate model does what it is designed to do: it raises the borrow rate to punish the imbalance and attract new deposits. Nobody deposits, because everyone can see what happened. So the rate stays at its maximum, and the accounting balance compounds against it, forever.
Here is one. K/USDC on Arbitrum, created 7 May 2025, borrow rate 297,995.8% APY, utilisation 100.00%:
2025-07-05 $ 2,114,661 2025-09-05 $ 4,733,925 2025-12-07 $ 27,582,080 2026-03-10 $ 177,539,101 2026-06-11 $ 1,147,212,367 2026-09-01 $ 6,762,590,894
It roughly doubles every month. Left alone it will read about twenty trillion dollars a year from now, and that will be just as meaningless as $6.7bn is today. The Morpho Blue contract on Arbitrum holds $900,323 of USDC in total.
Fifty-five markets sit at that ceiling. Together they account for $23,033,638,773 of reported borrowing.
The compounding is written into the vault contracts too. Adpend USDC on Ethereum
(0x5555…5555) is an ERC-4626 vault. Called directly on chain,
totalAssets() returns 214,731,602 USDC against
totalSupply() of 453,037 shares. That is
474 USDC per share, where a healthy USDC vault sits near 1.00. Its neighbours read
479, 149 and 145.
Of $1,972,522,586 in reported vault TVL, $337,774,049 — 17.1% — is this kind of paper, spread across nine vaults.
Morpho is not hiding any of this. Every one of the fifty-five markets is returned with
listed: false, and every single one carries at least one warning in the same
response — not_whitelisted on all of them, plus bad_debt_unrealized,
oracle_unusable or sustained_low_liquidity on most. Markets at the ceiling
carrying no warning at all: zero. All nine affected vaults are unlisted too, so
they do not appear in the curated interface.
The flags are in the payload. Anyone who sums the payload without reading them gets a number 5.8× too large, and that is the consumer's mistake, not the protocol's.
Which leaves the part that is actually interesting.
Defaulted markets are not rare. We pulled every lending pool DefiLlama tracks — 2,458 of them, seventeen protocols — and found 24 markets outside Morpho sitting at 99.9%+ utilisation with real money in them. They are harmless. Euler's AUSD market on Avalanche holds $7.96m at 0.2%. Save's KHAI market on Solana holds $1.98m at 14%. They sit still.
What separates them is not how often they fail. It is how much a single failure costs, and that is set by one number: the highest rate the interest model will charge.
Highest borrow rate observed per protocol, and what it does to a stuck balance over one year. Log scale. The same two sources disagree by 8,370× about the same protocol, because DefiLlama filters these markets out and Morpho's API does not.
The same accident that turns $1m into $4m at Euler turns it into $2.98bn at Morpho. Not because Morpho has more defaults — because its rate model has no meaningful ceiling.
An inflated ERC-4626 share price is normally an exploit primitive: post the share as collateral
somewhere that prices it by convertToAssets(), borrow real money against paper. We
checked. Across all 7,613 Morpho markets, the number that accept any of these nine
vaults' shares as collateral is zero. Buying a share cheaply is not possible either
— deposits mint at the inflated price, so you would pay $474 for it.
So this is not a hole. It is a measurement hazard, and it is worth exactly one habit: before you add up somebody's API, look at what the rows are doing.
# the phantom, in one query
curl -s https://blue-api.morpho.org/graphql -H 'content-type: application/json' \
-d '{"query":"{markets(first:100,where:{borrowAssetsUsd_gte:100000})
{items{state{borrowAssetsUsd borrowApy utilization}}}}"}'
# then sum borrowAssetsUsd twice: once for everything,
# once only for rows with borrowApy < 10. The gap is the phantom.
# and the reality check, no API involved:
cast balance --erc20 0xaf88d065e77c8cc2239327c5edb3a432268e5831 \
0x6c247b1F6182318877311737BaC0844bAa518F5e --rpc-url https://arb1.arbitrum.io/rpc
blue-api.morpho.org and api.llama.fi on
1–2 September 2026. Market history via the API's own historicalState.totalAssets(), totalSupply()
— done against public RPC endpoints, not through any indexer.
This is the same habit we apply to our own record: every call we made, including the six in ten that never doubled, hashed and timestamped on Bitcoin so it cannot be edited afterwards. Schema and licence at /data.html. Take it, republish it, argue with it — no permission needed.