Shopping from Europe? CryptoCloaks.eu can save you on shipping, customs, and delivery time.
Shop the EU site →

Coldcard Entropy Bug: Why CryptoCloaks Does Not Recommend Coldcard

Coldcard Mk5 signing device used in CryptoCloaks' Coldcard entropy security advisory

Security Incident Brief // Updated August 5, 2026

The Coldcard trust failure is bigger than a firmware update.

Affected Coldcard firmware generated some wallet secrets from dramatically less entropy than owners were promised. Fixed firmware protects future generation, but it cannot strengthen an existing weak seed.

Severity: CriticalActive exploitation reported by BlockMigration required for affected seeds
CryptoCloaks
Editorial Position

CryptoCloaks does not recommend using Coldcard for Bitcoin custody.

Our recommendation is to stop relying on Coldcard as your long-term primary signing platform, migrate any affected seed, and generate your replacement through a different, independently trusted key-generation workflow. An owner may still need the existing device temporarily to authorize a careful migration. Do not destroy it or its backup before the move is verified.

This is CryptoCloaks’ recommendation. It is stronger than Coinkite’s official guidance, which says fixed firmware corrects future seed generation. We are making a trust and risk-management judgment; we are not claiming that every updated Coldcard or every seed ever imported into one is mathematically compromised.

Evidence standard: Primary-source claims only, with opinion clearly labeled

Coinkite advisoryCoinkite technical reportBlock EngineeringColdcard firmware notes
~40 bitsCoinkite’s preliminary effective-search-space estimate for affected Mk2/Mk3 seeds.
~72 bitsCoinkite’s preliminary estimate for affected Mk4, Mk5, and Q seeds.
50 rollsMinimum fair, independent, private D6 rolls for Coinkite’s stated exception.
New seedRequired after fixed firmware. Updating alone does not repair the old seed.
Immediate warning

If a funded seed was generated on affected firmware without at least 50 fair, independent, private dice rolls, follow the migration guidance now. A strong, unique BIP-39 passphrase may reduce immediate exposure, but Coinkite says it does not repair the affected seed and passphrase users should also migrate as soon as practical.

01

Stop depositing

Do not send new funds to a wallet controlled by a potentially affected seed.

02

Verify the seed’s origin

Identify the model, release track, and firmware that generated it. Today’s firmware version is not enough.

03

Migrate calmly

Generate a new seed through a trusted process, verify backups and addresses, send a test, then move the balance.

01 // SCOPE

What is verified, and what is our judgment?

The most important accuracy rule is not to turn a serious, confirmed RNG failure into claims the evidence does not support.

Verified fact

Affected seeds may be searchable offline

The wrong PRNG implementation reached wallet secret generation. Coinkite estimates materially reduced effective search spaces.

Verified fact

New firmware cannot heal an old seed

The fixes change future random generation. Funds on an affected seed must be moved to a newly generated seed unless Coinkite’s dice exception applies.

Our recommendation

Do not choose Coldcard for new primary custody

This is CryptoCloaks’ assessment of vendor trust, review quality, and key-generation risk after the disclosure.

Important boundary

This incident is not evidence that an attacker can remotely control every Coldcard. A seed securely generated somewhere else and later imported into a Coldcard was not created by this faulty RNG path. TAPSIGNER, OPENDIME, and SATSCARD use different codebases and Coinkite says they are not affected by this bug.

02 // FAILURE

What happened inside Coldcard?

During a 2021 cryptographic-library migration, Coldcard wallet generation changed from its board-specific hardware RNG path to ngu.random.bytes(). That call resolved to MicroPython’s deterministic Yasmarang fallback instead of the intended hardware random-number generator.

The hardware RNG code was still present in the firmware binary, but the wallet-generation path did not reach it. The fallback exposed the same function shape, so the build completed. Code review confirmed that the intended implementation existed; it did not prove which implementation the seed-generation call actually used.

The result was not merely “bad-looking randomness.” A deterministic generator can produce output that appears statistically uniform while still selecting from a candidate family far smaller than the expected 128-bit or 256-bit security target. An attacker can generate candidates offline and use public wallet material, such as an address or extended public key, to test them.

“We are publishing this advisory early, because active exploitation is under way.”

Block Engineering, while also stating it had not completed full empirical testing for every exploit scenario

Block says its investigation followed theft reports and concluded that active exploitation was underway. Block also explicitly says its report reflects its current understanding and that it had not performed full empirical testing to confirm every exploit path. CryptoCloaks has not independently verified individual theft claims. We therefore present Block’s statement as Block’s conclusion, not as independent proof of each reported loss.

03 // EXPOSURE

Which Coldcard models and firmware are affected?

The version that generated the seed is what matters. Installing safe firmware today does not change how an existing seed was created.

Model / track Affected seed-generation firmware Fixed before replacement generation Coinkite estimate
Mk2 / Mk3
Affected range
4.0.1 through 4.1.9 inclusive 4.2.0 or later About 40 bits
Mk4 / Mk5 standard
Affected before fix
Before 5.6.0 5.6.0 or later About 72 bits
Q standard
Affected before fix
Before 1.5.0Q 1.5.0Q or later About 72 bits
Mk4 / Mk5 Edge
Separate track
Before 6.6.0X 6.6.0X or later About 72 bits
Q Edge
Separate track
Before 6.6.0QX 6.6.0QX or later About 72 bits
Version discrepancy handled explicitly

