One Deposit, Two Receipts: How a Wrapper's Double-Spend Left 36% of Osmosis's Bitcoin Unbacked

Weekly Deep Dive · September 15, 2026 · 9 min read · The OpSecWallet Research Team
Wallet SecurityDeFiHardware WalletsTRON

A bitcoin wrapper fails in a way that looks like nothing at all. The price does not move. No signature looks wrong. On June 25, 2026, a flaw in Nomic's deposit-forwarding code let one bitcoin deposit be credited twice, minting about 40.65 nBTC against a deposit that existed once — and by the time Osmosis disclosed the problem on September 9, 39.84 of those tokens, roughly 36% of its alloyed bitcoin token's entire backing, had been a receipt for bitcoin nobody had deposited.

What makes it worth taking apart is that the mechanism is the least exotic one available: no stolen key, no manipulated oracle, no forged signature. A wrapper's own bookkeeping was wrong, and nothing in the system was built to notice. The same week produced a second unbacking at Symbiosis, and the week before a third at Liquid, through the same category of failure at a much larger scale.

1. The Incident in Six Lines

Key takeaways

2. What nBTC and allBTC Actually Are

Nomic is a Cosmos-chain custodian that issues nBTC against bitcoin deposits. Its custom deposit-forwarding mechanism is a convenience feature: rather than asking a user to complete a deposit step by step, it watches for incoming bitcoin and issues the corresponding nBTC automatically. allBTC, meanwhile, is Osmosis's alloyed bitcoin token — a wrapper of wrappers that merges several different bridged bitcoin versions, nBTC among them, into one fungible asset so that liquidity does not fragment across half a dozen near-identical tokens.

The structural consequence is the part holders rarely price in. An alloyed token has one shared backing and therefore one shared point of failure: when any single issuer's accounting breaks, every holder of the blend absorbs it, including holders who never touched nBTC and may not know which tokens sit inside the blend. That is why a $3.15M bookkeeping error at one small Cosmos custodian became a solvency question for an entire pool, and why the subject of Osmosis's notice was not nBTC but allBTC.

3. Timeline

WhenWhat happenedSource signal
June 25, 2026A flaw in Nomic's deposit-forwarding mechanism credits one bitcoin deposit twice, minting about 40.65 nBTCBlockFence's Rarma tracing
June – Sept 202639.84 nBTC reaches Osmosis through 25 cross-chain transfers and blends into allBTCBlockFence tracing; Osmosis's backing breakdown
Sept 9, 2026Osmosis discloses the exploit and freezes minting, redemption, deposits and withdrawals for allBTCOsmosis's own freeze notice
Sept 9–11, 2026Emergency chain upgrade v31.1.0 freezes 22.65 BTC in the attacker's addressOsmosis's own governance proposal
Sept 10, 2026Osmosis publishes the backing breakdown: 70.73 BTC genuine, 22.65 BTC frozen, 17.19 BTC gapOsmosis's own backing breakdown
PendingGovernance vote to seize the frozen funds; community-pool plan for the residual gapOsmosis's own governance proposal

4. Where It Broke: One Deposit, Two Receipts

The attacker did not need a key. Nomic's forwarding layer watched for incoming deposits and issued nBTC automatically, and the flaw in that layer let the same deposit be credited twice — one arrival, two valid-looking receipts. Twenty-five cross-chain transfers later, most of the minted supply sat inside Osmosis, indistinguishable from genuine nBTC because at the level every downstream system inspects, it was genuine: correctly formatted, properly attested, accepted by an IBC path that was working exactly as designed.

Set beside the month's other two unbackings, this case completes a small taxonomy of ways to issue a receipt for nothing. Liquid's failure was in verification — a range-proof cache collision that let unbacked L-BTC pass the checks real coins would have passed, after which a federated signature set moved genuine BTC against a fake claim. Symbiosis's was in authorization — a bridge contract that minted 46.1 billion syBTC in response to a call it should never have accepted. Nomic's was in accounting — the logic that decides whether a deposit happened. What the three share matters more than where they differ: in every case the only party verifying the reserve was the party issuing the receipt, and no independent check stood behind it.

That is also why the gap ran from June to September. An unbacked receipt cannot be detected by price, because allBTC's market held no independent view of its reserve — a quote reflects what holders believe about the backing, not the backing itself. The one instrument that would have caught this on day one is a reconciliation of tokens outstanding against a custodied reserve, run on a schedule by someone who does not issue the token. Nothing forced one, so the chain's own transparency was not enough.

