The Coldcard Firmware Flaw: What Happened, Who’s Affected, and How to Respond
A 2021 Coldcard firmware bug weakened Bitcoin seed randomness for 5 years. ~$116M stolen since July 2026. Affected versions, patch status, response steps.
Picture a Bitcoin holder who has done everything the self-custody guides recommend. She bought a Coldcard hardware wallet years ago, generated her seed phrase on the device itself, away from any internet-connected computer, and stamped the words into a steel backup plate built to survive a house fire. She has never typed the seed into a phone or photographed it. Twice a year she checks for a firmware update, because updating is the unglamorous maintenance self-custody actually requires. On a Thursday morning in late July 2026, she opens Coinkite’s firmware page to check for updates before moving part of her holdings to a fresh address — routine, the kind of thing she has done a dozen times before. What she finds instead is a security advisory telling her that the randomness her device used to generate that seed phrase, years earlier, might never have been random at all.
In self-custody, the device itself is nearly worthless — a Coldcard retails for well under $200. What it protects is not the plastic and silicon but the private keys derived from a seed phrase: the only thing standing between a holder and the coins recorded at a Bitcoin address. That distinction is why firmware integrity occupies such a specific, load-bearing place in hardware-wallet security. Users are asked to trust that the code running on a small offline device generated genuinely unpredictable numbers, and to trust it enough to entrust that device with sums that, for some holders, represent a life’s savings. The event this guide documents — a firmware flaw in Coldcard hardware wallets, made by the Canadian company Coinkite, that silently weakened random-number generation for more than five years before it was discovered through active exploitation — tested that trust assumption directly, at a scale that makes it one of the most significant hardware-wallet security incidents in Bitcoin’s history: roughly $116 million confirmed stolen as of this guide’s last update, a figure that had already moved several times in the five days before it was written and may move again.
🧠 60-Second Overview
A March 2021 firmware change caused Coldcard hardware wallets to generate Bitcoin seed phrases using a predictable software fallback instead of true hardware randomness. The bug shipped in firmware v4.0.1 and went undetected until attackers began draining affected wallets on July 30, 2026. Coinkite (the maker) confirmed the flaw, expanded the affected list from Mk3-only to every model including Mk4, Mk5 and Q, and shipped patched firmware within roughly 48 hours. A patch cannot fix an already-generated compromised seed — affected users must move funds to a newly generated seed. As of August 3, 2026, reported losses stood at roughly 1,816 BTC (~$116 million) across four theft waves and more than 5,200 addresses, and the incident remains active.
⚠️ Editorial Note & Scope
This is a YMYL (Your Money or Your Life) security and financial-risk topic. This guide separates verified technical findings, vendor statements from Coinkite, independent researcher analysis, and unconfirmed or disputed claims at every point where they diverge, and cites the source type for each dollar figure and date. Loss figures for this incident moved repeatedly in the days after discovery ($38M → $70M → $88.6M → $116M) as forensic analysis caught up with an unfolding attack, not because earlier figures were wrong — each was accurate at the time it was reported. No CVE identifier has been publicly assigned to this issue as of this writing. This article is maintained as a living reference and will be revised as Coinkite, independent researchers, or the affected community publish further findings. It is educational information, not financial, legal or security consulting advice specific to your situation.
Who, What, When, Where, Why and How
What the Record Actually Shows
- This was not a discreet, quietly-patched bug: it was found because it was already being exploited, at scale, in public, on-chain.
- The root cause was a single misconfigured guard clause from March 2021 — a build macro that checked “is this defined” instead of “is this enabled.”
- Coinkite’s first advisory undercounted the affected models: it initially said Mk4, Mk5 and Q were unaffected, then revised that roughly eight hours later to include them — a real, sourced correction worth tracking on its own.
- A firmware update does not retroactively fix an already-generated seed: the only remedy is migrating funds to a newly generated seed on patched firmware.
- Not every affected user is equally at risk: seeds generated with 50 or more independent dice rolls, or protected by a strong unique BIP-39 passphrase, are considered low-risk by Coinkite’s own guidance.
- No CVE identifier has been publicly assigned to this issue as of this article’s last update — a gap this guide flags rather than papers over.
- No lawsuit has been filed as of early August 2026, though a law firm has said it is studying potential claims and one individual has filed a police report.
- Vulnerability and exploit are different words for a reason: a weakness existed for five years before it was actively used to steal funds — the gap between the two is exactly what responsible disclosure exists to close, and did not happen here.
- Multisig only helps if every cosigner key wasn’t generated on affected firmware — an all-Coldcard multisig set up entirely during the vulnerable window offers little additional protection.
- This is a living reference: loss figures, patch versions and legal developments will be revised here as Coinkite, researchers and courts publish further updates.
What Coldcard Is, and Why This Kind of Flaw Matters
The basics, for readers arriving without prior context, before the deeper technical sections.
Coldcard is a Bitcoin-only hardware wallet made by Coinkite, a Toronto-based company that has sold Coldcard devices since 2017. A hardware wallet is a small, purpose-built electronic device that generates and stores the cryptographic keys controlling a cryptocurrency holder’s funds, and signs transactions, without ever exposing those keys to an internet-connected computer or phone. The core idea is straightforward: an ordinary computer is a large, complex, frequently-compromised piece of software running an operating system with millions of lines of code and a broad attack surface; a hardware wallet is a small, narrowly-scoped device that does one job and, ideally, can be verified to do only that job.
Firmware is the software permanently or semi-permanently programmed into a hardware device to control its basic operation — the layer between the physical chips and any higher-level application logic. On a hardware wallet, firmware is where the most security-critical operations live: generating randomness, deriving keys, displaying transaction details for the user to verify, and signing. A flaw in firmware is different from a flaw in a phone app: it typically requires an intentional update process to fix, it often affects every unit that ran the flawed version regardless of when the flaw is found, and — as this incident shows — it can lie completely dormant, generating quietly-broken output, for years before anyone notices.
What was reportedly discovered: in late July 2026, security researchers and Coinkite itself confirmed that a firmware defect, introduced in March 2021, had caused affected Coldcard devices to generate wallet seed phrases using a predictable software algorithm instead of the device’s dedicated hardware random-number generator. Because a Bitcoin private key is only as secure as the randomness used to create it, this meant that seeds generated on affected firmware could, in principle, be recreated by an attacker who knew (or could narrow down) the same inputs the software fallback used — without ever touching the physical device.
Why firmware flaws matter more on a hardware wallet than almost anywhere else: the entire value proposition of the device is that a user does not have to trust their operating system, their browser, or their network connection — only the device itself, and the firmware running on it. When that narrower trust boundary fails, the attack surface a user believed they had eliminated by going “cold” reappears, except now it is harder to detect precisely because the device is offline and the flawed output looks, to the user, identical to correct output. There is no error message. The seed phrase displays normally. The device behaves exactly as designed — it is simply not doing the one thing it exists to do.
Vulnerability versus exploit — the distinction this article holds to throughout: a vulnerability is a weakness in a system that could, under the right conditions, be used to cause harm. An exploit is the actual, demonstrated use of that weakness to cause harm. Plenty of vulnerabilities are found, patched and never meaningfully exploited; the gap between discovery and any real-world impact is exactly what responsible disclosure processes exist to protect. This incident is unusual, and more serious than a typical disclosure story, precisely because the order was reversed: the vulnerability was not found by a researcher and quietly reported — it was found because it was already being actively exploited, on-chain, in public, by the time anyone flagged it.
Why responsible disclosure is important, and why this case is a case study in what happens without it: the standard model, when a researcher finds a security flaw, is to report it privately to the vendor, give the vendor a defined window to build and ship a fix, and only then publish full technical details — so users have a patch available before attackers have a roadmap. That model depends on the researcher finding the bug first. Here, the timeline ran the other way: attackers appear to have found (or independently rediscovered) the flaw before any researcher reported it, and Coinkite learned about it from watching funds move rather than from a private disclosure email. The rest of this guide traces exactly how that played out, hour by hour, over the last week of July 2026.
🔧 Firmware Insight
Firmware verification — checking that the code running on a device matches an authentic, unmodified release from the vendor — is a critical defense against tampered or malicious firmware. It is a different defense from this incident: the firmware here was genuinely Coinkite’s own, digitally signed, unmodified, and installed exactly as intended. The problem was not that the wrong code ran; it’s that the right code contained a silent logic error. Signature verification confirms authenticity, not correctness — a signed, authentic build can still ship a bug, which is why code review, testing and independent audits are a separate, necessary layer on top of signing.
Core Concepts, Defined
Fourteen terms this guide uses throughout — read this once, refer back as needed.
Private Key
A secret number that mathematically controls the ability to spend Bitcoin held at an address derived from it. Anyone who obtains a private key can move the associated funds; there is no password reset.
Seed Phrase
A human-readable sequence of words (typically 12 or 24) that encodes the master private key material for an entire wallet. Whoever holds a valid seed phrase controls every key and address derived from it.
BIP39
The Bitcoin Improvement Proposal that standardizes how a random number becomes a memorable seed phrase, and how that phrase deterministically regenerates the same keys on any compatible wallet. It’s why a seed phrase works across brands.
Firmware
The low-level software that controls a device’s core hardware functions — on a hardware wallet, the code responsible for randomness, key derivation, display and signing. Updated deliberately, rarely, and only via a defined process.
Bootloader
The small first-stage program that runs when a device powers on, before the main firmware loads. On a security-focused device, the bootloader is typically responsible for checking the main firmware’s cryptographic signature before running it.
Secure Element
A dedicated, tamper-resistant chip designed to store secrets and perform cryptographic operations in isolation from the device’s general-purpose processor, making certain physical extraction attacks significantly harder.
Supply-Chain Attack
An attack that compromises a product before it ever reaches the end user — tampering with hardware or software during manufacturing, shipping, or at any point before the customer takes possession.
Air-Gapped Signing
A signing workflow where the device holding private keys never connects — by USB, Bluetooth or Wi-Fi — to an internet-connected computer. Data moves via microSD card or QR code instead, physically eliminating a whole class of remote attacks.
PSBT
Partially Signed Bitcoin Transaction: a standard format for passing an unsigned (or partially signed) transaction between a watch-only wallet and a signing device, enabling air-gapped signing without a live network connection to the key holder.
Multisig
A wallet configuration requiring signatures from more than one independent key (for example, 2-of-3) to spend funds, so that a single compromised key, device, or seed is not sufficient on its own to move the money.
Deterministic Wallet
A wallet that derives an unlimited number of keys and addresses from one starting seed using a fixed mathematical process, so the entire wallet can be restored from that single seed on any compatible device.
Firmware Signing
Cryptographically signing an official firmware build with the vendor’s private key, so a device (or a user, with the right tools) can verify a given firmware file is authentic and unmodified before installing it.
Reproducible Builds
A build process guaranteed to produce byte-for-byte identical output from the same source code every time, so independent third parties can compile the public source themselves and confirm it matches the vendor’s official, signed release.
Responsible Disclosure
A coordinated process where a researcher privately reports a vulnerability to the vendor, allows time for a fix, and publishes technical details only after (or alongside) a patch — balancing transparency against giving attackers a head start.

