Ostium published its post-mortem on Wednesday and confirmed a loss larger than the figure most outlets ran two weeks ago. The Arbitrum perpetuals venue lost $23,752,746 in USDC from the pool that backs every trade on the platform. The whole thing took about six minutes. No contract broke.
Ostium sells perpetual futures on real world assets: stocks, indices, commodities, currencies. In May it wired Nasdaq market data into the venue for equity perpetuals, the first onchain exchange to do that. So the product rests on prices arriving from somewhere else, and arriving correctly. The failure point for a venue like this is rarely the matching engine. It is whatever supplies the number, as a single share trade that set a $407 million perp market showed earlier this week.
A $5,000 bitcoin price, then a $60,000 one
On July 15 at 14:18:48 UTC someone holding a compromised oracle signer key pushed fabricated bitcoin price reports through a forwarder the protocol had registered itself. One Arbitrum transaction ran twenty alternating calls between the trading contract and the price upkeep contract. Positions opened against a bitcoin price of exactly $5,000 and closed near $60,000.
The round number gave it away, and BTC/USD happens to be the one pair on Ostium that anybody could cross-check in seconds against a dozen other venues. A 100 USDC test trade came back with roughly 897.8 USDC of manufactured profit. The largest single batch paid out about $11.86 million. Circuit breakers fired twice before withdrawals finally stopped. Nobody on the other side was watching the feed itself.
| Ostium exploit, by the numbers | Figure |
|---|---|
| OLP vault before the attack | $32.7M USDC |
| Confirmed loss (post-mortem) | $23,752,746 |
| Vault after the attack | about $9M |
| Fake opening bitcoin price | $5,000 |
| Closing bitcoin price | about $60,000 |
| Elapsed time | about six minutes |
Liquidity providers carried all of it
Trader collateral sits in a separate contract and came through untouched. Open positions survived. Every dollar came out of the Ostium Liquidity Pool, the vault that takes the other side of each trade and pays the winners. Cryptobriefing put that vault at $32.7 million USDC before the attack and around $9 million after, close to 72 percent of it gone.
Those depositors were the counterparty to more than $50 billion of cumulative volume by the time the Nasdaq deal landed in May, and their compensation for that role is trading fees. Fees are priced against the risk that traders sometimes win. They are not priced against a signer key handing someone a bitcoin quote of $5,000. One vault absorbed a two week drawdown that no fee schedule anywhere covers.
The vault paid because a winning trade closed. That is precisely what the code exists to do. Ostium says it has "no evidence this incident was a result of a vulnerability in Ostium's smart-contract code logic," and nothing in the public record contradicts that. Auditors read Solidity. What failed here was a key sitting offchain, which is also how a licensed stablecoin issuer lost its reserves earlier this year.
Day one said $18 million
The Defiant headlined "up to $18M" on July 15. Cryptobriefing ran a range of $18 million to $23.7 million the same afternoon. Aggregators copied the lower end and it stuck, so two weeks on plenty of pages still carry a number 32 percent below what Ostium itself now reports.
Onchain, the stolen USDC became 12,080 ETH, and PeckShield tracked 10,540 of that into Tornado Cash. The exit was finished long before anyone could intervene, the same race Resolv ran over 72 hours for $80 million. Trading restarted on July 23 on a rebuilt production environment with multi party controls on the signer. Vault deposits are still shut. Ostium says a recovery plan for liquidity providers is close, without saying how much of the $23.7 million it means to cover, or when.