Block’s technical timeline labels the Mk2/Mk3 range as 4.0.0 through 4.1.9. Coinkite’s owner-facing advisory and technical backgrounder list 4.0.1 through 4.1.9 and say the vulnerable wallet-generation path entered production in March 2021. Our decision table follows Coinkite’s current owner guidance. If you cannot prove how your seed was generated, do not gamble on the boundary; migrate.

Standard and Edge are different release tracks. A numerically higher older Edge version is not automatically fixed. Use the fixed release for the model and track you actually run.

04 // SEVERITY

How serious is the Coldcard entropy risk?

Coinkite’s current estimates are approximately 40 bits for affected Mk2/Mk3 generation and approximately 72 bits for affected Mk4/Mk5/Q generation. Both are below the intended security target.

These are preliminary effective-search-space estimates under stated attack assumptions, not promises that every wallet takes the same amount of work to recover. Practical attack cost depends on what can be constrained about device identity, boot timing, prior PRNG calls, derivation paths, passphrases, and public wallet information.

Block’s independent analysis describes deterministic fallback behavior on Mk2/Mk3 and a later-model reseed that retained only four bytes, or 32 bits, from secure-element-derived material. Coinkite says the later secure-element input materially improved Mk4, Mk5, and Q compared with Mk2/Mk3, but still did not meet the intended security level.

Decision standard

You do not need to predict an attacker’s budget before acting. If an affected seed controls funds and the documented dice exception does not apply, treat the seed as exposed enough to require migration.

05 // RESPONSE

What should Coldcard owners do now?

Do not panic-migrate

A rushed transfer can create a more immediate loss than the issue you are addressing. Verify firmware, backups, wallet fingerprints, and receive addresses on trusted hardware. Send a small test before moving the full balance.

  1. Stop sending new funds to the potentially affected wallet. Preserve the existing device and backup long enough to authorize and verify the migration.
  2. Determine the seed’s origin. Record the model, standard or Edge track, and firmware version that generated it. If the history is uncertain, treat that uncertainty as risk.
  3. Read the current primary guidance. Use Coinkite’s security advisory and technical backgrounder, not screenshots or early summaries.
  4. Prepare a different trusted generation workflow. CryptoCloaks recommends not using Coldcard to generate the replacement. If you instead follow Coinkite’s path, install and verify the fixed release before creating anything new.
  5. Create a completely new seed. Never “upgrade” by reusing the affected words. Do not type seed words or private dice rolls into a website, chat, cloud note, or ordinary networked computer.
  6. Back up and reproduce the new wallet. Verify the wallet fingerprint and a receive address. Keep any BIP-39 passphrase separate from the seed words.
  7. Send a small test transaction. Confirm receipt and prove that you can reproduce the same wallet before transferring the remainder.
  8. Move the remaining funds and retire the old seed. Keep the old backup until every expected balance has arrived and confirmed. Then prevent the compromised or suspect seed from receiving funds again.

Mk2/Mk3 owners who have only one device should follow Coinkite’s dedicated one-device sequence rather than improvising. CryptoCloaks’ stronger platform recommendation does not change the need to preserve access long enough to move funds safely.

06 // EXCEPTIONS

Dice rolls and passphrases: what actually changes the risk?

At least 50 fair, independent, private D6 rolls

Coinkite says the bug did not erase independent entropy added through Coldcard’s dice-roll seed flow. Its current guidance states that 50 to 98 fair, independent, private D6 rolls contribute at least 128 bits of entropy, while 99 or more contribute approximately 256 bits.

  • 50 or more qualifying rolls: Coinkite does not consider the resulting final seed at risk from this RNG issue alone.
  • Fewer than 50, uncertain count, predictable rolls, recorded rolls, or exposed rolls: migrate.
  • The exception applies to the final seed words displayed after the rolls were added. It does not apply if you later used a different seed.
Dice are secret key material

Do not photograph rolls, save them digitally, paste them into an online calculator, or enter real rolls on a normal networked computer.

A strong BIP-39 passphrase is a separate barrier, not a repair

A strong, unique, secret BIP-39 passphrase can make immediate candidate testing harder because an attacker must also discover the passphrase wallet. A short, common, patterned, quoted, reused, exposed, or uncertain passphrase should not be treated as protection. The Coldcard PIN is not a BIP-39 passphrase.

Coinkite still recommends that passphrase users migrate as soon as practical. Every passphrase, including a typo, creates a valid but different wallet, so compare the wallet fingerprint before moving funds.

07 // ROOT CAUSE

How did the wrong random-number generator ship?

Coldcard moved elliptic-curve operations to Bitcoin Core’s libsecp256k1 through the embedded libNgU library. During that migration, seed generation changed from ckcc.rng_bytes() to ngu.random.bytes().