5. Who Was Actually Exposed

The list is longer than the list of people who bought nBTC. Every holder of allBTC carried the hole, whether or not they had ever interacted with Nomic; so did liquidity providers in allBTC pools, and so did every venue that quoted the token at face value while 36% of what stood behind it was fiction. That is the shape of a blended-asset risk: the issuer a holder chose is not the only issuer that holder depends on.

The damage also arrived in a form that is easy to misread. Nobody's wallet was emptied. Balances were unchanged and the ledger was accurate; what changed was the ratio between tokens outstanding and the bitcoin behind them. That places wrapper failures closer to dilution than to theft — the loss is real, evenly spread, and invisible on a wallet screen, which is precisely why the discovery lag ran as long as it did.

Key point: A holder's balance does not move when a wrapper stops being backed. What moves is what stands behind it — and for weeks, more than a third of what stood behind allBTC was a receipt for bitcoin that was never deposited.

6. The Freeze, and the Hole It Left

Osmosis's response was the fastest of the month's three recoveries. An emergency chain upgrade, v31.1.0, froze 22.65 BTC still sitting in the attacker's address before it could be moved, converting a would-be total loss into a partial one; a governance vote to seize the frozen funds is pending. It worked, and it deserves to be recorded as a precedent rather than only as a win: a validator set demonstrated that it can freeze a specific wallet mid-flight. The capability that saved this pool is the same capability that sits uneasily beside a decentralised network's assumptions, and holders of any asset on that chain now know it exists.

It is worth being precise about what a freeze can recover. It returns assets that have not yet moved; it does not restore an asset's credibility. allBTC's remaining holders end up with a token whose backing is whole only after a governance vote and a community-pool transfer — and markets will price that sequence, not the arithmetic. The portion of the proceeds already converted to about 671.1 ETH and routed to Tornado Cash is beyond any vote. A freeze recovers what has not moved yet; it does not recover what has.

7. Recovery Was Improvised in All Three Cases

The week's second unbacking, at Symbiosis, recovered differently again. On September 11 an attacker got the BridgeV2 contract on BNB Chain to mint roughly 46.1 billion syBTC — more than two thousand times bitcoin's total supply — to a fresh wallet, in a call monitoring firm Blockaid flagged within hours. Only about 4.39 WBTC was convertible through Uniswap V4 before monitored pools halted, realizing roughly $336,000: the protocol's shallow roughly $7M of total value locked capped the theft. Symbiosis suspended native bitcoin routing, recovered about 15 BTC into a team multisig, and offered a 20% white-hat bounty with a September 13 deadline. The deadline lapsed, and the bounty was redirected to informants.

Symbiosis's thinness cuts both ways, and that is the point worth keeping. The same shallow liquidity that capped the attacker's exit is what would have stopped an ordinary holder from exiting at par during the incident. Liquidity is not only the attacker's constraint; it is the holder's emergency exit, and in a wrapper incident it closes for everybody at the same moment.

Place the three recoveries side by side and the pattern is not a security perimeter but a negotiation. Liquid's actors returned 3,400 BTC on September 7 — in Bitcoin block 965,950, after Blockstream signed confirmation that its bridge nodes were patched — and kept roughly 598.5 BTC with no published bounty terms. Osmosis froze and is asking a validator majority to seize. Symbiosis secured what it could and priced the rest with a bounty nobody accepted. All three worked, to different degrees, and none of them was in place before the incident started. The Security Alliance's whitehat safe harbour — return within 72 hours, keep up to 10% capped at $1M — exists precisely so that the negotiation does not begin with whoever holds the money setting every term. Protocols that wrap value should treat a published safe harbour the way they treat an audit: as pre-incident infrastructure.

8. What a Holder Should Do

9. What to Watch

Three questions decide what this pattern becomes. First, does the Osmosis governance vote to seize the frozen 22.65 BTC pass, and does the community pool actually cover the 17.19 BTC gap — because a blend that closes its shortfall only by collective payment has answered a question about who owns the residual risk. Second, do other alloyed and bridged tokens publish reserve attestations, or does the market keep treating a blend's price as evidence of its backing? Third, does the gap between the June origination and the September disclosure appear again in the Nomic and Symbiosis post-mortems — because a failure detectable only by reconciliation, undetected for most of a quarter, is a statement about audit cadence rather than about one Cosmos custodian.

Frequently Asked Questions

