2026-08-15 Β· 2275 words Β· 11 min
π The Coldcard Seed Flaw (2026) β Check Your Wallet in Three Questions
A build error left Coldcard seeds with about 40 bits of entropy for five years. Which models are affected, why a firmware update does not fix it, and the three checks that decide whether you must migrate.
Honest review. Some links are affiliate links: same price for you, a small commission for the project.
Published: 15-08-2026 Β· Sources verified against the manufacturer advisory Β· ~8 min
Is your Coldcard seed phrase at risk?
Your seed is at risk if it was generated on affected Coldcard firmware, you did not add at least 50 of your own dice rolls, and the wallet has no strong separate passphrase. A March 2021 build error disabled the hardware random number generator, leaving Mk2 and Mk3 seeds with roughly 40 bits of entropy instead of 128. Updating the firmware does not repair an existing seed.
π Keep long-term holdings on your own hardware. For the part you actually trade: Bybit β up to $30,000 bonus for new accounts
What actually happened
On 30 July 2026 bitcoin started leaving cold wallets. Not exchanges, not hot apps β devices people bought specifically so they could stop worrying. There was no hack in the usual sense: nobody guessed a password, nobody sent a phishing link, nobody touched the device. The owners did nothing wrong.
In March 2021, during a migration to a new cryptographic library, one line of build configuration went wrong. Coinkite set MICROPY_HW_ENABLE_RNG to zero, intending to disable MicroPython's software generator because Coldcard had its own hardware wrapper. But libngu's guard used #ifndef β it checked whether the macro was defined, not whether it was enabled. The build completed cleanly, and seed generation quietly resolved to MicroPython's deterministic Yasmarang fallback instead of the STM32 hardware generator.
Coinkite describes the mechanism plainly in its technical deep dive:
The hardware TRNG did not fail and trigger a weaker fallback at runtime. This was inherited platform behavior activated by a link-time error, not an intentional seed-generation design decision or shortcut.
The whole incident in five lines. libngu tests #ifndef β whether the macro exists β not whether it is enabled, so the build never fails. Source, captured 15 August 2026.
And the other half: Coldcard sets the macro to zero, with the comment Β«We have our own version of this codeΒ». Source, captured 15 August 2026.
The fallback was seeded from the chip's UID and timer registers β values that are fixed, observable or narrowly constrained. Not a cryptographic entropy source. For five years, seeds were being born weak and nobody noticed.
How bad is 40 bits, really?
It is the difference between impossible and a weekend project. Entropy is measured in bits, and each bit doubles the search space. The BIP-39 standard targets 128 bits β more combinations than there are atoms in a mountain range, unbreakable by every computer on the planet running until the sun burns out.
Forty bits is roughly a trillion possibilities. That is brute forceable on ordinary consumer hardware. Not a supercomputer, not a state actor: a desktop machine.
And the attacker never needs to know whose wallet he is breaking. He generates weak phrases in bulk, derives addresses from them, checks those addresses against the blockchain, discards the empty ones and sends a transaction to the funded ones. It is a conveyor belt, and it runs for as long as money sits on reachable addresses. That is why the thefts arrived in waves rather than all at once.
Which Coldcard models are affected
| Model | Firmware when the seed was created | Estimated entropy | Status |
|---|---|---|---|
| Mk1 | all releases through v3.0.6 | expected 128 bits | outside this issue |
| Mk2 / Mk3 | through v3.2.2 | expected 128 bits | used the hardware generator directly |
| Mk2 / Mk3 | 4.0.1 β 4.1.9 | ~40 bits | highest urgency β migrate |
| Mk4 / Mk5 | before standard 5.6.0 / Edge 6.6.0X | ~72 bits | migrate |
| Q | before standard 1.5.0Q / Edge 6.6.0QX | ~72 bits | migrate |
| TAPSIGNER Β· OPENDIME Β· SATSCARD | all | β | different codebase, not affected |
Coinkite's own wording on both estimates β and its own note that they are preliminary. Captured 15 August 2026.
Entropy estimates from Coinkite's technical backgrounder, which labels them preliminary. Fixed-release matrix from the COLDCARD security status page, verified 13 August 2026.
The patched releases, straight from the manufacturer β including 4.2.0 for Mk2 and Mk3, the one the table above leaves implicit. Note the line under the cards: fixed firmware corrects future seed generation, existing seeds still need migrating unless the dice exception applies. Source, captured 15 August 2026.
Block's table. The row that matters is Β«Mk4/Q/Mk5, successful reseedΒ» β β€2^32 where the attacker knows the timers, against the manufacturer's 72 bits. Captured 15 August 2026.
A caveat worth knowing. Coinkite's 72-bit figure for the newer models is its own estimate. Block's independent analysis reached a harsher conclusion: the secure-element entropy mixed in on Mk4 only reaches a 32-bit reseed, giving "at most 2^32 securely distinguished output streams". Block explicitly writes that the looser 73-bit ceiling "is not 73-bit cryptographic security". If you own a newer model, plan on migrating rather than leaning on the comfortable number.
The three questions that decide everything
I read both advisories and Block's teardown line by line before writing this, and the practical test comes down to three checks:
1. When was the seed created? If it was generated on a Coldcard from March 2021 until the fixed release for your model, it sits in the affected window. Seeds created before firmware 4.0.1 used the hardware generator.
2. Did you add your own dice rolls? This is the real escape hatch. On affected firmware, Coldcard hashed the device-generated seed together with every roll entered through Add Dice Rolls. Coinkite's security advisory is precise about the threshold:
50 to 98 independent, private rolls: the dice input alone contributed at least 128 bits of entropy.
The exact thresholds from the advisory β this is the block to check yourself against. Captured 15 August 2026.
If the rolls were fair, private and never recorded, the entropy came from you rather than the broken generator, and the seed is not considered at risk from this issue alone.
3. Is there a strong BIP-39 passphrase? A long, unique passphrase is a second barrier that reduced entropy alone does not cross β an attacker would have to discover it as well. Short, common, patterned or reused passphrases do not count. And note that a passphrase reduces exposure without repairing the seed; Coinkite still tells passphrase users to migrate.
One yes to the first plus two noes after it means you migrate.
Why updating the firmware is not enough
The patch protects the future, not the past. This is the part that costs people money, because updating feels like fixing.
A seed is generated once. Its weakness is recorded in the words themselves β the twelve or twenty-four items you wrote on paper. New firmware changes how the next seed is made and has no reach into one that already exists. The security status page states it without hedging: an update is not a seed migration.
The manufacturer states it on its own status page: the fix corrects future seed generation, it does not repair an existing seed. Captured 15 August 2026.
Coinkite's own migration guide opens with the same warning, and adds one worth repeating: never type seed words, a passphrase, dice rolls or a backup password into any website, and never send them to support. Source, captured 15 August 2026.
Here is the order that keeps a migration from becoming its own disaster:
- Install the fixed release for your model and confirm the version on the device.
- Generate a completely new seed on the updated Coldcard.
- Record the backup, then verify it β plus the wallet fingerprint.
- Verify a receive address on the device screen, not in software.
- Send one small test transaction and confirm it arrives.
- Only then move the remaining balance.
- Keep the old backup until the full amount has landed and confirmed.
Coinkite's own wording deserves repeating: rushing a wallet migration can create a more immediate risk than the issue you are trying to address.
What about multisig?
Multisig does not save you by default, and this is widely misreported. The intuition is reasonable β several keys are needed, so one weak key should not be enough. But if every key in the arrangement was generated on affected Coldcard firmware, every key is equally guessable and the quorum falls together.
Block states it without qualification:
Even if a COLDCARD is used in a multisig arrangement, if the arrangement is composed of exclusively vulnerable devices, then the impact of the vulnerability remains. A quorum of secure devices is necessary to protect against this issue.
Multisig helps here only when enough of its keys came from devices outside this issue. If you built a 2-of-3 from three Coldcards bought together in 2022, you have one problem, not three protections.
The uncomfortable lesson about open source
Coldcard's firmware has been public since 2018. Anyone could read it. Reproducible builds were introduced in the very release train that carried the bug. And the flaw sat there for five years.
Coinkite's own summary is unusually candid:
The COLDCARD source code has always been open and publicly available, so we have to assume that someone used AI to review previous versions of our firmware and stumbled upon this issue. A few weeks ago, we used one of the best available AI models to review our code for security issues, and it did not find this bug or anything serious.
Openness helps. Openness is not an audit. We have spent a decade treating "open source" as a guarantee, and this is what the gap between the two looks like in practice. Existing review confirmed the correct hardware generator was present in the binary β nobody verified which implementation the seed path actually reached.
That reframes the question people ask me most. "Which hardware wallet is best" is a weak question. The strong one is: where did the randomness in my seed come from, and can I verify that myself? Independent dice entropy is the answer that does not depend on trusting any vendor's build pipeline β which is exactly why the people who used it walked away from this untouched.
What this does not mean
It does not mean cold storage failed. One random number generator failed, in one product line, because of one line of build configuration. The principle of holding your own keys is intact.
The sensible split has not changed: long-term holdings on your own hardware, with a seed whose entropy you can account for, and the portion you actively trade on a platform with reserves and an insurance fund. Those are different jobs and they want different tools.
If you want the mechanics walked through end to end, I recorded the full breakdown on YouTube. And if you are reassessing your setup entirely, the 2026 hardware wallet comparison covers what else is on the table, while the Bybit security checklist handles the exchange side.
π Open a Bybit account β up to $30,000 bonus Β· π Hardware wallets compared
Written by Maria Klimenok Β· CRYPTO LADY. This article contains an affiliate link to Bybit β same price for you, a small commission for me. Coldcard, Coinkite and Block are not partners and no link here is affiliated with them. Entropy figures are the manufacturer's preliminary estimates and may change as the investigation continues; the formal technical postmortem had not been published as of 13 August 2026. This article is educational and is not financial or security advice β verify your own device against the manufacturer advisory before acting.
Running a campaign and want this kind of breakdown for your product? Formats and pricing Β· Telegram
Frequently asked
Is my Coldcard seed phrase affected?+
It is affected if the seed was generated on Mk2 or Mk3 firmware 4.0.1 through 4.1.9, or on Mk4, Mk5 or Q before the fixed releases, AND you did not add at least 50 independent private dice rolls, AND the wallet is not protected by a strong unique BIP-39 passphrase. If all three are true, treat the seed as compromised and migrate. Seeds created before firmware 4.0.1 used the hardware generator and are outside this issue.
Does updating the firmware fix my existing seed phrase?+
No. This is the single most misunderstood part of the incident. The patch corrects how future seeds are generated; it cannot change a seed that already exists. The weakness lives in the words themselves, not in the device. Updating and relaxing is the worst possible response β you must generate a new seed on fixed firmware and move the funds.
Which Coldcard models are affected and how badly?+
Coinkite estimates the effective search space at about 40 bits on Mk2 and Mk3, and about 72 bits on Mk4, Mk5 and Q, against an expected 128 bits. Block's independent analysis is less optimistic about the newer models: it puts the secure-element contribution at a 32-bit reseed. Every model line needs migration; the older ones are simply the most urgent.
Does multisig protect me from the Coldcard flaw?+
Not by itself. If every key in the arrangement was generated on affected Coldcard firmware, the arrangement inherits the weakness in full. Block states it directly: a quorum of secure devices is required. Multisig helps only when enough of its keys came from devices outside this issue.
What caused the Coldcard entropy bug?+
A build and link integration error introduced in March 2021. Coinkite defined MICROPY_HW_ENABLE_RNG as zero to disable MicroPython's software generator, but libngu's guard tested only whether the macro existed, not whether it was enabled. The build succeeded and seed generation silently resolved to MicroPython's deterministic Yasmarang fallback instead of the STM32 hardware generator.
How do I migrate my funds safely?+
Install the fixed release for your model, generate a completely new seed on the updated device, record and verify the backup and wallet fingerprint, verify a receive address on the device screen, send one small test transaction, confirm it arrived, and only then move the remaining balance. Keep the old backup until the migration is fully confirmed. Rushing a migration can cost you more than the bug.
Is cold storage still worth using after this?+
Yes. One random number generator failed in one product line β the principle of holding your own keys did not. The lesson is that the useful question is not which brand to buy but where the randomness in your seed came from and whether you can verify it. Open source did not catch this for five years, so treat openness and audit as separate things.
Want a review like this for your project?
YouTube review + Telegram + an evergreen blog article β EN Β· ES Β· RU-CIS markets. Real audience, verifiable results.



