Ostium: A Stolen Price-Feed Key Faked a $5,000 Bitcoin and Drained $23.75M
With one stolen signing key, an attacker told Ostium that Bitcoin cost $5,000. Six minutes later, 3,666 depositors had lost $23.75 million.

Key numbers
$23.75M
STOLEN
$650K
RECOVERED
3,666
WALLETS HIT
$5,000
FAKE BTC PRICE
At 14:18 UTC on 15 July 2026, someone bought Bitcoin on Ostium for $5,000. Everywhere else in the world, Bitcoin cost about $60,000. Six minutes later the trade was closed at the real price, and the difference had been paid out of a pot of money belonging to 3,666 ordinary depositors. By the time Ostium shut its doors, 23,752,746 USDC, about $23.75 million in digital dollars, was gone.
Ostium is a trading platform for perpetual futures, or perps: bets on whether a price will rise or fall, usually made with borrowed money, that never expire. A share trader would recognise them as close cousins of contracts for difference. Ostium lets people take these bets on Bitcoin, gold, currencies and share indices. It runs on Arbitrum, a cheaper add-on network built on top of Ethereum, and settles in USDC, a stablecoin, which is a token designed to always be worth one US dollar. Ostium Labs, led by co-founder and chief executive Kaledora Kiernan-Linn and co-founder and chief technology officer Marco Antonio Ribeiro, had raised about $28 million from backers including General Catalyst and Jump Crypto.
Who actually lost the money
When an Ostium trader wins, someone has to pay. That someone is the OLP vault, short for Ostium Liquidity Pool. Ordinary people deposit USDC into it and, in return, earn a share of trading fees and of traders' losses. In effect they act as the house in a casino, or as the underwriter on an insurance book: steady income most days, a big bill on a bad one. On 15 July the bad day came from a fake bet. The 3,666 wallets that lost money were the vault's depositors, not the traders, and not Ostium itself.
A price feed nobody checked
Every trading platform needs to know the current price. On-chain platforms get it from an oracle, a service that delivers outside prices to the platform's code, much as a ticker feed delivers prices to a broker's screen. Ostium's oracle prices were signed off-chain, on Ostium's own servers, with a private key, a secret code that works like a signature. The platform's contracts, its smart contracts or code that moves money by itself, accepted any price report carrying that signature that arrived through one of its registered "PriceUpKeep" forwarders.
The attacker had both: the signer's key and a registered forwarder. Galaxy Research, which reconstructed the theft, found that the contracts checked who had signed a price, not whether the price made sense. So the attacker signed a report saying Bitcoin was worth $5,000, opened a long position, a bet that the price would rise, at that fake price, and then closed it at the true price of about $60,000. The contract paid out the "profit" from the vault.
It started small. A first test bet of 100 USDC came back with about 898 USDC. Then came the big one: a single transaction of $11.86 million. Six more followed, of $13,480 twice, $4.49 million, $3.59 million, $2.7 million and $1.08 million. Eight transactions, one receiving wallet, about six minutes. Ostium paused trading within the hour. The vault had already lost most of its money.
Out of scope
The most embarrassing detail came from the rules of Ostium's own bug bounty, the reward it offered security researchers on the Immunefi platform for finding flaws before criminals did. According to analyses by Halborn and others, the bounty treated the registered price forwarders, including PriceUpKeep, as trusted and placed any problem that required a compromised or malicious forwarder out of scope. The one part of the system the attacker used was the one part nobody was being paid to test.
The code itself was not broken. Ostium said there was no flaw in its smart contracts and no compromise of the multisig wallets, the accounts needing several signatures, that control the protocol. The breach was unauthorised access to its off-chain systems. Its post-mortem, published on X on 29 July, did not explain publicly how the key was taken. In a 30 September update the team said the evidence suggested the attacker "may have been a state-sponsored actor". It named no country.
The attacker swapped the USDC for roughly 12,084 ether and sent it through Tornado Cash, a mixer that pools many people's coins and pays them out again so the trail goes cold, like changing marked banknotes at a busy bureau. Ostium hired incident responders including Mandiant, zeroShadow, Collisionless and the volunteer group SEAL 911, and informed law enforcement. Early estimates of the loss started at about $18 million from the security firm Blockaid before the full eight transactions were counted.
Paying back the small savers first
Trading reopened on 23 July, first in reduce-only mode, where traders could close bets but not open new ones. New deposits to the vault stayed shut, and the first settlements to remaining depositors restarted only in mid-September. On 1 October Ostium launched Gateway, a rebuilt trading system.
The compensation plan arrived on 30 September, and it was built around a hard number. Ostium had recovered 649,967 USDC, about 2.7% of what was taken. Every wallet that had lost 1,000 USDC or less would be paid back in full. That covered 3,321 of the 3,666 wallets, 90.6% of them, which let headlines say more than 90% would be made whole. By The Crypto Times' calculation, the 345 remaining wallets carried at least 86% of the dollar loss, about $20.4 million.
Those larger depositors were offered a flat 1,000 USDC in exchange for giving up the rest, or a place in Stage 2. Under Stage 2, announced in October, they could choose class A, paid in instalments from future recoveries and Ostium's revenue, starting with half of its opening fees, or class B, swapping the loss for shares in Ostium Labs priced at its next funding round. The Stage 2 portal opens on 30 October. Ostium's terms say plainly that the plan does not guarantee recovery of the full loss, and claimants must sign a release giving up legal claims against the company.
Ostium has a second fight on its hands. On 4 September ESS Frontier LLC, acting for a Hong Kong lender named Minghui Zheng, sued Ostium Foundation, Ostium Labs and Kiernan-Linn in federal court in Manhattan, alleging a default on a $15 million loan. Those are allegations, and the case was before Judge Lewis A. Kaplan as of early October.
The aftermath
Ostium survived and its depositors mostly did not get their money back. Trading reopened on 23 July 2026 in reduce-only mode; vault settlements resumed in mid-September with new deposits still paused, and the rebuilt Gateway trading system launched on 1 October. The 29 July post-mortem blamed unauthorised access to off-chain systems and found no contract or multisig compromise; on 30 September the team said the attacker may have been state-sponsored. Of the 23,752,746 USDC taken, 649,967 USDC (about 2.7%) had been recovered by 30 September, with the rest swapped for about 12,084 ether and passed through Tornado Cash. The compensation plan repaid in full the 3,321 wallets that lost 1,000 USDC or less, but the 345 larger wallets, holding at least 86% of the loss, were offered either 1,000 USDC to settle or a Stage 2 claim: instalments from future recoveries and revenue (starting with 50% of opening fees) or equity in Ostium Labs at its next round. The Stage 2 portal opens on 30 October 2026, claims require a legal release, and Ostium says full recovery is not guaranteed. Separately, ESS Frontier LLC's lawsuit alleging a $15 million loan default by Ostium entities and Kiernan-Linn was pending before Judge Lewis A. Kaplan in Manhattan as of early October. No one has been identified or charged over the theft.
What this teaches
- A price feed is a key to the vault. Ostium's contracts checked who signed a price, never whether the price was believable; a $5,000 Bitcoin should have been rejected on sight.
- Bug bounty scope is a security decision. Declaring the price forwarders trusted meant the one route the attacker used was the one route researchers had no reason to test.
- Depositors in a trading vault are the house, and the house pays when the game is rigged. The 3,666 wallets that lost money had placed no bets.
- Repaying 90% of wallets is not repaying 90% of money. The 345 largest depositors carried at least 86% of the loss and were left with a flat payment, future revenue or shares.
- Six minutes is faster than any pause button. Detection within the hour still left the vault empty.
COMMENTS