What does it mean for a bitcoin wrapper to be unbacked?

It means the tokens outstanding exceed the real deposits behind them, so part of the supply is a receipt for bitcoin that does not exist. Here a flaw in Nomic's deposit-forwarding mechanism credited one deposit twice, minting about 40.65 nBTC against a single arrival; 39.84 of those tokens ended up inside Osmosis's allBTC, about 36% of that token's backing. Nothing was stolen from the underlying bitcoin chain. The failure is in the accounting at the issuance layer — which is exactly why it can persist for weeks while the token trades normally.

I hold allBTC on Osmosis. What actually changed for me?

Your balance did not change; your claim did. Osmosis froze minting, redemption, deposits and withdrawals for allBTC on September 9, and an emergency upgrade froze 22.65 BTC in the attacker's address. Osmosis's own breakdown records 70.73 BTC of genuine backing against a residual gap of about 17.19 BTC that the community pool is proposed to cover, with a governance vote to seize the frozen funds. Until those steps complete, allBTC's 1:1 claim is a proposal rather than a fact — follow Osmosis's own notices rather than the token's quoted price.

Was this an Osmosis problem or an IBC problem?

Neither. Osmosis's chain and the IBC path both worked as designed; the counterfeit tokens were properly formatted and passed the checks they were supposed to pass. The flaw was in Nomic's custom deposit-forwarding mechanism, a convenience layer on top of the deposit process, which credited the same deposit twice. The lesson generalises: a feature that automates issuance is part of the issuance security model, whether or not it was designed as one.

If the funds were frozen, why is there still a gap?

Because a freeze can only hold what has not moved. Osmosis's emergency upgrade froze 22.65 BTC in the attacker's address, but part of the position had already been swapped, bridged and converted — about 671.1 ETH of it reached Tornado Cash — and that portion is beyond any governance vote. The remaining roughly 17.19 BTC gap is what the community pool is proposed to cover, which means the last part of the loss lands on the holders who stayed.

Is wrapped bitcoin fundamentally unsafe?

It carries a risk native bitcoin does not: your balance depends on the wrapper's deposit-verification code, its custodians and its audit cadence, none of which you can inspect from a wallet screen. Three different wrapper codebases failed at that job in five weeks, and none of the failures would have shown up in a price chart beforehand. Wrapped assets can be held deliberately — issuer named, verification understood, redeemability tested, exposure sized — but they should not be treated as interchangeable with bitcoin you self-custody.

Sources & Methodology

This article is based on public data and official disclosures. Figures were last reviewed on September 15, 2026. Values change with network conditions; always verify against the primary source before making decisions.

  1. Osmosis's own governance proposal and freeze notice (September 9–10, 2026) with Nomic's disclosure: allBTC minting, redemption, deposits and withdrawals frozen; 39.84 fake nBTC, about 36% of backing, valued near $3.15M; emergency upgrade v31.1.0; 22.65 BTC frozen in the attacker's address; community-pool plan for the residual gap.
  2. BlockFence's Rarma tracing (September 2026): the June 25 origination, about 40.65 nBTC minted, 25 cross-chain transfers into Osmosis, and about 671.1 ETH routed to Tornado Cash.
  3. Osmosis's own allBTC backing breakdown (September 2026): 70.73 BTC genuine, 22.65 BTC frozen, 17.19 BTC gap.
  4. Symbiosis's own recovery and bounty notices with Blockaid's detection alert (September 11–13, 2026): BridgeV2 unauthorized mint of 46.1B syBTC, about $336k realized through Uniswap V4, 15 BTC recovered into a team multisig, 20% bounty and the September 13 deadline lapse.
  5. Liquid Network's own incident report and Blockstream's incident status page (September 7–8, 2026): 3,400 BTC returned in Bitcoin block 965,950 after a signed patch confirmation, roughly 598.5 BTC outstanding with no published bounty terms.
  6. SEAL 911 whitehat safe harbour framework (public documentation): 72-hour return window and a 10% bounty capped at $1M, referenced as the pre-committed alternative to an improvised negotiation.
OSW
The OpSecWallet Research Team

We are an independent research desk focused on wallet security and safe on-chain operation. Every report is written from public data and official security disclosures, cross-checked against primary sources, and reviewed for accuracy before publication. We never ask readers for keys, seeds or transfers.

Disclaimer: This content is for informational purposes only and does not constitute financial, legal or security advice. No checklist or tool eliminates risk entirely; self-custody means you are responsible for your own keys.