The board configuration defined MICROPY_HW_ENABLE_RNG as zero because Coldcard supplied a separate hardware-RNG wrapper. LibNgU checked whether the macro was defined, not whether its value was nonzero. MicroPython used the zero value to compile its deterministic fallback. Compatible function signatures allowed the wrong implementation to satisfy the build.

On affected Mk2/Mk3 firmware, the fallback was seeded mainly from device and timing state. On Mk4, Q, and Mk5, secure-element values were mixed into the software generator, but Block’s analysis says only four digest bytes reached the reseed function.

Coinkite says the hotfix removes the fallback PRNG object and adds a link/build-time symbol check so the build fails unless the board-specific RNG implementation supplies the expected symbol and the upstream fallback supplies none.

08 // OTHER USES

The RNG stream was used beyond ordinary BIP-39 seed generation.

Block’s report says the same ngu.random construction fed additional functions, including random paper-wallet keys, random Seed XOR masks, some cloning and encrypted-transfer keys, generated Secure Notes passwords, and other temporary key material.

That does not mean every feature has the same impact or that every use reveals the main wallet. Consequences depend on whether public material allows candidate private values to be tested and what an attacker captured. A vulnerable paper-wallet key, for example, could threaten that standalone paper wallet without necessarily exposing the device’s primary seed.

Advanced-feature users

If you used Coldcard-generated paper wallets, random Seed XOR masks, cloning transfers, or generated Secure Notes passwords on affected firmware, read Block’s complete technical report and monitor Coinkite’s updates. Do not infer the impact from the BIP-39 table alone.

09 // TRUST

Why CryptoCloaks does not recommend Coldcard.

A hardware wallet is a trust decision about key generation, implementation review, release engineering, and incident response. The specific hotfix matters, but so does the failure mode that reached production.

  • The intended secure RNG implementation existed in the firmware, yet the critical wallet-generation path reached a deterministic fallback.
  • The integration survived builds and review because symbol presence was mistaken for proof of runtime binding.
  • The affected path remained in released firmware across multiple product generations and release tracks.
  • The same random stream was used by functions beyond standard seed generation.
  • Coinkite’s own estimates say some affected seeds delivered far less search resistance than users expected.

Coinkite has published fixes, owner guidance, and a technical backgrounder. Those actions matter and should be judged on their merits. Our conclusion is still that we are not comfortable recommending Coldcard for new or primary custody. That is a vendor-trust conclusion, not a claim that the fixed firmware is secretly proven broken.

Choose a different signing workflow, then verify it yourself.

CryptoCloaks recommends a stateless, air-gapped signing workflow with independently generated entropy and reproducible wallet fingerprints. Our SeedSigner+ product is a case and electronics kit and requires a Raspberry Pi Zero; it is not a complete ready-to-sign device by itself. No hardware or kit removes the need to verify the build, seed process, backup, fingerprint, and receive address.

CryptoCloaks sells the linked kit and physical backup tools. That commercial relationship is disclosed because it can affect our incentives. The technical claims above remain linked to primary sources.

10 // FAQ

Accuracy-first Coldcard entropy FAQ

Was every Coldcard remotely hacked?

No. The confirmed issue is an RNG integration failure that can make some generated secrets searchable offline. It is not evidence that an attacker remotely controls every Coldcard.

Should I keep using Coldcard after installing fixed firmware?

Coinkite says fixed firmware corrects future generation. CryptoCloaks does not recommend using Coldcard for Bitcoin custody. That is our trust judgment, not proof that every corrected device remains cryptographically vulnerable.

Does new firmware fix my existing seed?

No. Firmware cannot retroactively add entropy to a seed that already exists. Affected owners need a completely new seed and a verified fund migration unless Coinkite’s independent dice-entropy exception applies.

Does the Coldcard PIN protect an affected seed?

No. The device PIN controls access to the hardware. It is not a BIP-39 passphrase and does not add an independent secret to offline candidate testing against public wallet data.

I used a BIP-39 passphrase. Am I safe?

A strong, unique, secret passphrase adds a separate barrier and may reduce immediate exposure. Weak or uncertain passphrases should not be trusted. Coinkite still recommends migrating because the passphrase does not repair the affected seed.

I entered at least 50 dice rolls. Do I need to migrate?

Coinkite says at least 50 fair, independent, private D6 rolls in the original seed-creation flow contribute at least 128 bits and the final seed is not considered at risk from this RNG issue alone. If the count, fairness, privacy, or final seed is uncertain, migrate.

What if my seed was generated somewhere else and imported?

This bug concerns entropy produced by the affected Coldcard firmware path. A seed securely generated elsewhere was not weakened merely by being imported. Its safety still depends on its original generation, handling, passphrase, and backups.

Should I destroy my Coldcard and old backup now?

No. Preserve the device and old backup until the new wallet is verified and the complete expected balance has arrived. Destroying the only usable authorization path before migration finishes can cause permanent loss.

11 // SOURCES

Primary and independent technical sources

SECURITY NOTE // CryptoCloaks will never ask for your seed words, passphrase, dice rolls, xprv, private keys, or wallet backup. No legitimate migration help requires sending those secrets to us.

Leave a Comment

Shopping Cart
Scroll to Top