Over the last few days, we've watched a Bitcoin heist worth tens of millions of dollars unfold. I'm not a crypto guy, but the scale of it, and the fact that the bitcoin came out of wallets people kept offline, got my attention. So let's break down what happened here.
At the end of July 2026, bitcoin began disappearing from wallets whose owners had done nearly everything they were told to do. Their Coldcard devices were offline. Their backup words had never been typed into a website. Some devices were sitting in safes.
How did people lose bitcoin from hardware wallets that were stored safely in their homes?
JUST IN: Bitcoin stolen from Coldcard hardware wallet hack now exceeds $88,000,000.
The story starts five years earlier, with a software update that appeared to work perfectly.
Your bitcoin isn't inside the Coldcard
A hardware wallet is a bit of a misleading name. It does not hold bitcoin the way a leather wallet holds cash. Your bitcoin lives on the public blockchain. The Coldcard holds the private keys that let you move it.
When you set up a wallet, the device gives you 12 or 24 backup words, often called a seed phrase. Those words can recreate the wallet and every private key inside it. Anyone who has the words can control the bitcoin. They do not need the original Coldcard.
That is why a seed phrase needs to be secret. It also needs to be random.
If a wallet creates your backup words from a genuinely random starting point, guessing them is effectively impossible. But if the starting point is predictable, the 24 words are mostly window dressing. Keeping them offline is like locking a house key in a safe after the locksmith made a bunch of copies.
The random-generation bug
In March 2021, Coldcard changed the code it used to create new wallets. The new code called a random-number function that looked correct but quietly fell back to weaker software instead of the device's hardware generator. The backup words still looked random, but on Mk2 and Mk3 devices they came from roughly 40 bits of randomness, a search space specialized computers could work through. Newer models reached about 72 bits, which was better but still below the intended security level. Coinkite's technical account describes the wiring mistake in more detail.
# What Coldcard intended: randomness from the hardware chip
seed = ckcc.rng_bytes(32)
# What affected firmware called: a weaker software fallback
seed = ngu.random.bytes(32)
Bug sits for 5 years
People kept setting up Coldcards. The devices gave them normal-looking backup words, and they sent bitcoin to the new wallets. From the owners' point of view, everything worked.
The bug stayed in released firmware. Later Coldcard models added another source of randomness, which made them harder to attack, but their seeds still fell short of the intended security level.
Meanwhile, the vulnerable wallets accumulated money. Some sat untouched for years. Their owners had no reason to suspect that anything was wrong because a weak seed looks exactly like a strong one.
How the attacker found the wallets
The attacker did not need to choose a victim first. They could start with the faulty Coldcard code.
They reproduced the wallet generator on their own computers and tried different device and timing inputs. Each guess produced a possible seed phrase. From that seed, the attacker could calculate the Bitcoin addresses that belonged to it.
Then they checked those addresses against the blockchain. Most guesses led nowhere. Some matched wallets holding real bitcoin.
Once a guessed seed produced a funded address, the attacker already had the master key needed to spend from that wallet. They could load it into ordinary wallet software, sign a transaction, and send the bitcoin somewhere else.
The Coldcard sitting in a safe was no longer part of the equation. Neither was its PIN. The attacker had created another copy of the key.
This is also why the air gap did not help. An air gap can stop a good key from leaking over a network. It cannot make a predictable key stronger.
The wallets started emptying
On July 29, a series of transactions began draining affected wallets. Users noticed the missing funds the next day. Researchers found the common link, reproduced the weak seed generation, and Coinkite published a security advisory.
By July 31, Bitcoin Optech estimated that more than 1,000 BTC had been stolen, worth roughly $70 million at the time. The investigation also widened beyond the Mk3. Coinkite confirmed that Mk2, Mk4, Mk5, and Q seeds were affected on certain firmware versions.
We still do not know who the attacker is or how they found the bug. Coinkite has suggested that someone may have used AI to review old firmware, but has presented no evidence that AI was involved.
What does this mean for Bitcoin and crypto?
Coldcard was a respected, Bitcoin-only hardware wallet used by people who took self-custody seriously. Many of the victims followed the rules: they bought a hardware wallet, kept their seed words offline, and stored the device somewhere safe. Some held their bitcoin untouched for years. They still got wiped out.
Technically, Bitcoin did what it was supposed to do. The network received transactions signed with valid keys and processed them. The failure happened earlier, inside the tool that created those keys. That distinction matters to engineers. It probably means very little to someone watching their savings disappear.
Bitcoin maximalists have spent years repeating "not your keys, not your coins" whenever an exchange collapses. These users did hold their keys. The problem was that an attacker could recreate them. It is easy to see why some people who thought they had done everything right are now losing faith.
Absolutely gut wrenching scenes on the Bitcoin subreddit. Serious question: if you have significant Bitcoin holdings, why wouldn’t you sell and buy the Bitcoin ETF instead? This way you wouldn’t have to worry about incompetent hardware wallets and self custody altogether. Show more
Hardware wallets still protect against plenty of attacks, but this incident makes the trust involved harder to ignore. You are trusting the hardware, its firmware, and the code that generates the seed phrase. Most regular people cannot audit any of that themselves.
Self-custody puts you in control, but it also makes you responsible for failures you had no realistic way to detect. For anyone deciding whether to hold Bitcoin, that tradeoff is now harder to dismiss.
