Press ESC to close

Coldcard Hack: Is Your BTC Safe? How to Check & Secure Funds

Hey everyone. Look, most people treat hardware wallets like an impenetrable fortress. Unfortunately, that's just not the reality. A couple of days ago, I read the first post-mortem reports of funds being drained straight out of "cold" storage devices, and my heart absolutely sank.

Coinkite's Coldcard was literally the gold standard for Bitcoin maximalists. And then a total disaster like this hits...

Alright, no time to wallow. If you're holding Bitcoin on a Coldcard, listen up real close. Below, I’m breaking down everything you need to know: from the underlying cryptographic flaw to a step-by-step playbook on how to pull your coins out of the splash zone right now.

⚠️ CRITICAL SECURITY ALERT
If you generated your mnemonic seed phrase directly on a Coldcard device between March 2021 and July 2026, YOUR FUNDS ARE AT CRITICAL RISK.
Attackers are currently running automated scripts vacuuming up the blockchain in real time. Skip straight to the execution guide below and evacuate your assets immediately!

1. What Happened: TL;DR on the Disaster

Here’s the short version: the random number generator (RNG) in affected Coldcard firmware versions wasn't anywhere near as "random" as it should have been. Hackers figured out how to recompute the private keys and triggered an absolute feeding frenzy.

The exploit is hitting in waves. And trust me, wave three isn't going to be the last one as long as there's a single satoshi left sitting in compromised addresses.

Timeline and Attack Impact

Attack WaveStart DateAffected Addresses (Increase)BTC Drained (Per Wave)Cumulative BTC StolenEst. USD Value
Wave 1July 30, 2026~1,196~1,082.65 BTC1,082.65 BTC~$67.1M
Wave 2July 31, 2026+1,477 (2,673 total)+76.16 BTC1,158.81 BTC~$71.8M
Wave 3August 02 (Ongoing)+1,912 (4,585 total)+207.73 BTC1,366.54 BTC~$84.7M

It hurts just looking at these numbers. Nearly $85 million up in smoke all because of a missing compiler flag in the firmware build pipeline.

2. Who Is in the Splash Zone?

Pay close attention here. Not every single Coldcard user is vulnerable.

Affected Models & Firmware Versions:

  • Coldcard Mk3: Firmware versions v4.1.2 through v5.2.1.
  • Coldcard Mk4: Firmware versions v5.0.0 through v5.2.1.
  • Coldcard Q (including Q1): All early builds prior to the emergency July 2026 patch.

However, the main vector isn't just the model—it's how your private key was originally created.

Vulnerable Setup:

  • Anyone who unboxed their Coldcard, hit "Create New Seed," trusted the default system entropy, and wrote down the generated 12 or 24 words.

Safe (Relatively Speaking):

  • Anyone who generated their seed using Dice Rolls directly on the device. This is the exact non-negotiable standard I preach to my engineers constantly! The physical randomness of rolling dice bypasses the system RNG flaw completely.
  • Anyone who imported an existing seed generated on a separate, air-gapped secure environment (like Tails + Electrum or dedicated Raspberry Pi setups).

3. How to Check If Your Wallet Is Compromised

Alright, deep breaths. Don't panic. Grab your device and run this quick sanity check.

Step 1: Check your Firmware and Setup Date

Plug in your device using a power-only cable (or battery pack) and unlock it with your PIN.

Navigate to: Advanced -> System Information -> Version.

Verify your version. If you're running, say, v5.1.0 on an Mk4 and you generated that seed back between 2022 and 2024, you're sitting on a ticking time bomb.

Step 2: Cross-Reference Your Addresses

The team over at Galaxy Research did an incredible job publishing a full forensic report alongside public pools of compromised derivation paths.

You can verify your public master keys (xpub / zpub) using the open-source verification script published on Coinkite's official GitHub repo.

 

⚠️ Operational Security Rule: Never, and I mean NEVER, type your 12/24-word seed into any website to "check" it! Only query public addresses (xpub) or individual public BTC addresses. If a site asks for your seed phrase, it is a 100% phishing scam trying to scoop up whatever the automated bots haven't stolen yet.

 

4. Step-by-Step Execution Guide: Safe Fund Recovery

Man, I can't stress this point enough.

JUST UPDATING THE FIRMWARE IS NOT ENOUGH!

Patching the firmware fixes the generator for future seeds, but your *existing* seed phrase is ALREADY mathematically predictable to sweeper bots. Your only objective right now is to sweep every last satoshi to a completely NEW address space immediately.

Step 1: Flash the Safe Firmware Patch

  • Download the latest patched firmware (v5.3.0X or higher for Mk4/Q) directly from the official source at coinkite.com/downloads.
  • Always verify the PGP signature of the release file! (Check Coinkite's official blog for instructions if you haven't done this before).
  • Drop the .dfu or .bin file onto your MicroSD card, insert it into your Coldcard, and run Advanced -> Upgrade Firmware.

Step 2: Generate a NEW Seed (Dice Rolls ONLY!)

Do not rely solely on the automated generator again, even post-patch. Do it the right way:

  • Select New Seed Words -> 24 Words.
  • Press the 4 key to open the physical dice roll entry screen.
  • Grab a standard casino die and roll it at least 100 times (50 minimum). Enter every single result manually. This guarantees true physical entropy.
  • Write your new 24 words down on paper or stamped steel. If you lose this set, there's no saving you.

Step 3: Sweep Funds (The Evacuation Tx)

Now, you need to pull your coins out of the vulnerable seed and broadcast them over to the clean address generated in Step 2.

