Passionate about Bitcoin education and development. On a mission to spread knowledge about Bitcoin to empower individuals and helping them achieve sovereignty.
In one box: the simple instructions
- Did you generate your seed with 50+ physical dice rolls on the Coldcard? If yes, you are safe. If no, or if you're not sure, assume the seed is compromised.
- Prepare a safe destination: another vendor's hardware wallet if you have one at hand, otherwise a Sparrow hot wallet generated on your computer (details in Step 2).
- Send all your funds there today, with a fee targeting the next block, and wait for a confirmation (details in Step 3).
- A passphrase buys you time, not safety. Attackers don't appear to be grinding passphrases yet, migrate before they start.
- Never type your seed phrase anywhere to "check" it. Anyone asking for your words is a scammer.
- Updating the firmware does not fix an existing seed. A seed generated by vulnerable firmware stays weak forever; only a new seed and an on-chain move secure your funds.
Am I affected?
- Seed generated by the Coldcard itself (the normal "new wallet" flow, on any model, Mk3, Mk4, Mk5, or Q): treat it as compromised. Migrate now.
- Seed generated with Coldcard's dice roll feature, with at least 50 physical dice rolls that you performed yourself: the entropy came from your dice, not from the flawed generator. This is the only configuration currently considered safe.
- Dice roll with fewer than 50 rolls, or you let the device "complete" the entropy: not enough, treat it as compromised.
- Seed imported from another (non-Coldcard) device: the Coldcard flaw does not apply to that seed, but audit where it originally came from.
- You don't know or don't remember: treat it as compromised. The cost of an unnecessary migration is a transaction fee; the cost of a wrong guess is everything.
- A BIP39 passphrase on top of an affected seed does not make the wallet safe, it only buys time. The seed itself is discoverable, so your passphrase becomes the only barrier, and people are usually bad at estimating passphrase entropy. Attackers do not appear to be brute-forcing passphrases yet; migrate to a new seed before they start.
- A multisig wallet that includes an affected Coldcard key cannot be drained through that key alone, but the affected key contributes no real security anymore. Rotate it out of the quorum without delay.
- A newer hardware wallet with the same seed: many people bought a newer Coldcard (or another device) and restored their existing seed onto it. That changes nothing: the seed is what is compromised, not the device. If your seed was generated on an affected Coldcard, it stays weak wherever you restore it. Generate a brand-new seed and migrate.
Step 1: Act now, but don't improvise
- Keep your Coldcard and your seed backup where they are. You still need them to sign the migration transaction.
- Never type your seed phrase into any computer, phone, or website "to check if it is affected". No legitimate checker requires your seed. Anyone asking for your 12 or 24 words is a scammer exploiting this incident, and phishing campaigns reliably surge after events like this one.
- Be careful where you get your information. Coinkite's early communications have already been contradicted several times in the first days, so do not treat the vendor as your only source: cross-check with independent security researchers and established Bitcoin news outlets.
Step 2: Prepare a safe destination wallet
Option A: You have another hardware wallet at hand
Option B: No other hardware wallet available: secure the funds NOW
Step 3: Move the funds
- Load your existing (affected) wallet in Sparrow as a watch-only wallet, exactly as you did when you first set up your Coldcard.
- Build a transaction sending your funds to a receiving address of your new wallet. Verify the destination address on the screen of the new signing device, character by character.
- Pay a serious fee. This is not the moment to save a few sats: a transaction stuck in the mempool prolongs your exposure, because the attacker holds your private key too and can attempt a replace-by-fee double spend of your migration while it is unconfirmed. Use a fee rate targeting the next block or two.
- Sign with your Coldcard as usual, broadcast, and wait for at least one confirmation before considering the migration done. Watch the transaction until it confirms.
- If you hold many UTXOs, sweeping everything into a single output links all of them on-chain. If your privacy model matters, split the migration into several transactions, but in this specific situation, security first, privacy second. Do not let privacy optimization delay the migration.
- Once the funds are confirmed at the new wallet, retire the old seed permanently. Do not reuse it, do not "keep it for small amounts", and destroy the physical backups so they cannot mislead you or your heirs later.
Step 4: Aftermath
- Keep following the investigation, from several sources. The understanding of affected configurations has already widened more than once, and vendor statements have been corrected along the way. Track independent researchers and established Bitcoin media alongside Coinkite's own disclosures, and assume the picture may still change.
- Fixed firmware is out, but it does not rescue existing seeds. Coinkite has released patched firmware (4.2.0 or later for the Mk3). Update any Coldcard you intend to keep using, but understand what the update does and does not do: it fixes seed generation going forward; a seed generated by vulnerable firmware remains weak forever. If you want to keep using a Coldcard, update first, then generate a brand-new seed (ideally with 50+ dice rolls) and move your funds to it on-chain.
- Draw the structural lesson. This incident does not mean self-custody is broken, funds behind verifiable dice-roll entropy or multi-vendor multisig were never at risk. It means that trusting a single device's random number generator is a single point of failure like any other. Verifiable entropy (dice rolls), multisig across vendors, and tested backups are what make a setup robust to the next vendor bug, whoever the vendor is.
Author
This tutorial has been written by MilankovicProtocol
You can say thanks by tipping the professor.
Credits
This tutorial has not been proofread yet
Even if this content is in its original language, human review is necessary to ensure its accuracy.
0 sats0 sats0 satsEvery content on the platform is the result of a collaborative effort: each lesson, translation, and revision is made possible by the work of contributors. For this reason, we are always looking for proofreaders who can review our content in many languages. If you want to participate in the proofreading process, please reach out in our Telegram group and read our tutorial. We remind you that this content is open-source - licensed under CC BY-SA - so it can be freely shared and used, as long as the original source is credited.