The Complete Timeline: From 2009 to the Present Incident
Reverse-chronological. Each entry separates security context, technical development, disclosure stage, and vendor response.
Confirmed Losses Reach ~1,816 BTC (~$116M) Across a Fourth Wave
Security context: Fortune reported that a fourth distinct theft wave pushed the cumulative confirmed total to roughly 1,816 BTC (about $116 million at the time) drained from more than 5,200 addresses since the first wave on July 30 — up from Galaxy Research’s Aug 1 tally of 1,367 BTC across 4,585 addresses.
Vendor response: Coinkite’s own statement, as quoted by Fortune, called the preceding days “some of the hardest in this company’s history, and for a lot of the people reading this, they’ve been something much worse.” Bitcoin’s own price moved less than one percent on the news, according to the same reporting.
Current relevance: This is the most recent confirmed figure as of this guide’s last update. Given how many times the total has moved already, treat any single number — including this one — as a snapshot, not a final tally.
Class-Action Threats Surface, Alongside an Unrelated Email-Retention Controversy
Security context: A restructuring advisory firm, 117 Partners, said it was studying potential class-action claims on behalf of affected users; separately, Brazilian bitcoin advocate Felipe Ojeda filed a police report over his own losses. As of this update, no lawsuit had actually been filed — both are pre-litigation steps, not court filings.
Disclosure stage: A separate story broke the same day: Coinkite had retained customer emails since 2019 — the contact list it used to send the security warning — despite having previously said customer data was deleted within 90 days of purchase. Coinkite’s response was that it kept emails so customers “can log in and check that their other info has been blanked,” and that it currently has no deletion policy for that specific data.
Current relevance: Legal experts quoted in coverage were split on Coinkite’s liability exposure for the RNG flaw itself; this article draws no conclusion on that question, which is for courts, not a security explainer, to resolve.
Galaxy Research Confirms 1,367 BTC Across Three Waves; Coinkite Finalizes Its Advisory
Technical development: On-chain forensics firm Galaxy Research published a wave-by-wave breakdown: 1,367.05 BTC (about $88.6 million) drained from 4,585 addresses across three distinct waves since July 30. Galaxy noted that every theft transaction it examined used an identical, hardcoded 30 sat/vB fee rate and left no change output — a pattern consistent with an automated draining tool rather than manual, one-by-one transfers.
Vendor response: Coinkite’s advisory reached its most complete published form around 2:35 p.m. EDT, with a full version matrix covering every affected model and firmware range (detailed in the table further below). Independent monitoring around midday confirmed newer Mk4/Mk5/Q addresses were still actively being drained, not just older Mk2/Mk3 ones.
Current relevance: This is the first point at which the scope and mechanism of the attack were both independently confirmed and precisely quantified, rather than estimated from partial data.
2026 PM
Coinkite’s CEO Apologizes; the ~72-Bit Entropy Figure Is Disclosed
Disclosure stage: Rodolfo “NVK” Novak, Coinkite’s founder and CEO, posted publicly (as reported by multiple outlets) that the company took “full accountability for the firmware bug,” writing “I’m sorry and I’m devastated,” and urging anyone who generated a seed on a Coldcard to move funds immediately using the updated guidance “before reading further.”
Vendor response: Novak also suggested, in the same post, that the bug may have first been surfaced through AI-assisted code analysis, calling it “a sober reality of the new AI paradigm.” This is the CEO’s own speculation about how the flaw came to light, not a confirmed disclosure chain — no source independently verified who or what actually found the bug first. Later the same evening, Coinkite disclosed that the effective security level on the worst-affected devices had collapsed to roughly 72 bits on Mk4/Mk5/Q, and roughly 40 bits on Mk2/Mk3 — both far short of the 128-bit security a properly generated BIP-39 seed is meant to provide.
Current relevance: The bit-strength figures are the clearest technical measure of exactly how compromised affected seeds actually are, and are treated as the authoritative figures for the rest of this guide.
2026 AM
Coinkite Expands the Affected List to Every Model, and Confirms the Mk3 Patch
Disclosure stage: Roughly eight hours after its first advisory said Mk4, Mk5 and Q were unaffected “based on early analysis,” Coinkite revised that assessment to include all five product lines — Mk2, Mk3, Mk4, Mk5 and Q — each on its own specific pre-patch firmware range.
Vendor response: Coinkite separately confirmed patched Mk3 firmware (v4.2.0) was live, while stating plainly that the update could not restore the security of a seed already generated on flawed firmware — only migrating to a newly generated seed could do that.
Current relevance: This scope correction is a legitimate, sourced part of the disclosure timeline, not something to smooth over: it means any Coldcard owner who read only the first advisory and concluded their newer device was safe was, for about eight hours, working from outdated information.
2026 EARLY
Block’s Engineering Team Publicly Identifies the Exact Root Cause
Technical development: Engineers at Block, Inc. (the payments company behind Cash App and the competing Bitkey hardware wallet), working with unnamed independent security researchers, published a detailed technical analysis identifying the precise code path: a call to ngu.random.bytes silently falling through to MicroPython’s software PRNG fallback instead of reaching the STM32 chip’s hardware random-number generator.
Disclosure stage: This was independent, competitor-authored analysis published openly — not a private report to Coinkite ahead of publication, since exploitation was already public and underway by this point. Independent researcher Kevin Loaec had separately flagged the likely compromise in real time the previous evening, and security firm Wizardsardine published its own technical writeup around the same period.
Current relevance: This entry marks the moment the “what happened” question moved from informed speculation to a confirmed, code-level explanation — the basis for the technical breakdown later in this guide.
2026 PM
Coinkite’s First Advisory and an Emergency Mk3 Patch
Disclosure stage: Around 22:50 UTC, roughly 21 hours after the first theft transactions, Coinkite published its first public advisory acknowledging a seed-generation issue affecting Mk3 devices, alongside patched firmware (v4.2.0). The advisory stated that Mk4, Q and Mk5 were “not affected based on our early analysis” — an assessment revised the following morning (see above).
Vendor response: This was Coinkite’s first public acknowledgment that its own firmware, not user error or a third-party compromise, was the cause.
Current relevance: The roughly 21-hour gap between the first on-chain theft and this first public advisory is a data point worth noting on its own: it is the length of time affected users were exposed to active, ongoing draining with no public warning available to act on.
2026 MID
Community Detection: Reddit Reports and a Researcher’s Real-Time Warning
Disclosure stage: The first widely-read public report of unexplained drained wallets surfaced on Reddit around 13:19 UTC. Independent security researcher Kevin Loaec publicly flagged, in a series of posts between roughly 17:35 and 18:58 UTC, that the pattern strongly suggested a Coldcard compromise, using language to the effect of “this is not a drill.”
Security context: At this stage, no vendor or major outlet had confirmed anything; this was community pattern-recognition — users comparing notes on unexplained losses — ahead of any official statement.
Current relevance: This roughly five-hour community-detection window, between the first Reddit reports and Loaec’s public warning, is a useful illustration of how independent researchers and affected users, not just vendors, often drive the earliest phase of incident response in decentralized ecosystems.
2026 AM
The First Theft Wave: 594 BTC Drained in a 25-Minute Sweep
Technical development: The first confirmed theft transactions appeared on-chain starting around 01:10 UTC at Bitcoin block 960,183. CoinDesk reported an initial 25-minute sweep draining 594 BTC (about $38 million at the time) from roughly 500 single-signature addresses associated with Mk3 devices. A separate, subsequently reassessed wave was later measured by Galaxy Research at 1,082.65 BTC (~$70.2 million) drained from 1,196 addresses in 41 minutes.
Security context: This is the point at which the vulnerability stopped being a five-year-old dormant defect and became an active, in-progress theft — the moment that defines this incident as an exploited vulnerability rather than a disclosed-and-patched one.
Current relevance: Every dollar figure and timeline event after this point traces back to this first wave; it is the incident’s true starting point, more than five years after the underlying flaw shipped.
Firmware v4.0.1 Ships With the Silent RNG Regression
Technical development: The flawed code, committed four weeks earlier (below), shipped publicly in Coldcard firmware v4.0.1 on March 29, 2021. From this date forward, any Mk2 or Mk3 owner who generated a fresh seed on the device — and, later, Mk4/Mk5/Q owners on their own affected version ranges — received a seed built on materially weaker randomness than intended, with no indication anything was wrong.
Security context: This is the practical starting point of every subsequent theft: any seed generated from this date until the patch shipped in 2026 falls within the exposure window, regardless of when it was created within that span.
Current relevance: The gap between this date and July 30, 2026 — more than five years — is the length of time the flaw went undetected, and is central to the “why didn’t anyone catch this sooner” question this guide addresses directly in a later section.
The Single Commit That Broke Coldcard’s Randomness
Technical development: Coinkite committed code migrating seed generation to a proprietary internal library, replacing a call that correctly reached the STM32 chip’s hardware random-number generator with a new call routed through a guard clause that checked whether a build macro was defined, rather than whether it was enabled. Because the relevant macro was defined but set to zero on affected builds, the guard passed when it should have failed, and seed generation silently fell through to a weak software fallback.
Disclosure stage: This is the exact commit later identified by Block’s engineering team as the technical root cause — not disclosed or reported by anyone at the time, since nothing about the change appeared, on its face, to be a security regression.
Security context: This same commit occurred roughly three and a half months after Coinkite announced, in November 2020, that it would move away from its earlier full open-source-firmware commitment toward a more proprietary licensing model for parts of its commercial firmware — a documented, correlated timing that independent commentary has noted, though no source has established that reduced code review specifically caused this bug.
Coldcard Mk4 Ships With Secure-Element Reseeding — Later Found Only Partially Effective
Technical development: Coinkite’s Mk4, its first model to include dual secure-element chips as a defense-in-depth measure, began shipping in March 2022, adding a step meant to “reseed” the device’s randomness using secure-element material on top of the existing generator.
Security context: This reseeding step was, in principle, a meaningful additional safeguard. The 2026 disclosure revealed it was implemented incompletely: only the first four bytes of a much larger cryptographic digest of the secure-element material were ever actually used, rather than the full digest, meaning the “extra” randomness added far less protection than the design intended — roughly 72 bits of effective security rather than the intended 128.
Current relevance: This is why Mk4, Mk5 and Q were ultimately included in the vulnerability’s scope despite having a secure element that Mk2 and Mk3 lack — a secure element only helps if the code path actually using it is implemented correctly.
Coinkite Builds Coldcard’s Reputation Through the Mk1, Mk2 and Mk3
Historical background: Coinkite launched the original Coldcard (Mk1) in 2017, positioning it as an ultra-security-focused, Bitcoin-only hardware wallet built around air-gapped signing via microSD card, in an era when most hardware wallets supported many cryptocurrencies and required a direct USB connection for every transaction. Successive Mk2 and Mk3 generations followed over the next several years, refining the design while keeping the same air-gapped, Bitcoin-only philosophy.
Security context: For years, Coldcard’s early models deliberately avoided a certified secure-element chip, a genuine industry debate at the time: proponents of secure elements argue they raise the bar against physical extraction attacks; critics (including, historically, Coinkite itself) argued that certified secure elements are typically closed-source and require trusting an opaque third-party chip vendor, working against the broader goal of a fully auditable, open device.
Current relevance: That open-source-first, secure-element-skeptical reputation is part of why this incident landed as such a surprise to much of Coldcard’s user base — the flaw did not come from a mistrusted proprietary black box, but from Coinkite’s own code.
Trezor Ships the First Bitcoin Hardware Wallet
Historical background: SatoshiLabs released the original Trezor in 2014, widely credited as the first purpose-built Bitcoin hardware wallet, establishing the category this entire guide is about: a dedicated offline device for generating and storing keys, distinct from a general-purpose computer running wallet software.
Security context: The category exists specifically to solve the problem this incident illustrates the limits of — that general-purpose, internet-connected devices are a poor place to generate and store cryptographic secrets. Every hardware wallet on the market today, including Coldcard, Trezor and Ledger devices, descends from this basic premise.
Current relevance: The Coldcard/Trezor/Ledger comparison later in this guide traces directly back to design choices this era of the industry first had to make.
Bitcoin’s Software-Wallet Era, and the Problem Hardware Wallets Were Built to Solve
Historical background: In Bitcoin’s first years following its 2009 launch, holding Bitcoin meant running wallet software directly on an everyday computer, with private keys stored in a file on that same internet-connected machine. Malware, phishing and simple computer failure repeatedly resulted in irreversible losses during this period, establishing the pattern hardware wallets were later designed to break.
Security context: This is the baseline this entire article should be read against: a hardware wallet, even one with a serious flaw like the one detailed here, still eliminates entire categories of risk (remote malware directly stealing a private key from a connected computer, for instance) that plagued the software-wallet era. A flawed hardware wallet is not the same as no improvement at all.
Current relevance: The “Self-Custody Insight” box later in this guide returns to this point directly: this incident is serious, but it does not erase the categories of risk hardware wallets, including Coldcard, still meaningfully reduce.
⏱️ Timeline Takeaway
Security is a process of continuous auditing, patching, verification and operational discipline — not a one-time setup. A five-year-old defect, introduced by a single misconfigured guard clause during a routine code migration, sat undetected through years of firmware releases, community use, and presumably some amount of code review, until it was found the hardest possible way: by watching it get exploited. No single step in that chain — not open-source code, not a later-added secure element, not years of prior reliability — was sufficient on its own to catch it.
How Coldcard Works
The architecture this incident exploited, explained from the ground up.
A Coldcard is built around a general-purpose microcontroller (an STM32 chip, in every model to date) that runs the device’s MicroPython-based firmware, paired — from the Mk4 onward — with a dual secure-element setup used for additional key storage and randomness reinforcement. The device has no wireless radio of any kind: no Wi-Fi, no Bluetooth, no cellular modem. Its only connections to the outside world are a USB port (used mainly for power and, on some workflows, direct communication with trusted software), a microSD card slot, and — on the Q model — a built-in QR code scanner and keyboard.
When a user generates a new wallet, the device is supposed to gather genuine physical randomness from a hardware random-number generator built into the STM32 chip — a component specifically designed to produce output that is unpredictable even to someone who knows the device’s exact make, model and firmware version. That raw randomness becomes the entropy behind a BIP-39 seed phrase, which in turn deterministically derives every private key and address the wallet will ever use. The device displays the resulting words on its own screen, never transmitting them anywhere, so a user can write them down without the phrase ever touching a camera, a network, or another piece of software.
For everyday transactions, Coldcard is designed to be used air-gapped: a companion watch-only wallet on a computer or phone builds an unsigned transaction, exports it as a PSBT file to a microSD card (or, on the Q, a QR code), the Coldcard reads that file, displays the transaction details on its own screen for the user to verify, signs it internally using keys that never leave the device, and exports the signed result back the same way — at no point does a network-connected device see the private keys themselves.
(runs firmware)
↔
(Mk4 onward)
↔
(user verification)
↔
(no wireless radio)
The Firmware Trust Chain
What signature verification actually protects — and what it doesn’t.
Every official Coldcard firmware release is cryptographically signed by Coinkite before publication. The device’s bootloader — the small program that runs first, before the main firmware — checks that signature before allowing new firmware to run, so that installing a modified or unofficial build should fail the check and refuse to boot. This is the “firmware trust chain”: the bootloader trusts only firmware signed by Coinkite’s key, and the user, in turn, trusts that Coinkite’s signing process is itself secure.
It’s worth being precise about exactly what this protects, because this incident is a clean illustration of its limits. Signature verification answers one question: is this genuinely Coinkite’s own, unmodified firmware? It does not, and cannot, answer a different question: is this firmware correctly written? The firmware that shipped the RNG flaw was authentic, signed, and unmodified — it passed every signature check a device could run. The defect was a logic error inside code that was, in every verifiable sense, exactly what Coinkite intended to ship.
→
→
→
(bugs and all)
🛡️ Security Insight
A vulnerability does not automatically mean funds can be stolen; the attack conditions matter. In this case, the conditions turned out to be met at real scale — predictable entropy, an automatable pattern for regenerating keys, and years of undiscovered exposure. But the general principle holds beyond this incident: before concluding any hardware-wallet vulnerability puts your specific funds at risk, check whether it requires physical access, whether it applies to your specific model and firmware version, and whether your own setup (a passphrase, sufficient dice-roll entropy, multisig across unaffected devices) already mitigates it.
Threat Models for a Hardware Wallet
Four categories of attack, and where this incident falls.
Physical attacks require an attacker to have the device itself in hand — chip-level extraction, fault injection, or side-channel analysis performed directly against the hardware. These are typically the highest-effort, highest-skill attacks, and the ones secure elements and tamper-resistant design are specifically built to raise the cost of.
Remote attacks target the device over a network connection or through compromised software on a connected computer. Because a properly air-gapped hardware wallet has no wireless radio and never exposes private keys to a connected machine, classic remote attacks (malware reading a key directly, for instance) are largely designed out of the picture for devices like Coldcard when used as intended.
Supply-chain risks involve tampering before a device ever reaches its owner — a compromised unit intercepted in shipping, or a malicious modification introduced during manufacturing. Coldcard’s tamper-evident packaging and its “trust-minimized” setup flow (encouraging users to update firmware and verify their device’s authenticity themselves rather than trusting the box) are aimed at this category specifically.
User mistakes — typing a seed phrase into a phone, photographing a backup, falling for a phishing site impersonating a wallet vendor, reusing a seed across an insecure app — remain, by a wide margin, the most common real-world cause of self-custody losses, independent of any single device’s firmware quality.
The Coldcard RNG flaw does not fit neatly into any one of these four buckets, which is part of what makes it notable. It required no physical access to any individual victim’s device, no malware on any victim’s computer, and no supply-chain tampering — an attacker who worked out the flawed randomness generation could, in principle, regenerate a plausible set of candidate private keys entirely offline and simply watch the blockchain for funds to appear at the resulting addresses. It is closest, in effect, to a cryptographic design flaw: a weakness in the mathematics and logic underlying key generation itself, rather than in any single layer of physical or network security.
| Threat Model | Requires Physical Access? | Requires Network Connection? | Primary Coldcard Defense |
|---|---|---|---|
| Physical attack | Yes | No | Secure element (Mk4+), tamper-evident design |
| Remote attack | No | Yes (on the attacker’s side) | No wireless radio; air-gapped signing via SD/QR |
| Supply-chain attack | Only before purchase | No | Tamper-evident packaging; user-run authenticity checks |
| User mistake | Varies | Varies | Air-gapped workflow design; on-device transaction display |
| This RNG flaw | No | No (offline key regeneration) | None at the time; only a firmware fix and full seed migration |
Physical Attack vs. Remote Attack
Air-Gapped Signing and the PSBT Workflow
How a transaction moves through a Coldcard without ever exposing keys to a network.
A Partially Signed Bitcoin Transaction (PSBT) is the standard file format that makes air-gapped signing practical. A watch-only wallet — software that can see balances and build transactions but holds no private keys — assembles an unsigned transaction and saves it as a PSBT. That file moves to the Coldcard via microSD card or QR code, never over a network connection. The Coldcard parses the PSBT, displays the destination address and amount on its own screen so the user can independently verify what they’re about to sign, signs the transaction using keys that never leave the device, and writes the now-signed PSBT back to the same medium. The watch-only wallet reads the signed file and broadcasts it to the Bitcoin network. The Coldcard itself never touches the internet at any point in this sequence.
→
→
→
→
Multisig Protection
Why requiring multiple independent keys changes the risk calculus — and why it didn’t fully protect everyone here.
A multisig wallet requires signatures from a defined subset of independently held keys — commonly written as “M-of-N,” such as 2-of-3 — to authorize a transaction. The security benefit is straightforward: a single compromised key, device, or seed phrase is not, on its own, sufficient to move funds. An attacker needs to compromise the threshold number of independent keys, ideally held on different devices, in different locations, sometimes from different vendors entirely.
That last detail matters directly for this incident. Diversifying where keys are held only helps if it also diversifies the method used to generate them. A 2-of-3 multisig wallet where all three keys were generated on Coldcard devices during the vulnerable window offers meaningfully less protection against this specific flaw than the same 2-of-3 structure would suggest at a glance — because the same underlying weakness could, in principle, apply to more than one of the three keys simultaneously. Multisig protects best against this kind of flaw when cosigner keys are generated on genuinely different hardware and firmware, ideally from different manufacturers.
→
→
→
→
Single-Sig vs. Multisig
🔒 Self-Custody Insight
The greatest risks to Bitcoin holders are often phishing, seed exposure and operational mistakes — typing a seed into a phone, storing a photo of it in cloud backup, trusting a fake wallet-support “help” account — rather than advanced hardware or cryptographic attacks like this one. This incident is real and serious, but it is also, by the standards of how funds are typically lost in self-custody, statistically unusual: a defect in the manufacturer’s own code, rather than a mistake by the user. Both categories of risk deserve attention; they are not the same category, and defending against one does not defend against the other.
Backup Security
Protecting the seed phrase itself, independent of any single device.
A seed phrase backup is only as good as its resistance to the two failure modes that matter: someone unauthorized finding it, and everyone authorized losing access to it (fire, flood, simple misplacement). Paper is fragile and flammable. Engraved or stamped metal plates resist fire, water and physical decay far better, which is why they are widely recommended for anything beyond trivial amounts. Geographic distribution of backup copies — not all in one location — protects against a single localized disaster, at the cost of more moving pieces to secure and track.
→
→
→
Seed Phrase vs. Passphrase
Vulnerability vs. Exploit — and Why the Distinction Matters Here
The same word gets used loosely in casual coverage. This guide doesn’t.
A vulnerability is a condition that could lead to harm. An exploit is proof that it did, or a demonstrated method to make it. The overwhelming majority of security vulnerabilities disclosed every year in every industry are patched before meaningful exploitation occurs — found by researchers, reported privately, fixed, and published only as a historical footnote. That is, by a wide margin, the more common and less alarming outcome.
This incident sits at the far end of the spectrum specifically because that gap never existed here in a form that protected users. The vulnerability was present, live, in shipping firmware, from March 2021. The exploit — funds actually, provably stolen — began July 30, 2026. For more than five years, the vulnerability existed without (as far as any public record shows) being exploited; then, within a period of days, it went from undiscovered to the subject of a $116 million theft. Understanding which state a given security story is in — disclosed-but-unexploited, or actively-exploited — is the single most important piece of context for judging how urgently to act on it.
Vulnerability vs. Exploit
Responsible Disclosure, and How This Incident Diverged From It
What the textbook process looks like, and why the real sequence here was different.
The standard responsible-disclosure lifecycle exists to give a vendor time to build a fix before attackers have a public roadmap to the problem. It typically runs: a researcher discovers a flaw privately, reports it directly to the vendor under a coordinated timeline, the vendor investigates and develops a patch, and technical details are published only once a fix is available (or a pre-agreed deadline passes). Done well, users never experience a window where the vulnerability is both public and unpatched.
This incident’s actual sequence ran differently, and this guide treats that divergence as a fact worth stating plainly rather than glossing over: the earliest public evidence of the flaw was Bitcoin holders’ funds moving without their authorization, not a private research report. Independent technical analysis (Block’s, Wizardsardine’s) followed the public exploitation rather than preceding it. Whether the attackers themselves independently discovered the same root-cause bug, rediscovered it via automated code analysis, or obtained it some other way, is not established in any source reviewed for this guide — and this article does not speculate further on that point beyond noting Coinkite’s own CEO raised, without confirming, the possibility that AI-assisted code review played a role.
→
→
→
→
🔬 Research Insight
Responsible disclosure allows vendors and researchers to improve security without unnecessarily increasing user risk — when it works, most users never know how close they came to a bad outcome. This incident is instructive precisely because that process didn’t get the chance to run: by the time any researcher was analyzing the bug, it was already being used against real funds. That is not a criticism of Block’s, Wizardsardine’s or Kevin Loaec’s work, all of which moved fast once the exploitation became visible — it’s a structural observation about what happens when attackers, rather than defenders, reach a flaw first.
Coldcard vs. Trezor vs. Ledger: Security Model Comparison
General security-model differences only — not a ranking, and not a statement that any of these devices are similarly affected by this specific flaw.
The three most established names in Bitcoin and multi-asset hardware wallets — Coldcard, Trezor and Ledger — have historically made different tradeoffs on the same handful of design questions: how open is the firmware, is a certified secure element used, and how is air-gapped operation supported. None of this comparison should be read as a claim that Trezor or Ledger devices are affected by the Coldcard-specific RNG bug detailed in this guide — no source reviewed for this article ties this incident to any other manufacturer.
| Security Model Trait | Coldcard (Coinkite) | Trezor (SatoshiLabs) | Ledger |
|---|---|---|---|
| Scope | Bitcoin-only | Multi-asset | Multi-asset |
| Firmware source model | Historically fully open-source; moved toward a more proprietary commercial licensing model starting late 2020 | Long-standing fully open-source firmware | Secure-element operating system has historically been more closed than fully open-source |
| Secure element | None on Mk1–Mk3; dual secure elements added from Mk4 onward | Not present on early models; added on newer “Safe” series devices | Certified secure element used since its earliest models |
| Air-gapped / no-USB signing option | Yes — microSD and, on the Q, QR code, as the primary intended workflow | Available via companion software on some models; USB is the traditional primary connection | Available via QR on newer models; USB/Bluetooth is the traditional primary connection |
| Passphrase (25th word) support | Yes, including on-device entry | Yes | Yes |
Practical Security Guide: Step by Step
Educational guidance only. If you own an affected device, Coinkite’s own current advisory is the authoritative source for your specific model.
Identify your exact model and firmware version
On the device, check the firmware version in the settings menu (typically under Advanced/Tools → something like “Upgrade” or “About”). Note whether you have a Mk2, Mk3, Mk4, Mk5 or Q, since affected version ranges differ by model.
Compare against the current official advisory
Check the affected-versions table later in this guide, then cross-reference against Coinkite’s own current advisory, since firmware version ranges and guidance can be updated as investigation continues.
Download firmware only from the official source
Get updates only from Coinkite’s own downloads page, never a third-party mirror or a link from an unsolicited message — a well-known pattern in past hardware-wallet scams is a fake “urgent security update” used to distribute malicious firmware.
Verify the firmware signature before installing
Coldcard firmware releases are signed; the device itself checks this automatically during the update process via its bootloader, refusing to boot an unsigned or improperly signed build. Confirm the update completes with the device reporting the new, expected version number.
Assess your specific risk before assuming the worst
If your existing seed was generated using 50 or more independent private dice rolls, or is protected by a strong, unique BIP-39 passphrase, Coinkite’s own guidance treats your exposure as low. If neither applies and your seed was generated on affected firmware, treat it as compromised.
Generate a brand-new seed on patched firmware
A firmware update alone does not repair a seed already generated under the flaw. If your risk assessment in step 5 indicates exposure, generate an entirely new seed only after the patched firmware is confirmed installed.
Verify the new backup and a receive address
Before trusting the new seed with any funds, confirm the backup you wrote down actually restores correctly (Coldcard supports an on-device backup-verification check), and confirm a generated receive address matches what your watch-only wallet expects.
Send a small test transaction first
Move a small, non-critical amount to the new seed’s address first, confirm it arrives and can be spent back out, and only then proceed to move the remainder of your holdings.
Migrate remaining funds, then retain the old backup temporarily
Move remaining funds from old, potentially-compromised addresses to the new seed’s addresses. Keep the old seed backup accessible (but still secure) until you’ve fully confirmed the migration succeeded, then retire it according to your own secure-disposal practice.
Apply the same discipline to future disclosures
When any hardware wallet vendor discloses a future vulnerability: check whether it applies to your specific model and firmware, read the vendor’s own advisory rather than relying solely on secondhand summaries, and treat “update your firmware” and “consider whether you need a new seed” as two separate questions with two separate answers.
Firmware Versions: Affected and Patched, by Model
Per Coinkite’s advisory. Always cross-check against the current live advisory before acting.
| Model | Affected (Pre-Patch) Range | Patched Version | Approx. Effective Security |
|---|---|---|---|
| Mk2 / Mk3 | v4.0.1 – v4.1.9 | v4.2.0 or later | ~40 bits (vs. intended 128) |
| Mk4 / Mk5 (standard) | Before v5.6.0 | v5.6.0 or later | ~72 bits (vs. intended 128) |
| Mk4 / Mk5 (Edge) | Before v6.6.0X | v6.6.0X or later | ~72 bits (vs. intended 128) |
| Q (standard) | Before v1.5.0Q | v1.5.0Q or later | ~72 bits (vs. intended 128) |
| Q (Edge) | Before v6.6.0QX | v6.6.0QX or later | ~72 bits (vs. intended 128) |
| TAPSIGNER / OPENDIME / SATSCARD | Not applicable | Not affected | Not applicable — different seed-generation design |
| Attack / Risk Requirement | Physical Device Access? | Internet Access to Device? | Applies to This Flaw? |
|---|---|---|---|
| Chip-level extraction | Required | No | No |
| Malware on companion computer | Not required | Required | No |
| Phishing / fake support scam | Not required | Required (victim’s side) | No |
| Offline key regeneration (this flaw) | Not required | Not required | Yes — the actual mechanism used |
| Verification Checklist Item | Why It Matters |
|---|---|
| Firmware downloaded from official Coinkite source | Prevents installing malicious third-party “updates” |
| Device confirms new version number post-update | Confirms the update actually applied |
| Seed generation date checked against affected firmware timeline | Determines whether an existing seed needs migration |
| Dice-roll entropy count (if used) checked against Coinkite’s threshold | 50+ rolls is treated as low-risk regardless of firmware |
| Passphrase strength and uniqueness reviewed | A strong, unique passphrase is an independent barrier per Coinkite’s guidance |
| New backup verified via on-device restore check | Confirms the written-down backup is actually correct before relying on it |
| Small test transaction sent before full migration | Confirms the new seed and address chain function correctly |
| Date | Event | Security Importance |
|---|---|---|
| Mar 1, 2021 | Flawed guard-clause commit | Root cause introduced |
| Mar 29, 2021 | Firmware v4.0.1 ships | Public exposure window begins |
| Jul 30, 2026 | First theft transactions on-chain | Vulnerability becomes an active exploit |
| Jul 30, 2026 (PM) | Coinkite’s first advisory + Mk3 patch | Vendor acknowledges and begins response |
| Jul 31, 2026 (AM) | Scope expanded to all models | Full extent of affected devices confirmed |
| Aug 1, 2026 | Full patch matrix + Galaxy Research figures | Complete technical and forensic picture established |
| Aug 3, 2026 | Losses reach ~$116M (4th wave) | Most recent confirmed scale; incident still active |
Did You Know?
- Many hardware wallets rely on a combination of open-source code, signed firmware and secure hardware components to reduce attack surface — but as this incident shows, that combination reduces risk, it doesn’t eliminate it.
- Coldcard’s firmware source has long been published at github.com/Coldcard/firmware, making the flawed 2021 commit, in principle, something anyone could have reviewed at any point in the five years before it was exploited.
- The Yasmarang algorithm behind the weak fallback is a general-purpose software pseudorandom number generator never designed for cryptographic key generation — using it for that purpose was the underlying category error.
- Coinkite’s advisory explicitly exempts seeds generated from 50 or more independent private dice rolls, since dice-based entropy never touches the flawed code path at all.
- Every theft transaction Galaxy Research examined used an identical 30 sat/vB fee and no change output — a fingerprint of automated tooling rather than manual, case-by-case theft.
- The 41-minute and 25-minute sweep windows reported for the earliest theft waves suggest attackers had pre-built, ready-to-run tooling rather than working out the exploit live.
Separating What’s Actually Known: E-E-A-T Source Breakdown
Five categories of claim in this story, and how confident each one is.
Verified Technical Findings
The root-cause code path, the affected firmware version ranges, and the effective entropy figures (~40-bit / ~72-bit) — confirmed independently by Block’s engineering analysis and matched against Coinkite’s own advisory.
Vendor Statements (Coinkite)
Patch timing, version numbers, migration guidance, and the CEO’s public apology — Coinkite’s own words, reported accurately, but still a party with reputational and legal interest in how the story is framed.
Independent Researcher Analysis
Block’s root-cause writeup, Wizardsardine’s technical analysis, and Galaxy Research’s on-chain forensics — parties with no direct commercial stake in Coinkite’s outcome, though Block does make a competing product.
Community Discussion & Reaction
Early Reddit reports and social-media pattern-spotting that correctly flagged the incident before any official confirmation — valuable as an early-warning signal, but not, on its own, technical verification.
What Remains Unconfirmed
No CVE identifier has been assigned. No lawsuit has been filed (only pre-litigation review). The exact identity of whoever first exploited the flaw is unknown. The CEO’s AI-discovery theory is speculation, not a confirmed finding.
Financial Loss Figures
$38M → $70.2M → $88.6M → $116M, each accurate at its own reporting date. Treat the most recent figure as current-as-of, not final, given an incident that was still active at last check.
👀 Future Watch
What to watch for next, based only on official channels: whether Coinkite’s advisory is updated further as investigation continues; whether a CVE identifier is eventually assigned; whether independent security audit firms publish a formal post-incident review of Coinkite’s build and release process; and whether the pre-litigation review by 117 Partners develops into an actual filed case. This guide will be updated as any of these firm up — it deliberately does not speculate about undisclosed vulnerabilities or predict legal outcomes.
Frequently Asked Questions
100 questions, organized from the basics through the specific incident to broader security practice.
Passkeys Explained: The Passwordless Authentication Timeline
AI Boom Stocks and the Economy: A Timeline
5 Best Short-Term Investments in 2026
Google Pixel 11 Pro: The Future Timeline
US Economy Slowdown: Growth and Inflation Timeline
Explore All AiTimeline Stories
⚠️ Sources, Methodology & Update Policy
This guide draws on Coinkite’s own published advisory and technical backgrounder, independent technical analysis from Block’s engineering team and Wizardsardine, on-chain forensic reporting from Galaxy Research, and coverage from established financial and security news outlets, cross-checked against each other where their figures overlapped. Every dollar figure and casualty count in this guide is dated to the source that reported it; where figures conflict across dates, that reflects an evolving active incident, not an error in one report or the other.
This is educational security and financial-literacy content, not personalized financial, legal or security consulting advice. If you own an affected device, always verify current guidance directly against Coinkite’s own official advisory before taking action, since version numbers, affected ranges and recommendations may be updated after this guide’s last revision. No CVE has been publicly assigned to this issue as of this writing, and no lawsuit had been filed as of the last update; both facts will be revised here if that changes.
Sources & further reading
Every dated entry above was checked against these references. Last reviewed 4 August 2026.
- Coinkite Official Advisory: Coldcard Mk3 Seed Generation Warning
- Coinkite Technical Backgrounder: Entropy Issue Deep Dive
- CoinDesk: Major Bitcoin Wallet Flaw Drains 594 BTC in 25-Minute Sweep
- The Hacker News: Coldcard Hardware Wallet Flaw Linked to $70 Million Bitcoin Theft in 41 Minutes
- BleepingComputer: COLDCARD Wallet RNG Flaw Likely Linked to $88 Million Bitcoin Theft
- Wizardsardine: Critical Coldcard Flaw -- What Happened, Who Is Affected, and What to Do
- Fortune: Bitcoin Owners Rocked by $116 Million Hack -- What We Know About the Coldcard Exploit
- news.bitcoin.com: The Coldcard Exploit Explained -- Who Lost Bitcoin and Who's at Risk