This is a race against time. MEV and sweeper bots are scanning the mempool 24/7. If you broadcast a low-fee transaction, it will get stuck in the mempool, leaving room for a bot to frontrun you and snatch your funds via RBF (Replace-By-Fee).

Step 4: Fee Sizing and Managing RBF

Do not cheap out on gas here. Head over to mempool.space, check the current High Priority fee rate, and multiply it by 1.5x or 2x. You need your transaction included in the VERY NEXT block.

5. Technical Deep Dive: How Did the Hack Actually Happen?

Holy crap. As a security engineer, I'm still in absolute shock at how completely trivial this vulnerability turned out to be. It's the textbook definition of how a single missing line of code or a rogue compiler flag in C/MicroPython can bring a multi-billion-dollar ecosystem to its knees.

Let's pop open the hood and break down the cryptographic anatomy of this massive fuckup.

The Root Cause: Where Did the Entropy Go?

Coldcard’s OS runs on a custom-built MicroPython fork. Under normal operating conditions, when the device spins up a new seed phrase (BIP-39), it's supposed to pull true hardware randomness (TRNG) straight from two independent Secure Elements alongside the STM32 MCU’s built-in noise generator.

But back in March 2021, during a routine codebase refactor and MicroPython core upgrade, the devs accidentally broke the hardware RNG initialization. A critical build configuration flag got silently cleared or overridden:

#define MICROPY_HW_ENABLE_RNG (0) // Heads up: this was supposed to be (1)!

What happened next?

When a user hit "Create New Seed," the firmware went to pull system entropy as usual.

Because of that zeroed-out flag, the hardware TRNG driver never actually initialized properly.

Instead of throwing a hard fault (since fallback handlers caught the call), the system quietly dropped back to a software PRNG seeded with static or painfully predictable inputs—think millisecond-level system uptime timers or fixed post-reset register values!

In plain English: Instead of harvesting 256 bits of pure physical chaos from chip noise, the wallet was pumping out "randomness" from a state space squeezed down to a pathetic 216 to 232 total combinations.

To the average non-techie, 232 sounds like a huge number (around 4.2 billion possibilities). To a modern GPU rig or a cloud cracker farm? That's literally 15 seconds of work.

How the Hackers Rebuilt the Keys

The attackers didn't even need physical access to a single device.

They simply mapped out the vulnerable timestamp windows and firmware versions, reverse-engineered the PRNG state-prediction logic, and pre-computed every single 12/24-word combination that a broken Coldcard COULD MATHEMATICALLY OUTPUT.

From there, it was trivial automated execution:

  • They built lookup tables of public addresses for all predicted seeds across standard derivation paths (m/84'/0'/0'/0/x for Native SegWit and m/86'/0'/0'/0/x for Taproot).
  • They pointed automated sweeper bots at the entire Bitcoin UTXO set.
  • The millisecond a target address hit a match with an active balance, the bot instantly generated the private key, signed a sweep transaction, and drained the wallet clean.

This explains why the attack is rolling out in waves. Wave 1 hit the low-hanging fruit and obvious generation windows. Waves 2 and 3 scaled up the bruteforce to cover clock-drift edge cases and non-standard derivation paths (like multisig setups and custom account indices).

Look, folks, the biggest takeaway here is simple: never rely 100% on a single source of entropy, even if it's a battle-tested signing device from a top-tier vendor.

Lock down these two golden rules:

  • NEVER trust automated key generation without throwing in your own physical entropy (Dice Rolls are your absolute best friend).
  • NEVER sleep on firmware updates—but ALWAYS verify release PGP signatures before flashing your hardware.

Stay safe out there, double-check your xpubs, and get your sats out of harm's way ASAP if you're in the blast radius.


FAQ

Yes, but with a massive caveat. If you used a strong, long, and genuinely random passphrase, your resulting master key is mathematically shifted via PBKDF2 (HMAC-SHA512). An attacker would have to brute-force not just your compromised seed phrase, but your secret passphrase as well. But let's be real: if your passphrase is just your dog's name or your birth year, an attacker who has your 24-word seed will crack it in a couple of minutes. If you're running 20+ random characters, your funds are relatively safe for now—but I STILL strongly recommend migrating to a completely clean seed.

Yes, the hardware itself (the ATECC608A / DS28E38 Secure Element chips) hasn't been pwned. Physical memory readout protection, enclosure sensors, and anti-tamper mechanisms are all working as intended. The vulnerability was strictly software-side (firmware). Once you flash the patched version and generate a new seed using dice rolls, your Coldcard goes right back to being an impenetrable bunker.

Coinkite's official stance right now boils down to acknowledging the bug and pushing out emergency patches. Given the scale of the exploit (nearly $85M), it's highly unlikely the Canadian firm has the treasury reserves to make users whole out of pocket, unless they somehow tap into insurance funds. They've posted warnings across their official X account and blog, but legally—under standard open-source disclaimers (GPL/BSD licenses)—the burden of key security falls entirely on the user. That's the brutal reality of self-custody: Not your keys, not your coins; but also—bad code, lost coins.
Oleg Filatov

As the Chief Technology Officer at EXMON Exchange, I focus on building secure, scalable crypto infrastructure and developing systems that protect user assets and privacy.

With over 15 years in cybersecurity, blockchain, and DevOps, I specialize in smart contract analysis, threat modeling, and secure system architecture.

At EXMON Academy, I share practical insights from real-world...

...

Leave a comment

Your email address will not be published. Required fields are marked *