COLDCARD RNG incident the public record, collected and explained
Informational only, and this site never asks for your seed words. details

Informational only. This is an open source collection of what others have published about the incident, together with an explanation of it. It is not financial, security or legal advice, and not a substitute for professional advice about your own situation. It is not affiliated with, endorsed by, or speaking for Coinkite. Material is attributed and quoted as published; where sources disagree their scenarios are kept separate with their assumptions rather than reconciled into one answer. Everything is meant to be checked against the linked evidence rather than taken on trust. Act on your own judgement about a particular situation. Editorial standards and corrections.

Do not disclose recovery material to a website, form, message or support account. This site never asks for it, and contributions containing recovery words or private keys are not accepted.

Technical Updated 15 Aug 2026

Attack-cost estimates

The published estimates describe different attacker-knowledge assumptions. None is a measured entropy value for an individual device.

Nobody has measured how much entropy an affected COLDCARD seed actually had. What exists are published models of how many candidate seeds an attacker would have to enumerate, and they run from a single candidate to roughly 2^88 depending on what that attacker is assumed to already know about the device. The narrow figures assume the chip's unique ID, the call history and the relevant timing state are known or tightly constrained; the broad ones are enumeration ceilings that treat correlated timer fields as independent. Mk2 and Mk3 sit far below Mk4, Mk5 and Q, because only the later devices mix a secure-element value into one of the two generators. Every figure below is a scenario attached to its assumptions, not a bound on any particular wallet.

Block, Coinkite, LLFOURN and otaliptus describe the search space using different assumptions about what an attacker knows.

Block's own caveat on the scenarios below
"This analysis is based on our current understanding of the situation. We have not done full empirical testing to confirm exploitability."Block Engineering, disclosure summary
Published candidate-space estimates on one axis Bits of candidate space from 0 to 88. For Mk2 and Mk3: Block gives 2^0 with timers known, 2^16.3 with stable RTC, and ceilings of 2^32 and 2^40.7; Coinkite and LLFOURN give about 2^40. For Mk4, Mk5 and Q: Block gives ceilings of 2^32 and 2^73.3, with a conditional no-reseed path at 2^0 and below 2^41.3; Coinkite about 2^72; LLFOURN 2^72.3, a derived 58.3 to 62.3 range, and 2^32 with a known UID; otaliptus tentatively gives 52 to 63 or 77 to 88. MK2 / MK3 MK4 / MK5 / Q dot: scenario · bar: stated range · <: ceiling · dashes: derived here BlockCoinkiteLLFOURNBlockBlock, no-reseed pathCoinkiteLLFOURNotaliptus, tentative 2^02^16.3<2^32<2^40.7~2^40 (Mk3)~2^40.3 (Mk3)≤2^32<2^73.32^0<2^41.3~2^722^32, UID known58.3-62.3, derived~2^72.352-63 if RTC problematic7577-88 otherwise 0 16 32 48 64 80 88 bits of candidate space (log2)
The published scenarios from the table below on one axis, in bits of candidate space. Dots are single scenarios, bars are stated ranges, a left tick marks a ceiling, and the dashed bar is the 58.3 to 62.3-bit subtraction derived from LLFOURN's follow-up. Hollow marks are Block's conditional no-reseed path. Every figure carries the assumptions in its table row; none is a measured per-device value.
Published candidate-space estimates and assumptions R1
Source Mk2 / Mk3 Mk4 / Mk5 / Q Assumptions represented
Block 2^0 with timers known;
~2^16.3 with stable RTC;
2^32 ceiling with the UID-XOR-SysTick word unknown;
<2^40.7 loose ceiling
≤2^32 with known fallback state;
<2^73.3 loose ceiling
For Mk4-class devices, these figures assume a successful reseed. Block's narrow cases assume the UID, call history and relevant timing state are known or constrained. The 2^32 Mk2/Mk3 figure is the ceiling Block gives when the effective 32-bit UID-XOR-SysTick value is entirely unknown; Block adds that unknown call history multiplies these counts further. Its broader figures deliberately treat correlated timer fields independently.
Block, conditional no-reseed path not applicable 2^0 with fallback state known;
<2^41.3 loose ceiling
A catchable early-initialisation error could leave libngu at its public initial state. Block says ordinary secure-element failures appear to halt instead, so this source path remains conditional pending hardware validation.
Coinkite Mk3: ~2^40
Mk2: not separately stated
~2^72 Upper scenarios that retain uncertainty from the MCU identifier and timing inputs. These are estimates, not measurements across a device population.
LLFOURN Mk3: ~2^40.3
Mk2: not separately stated
~2^72.3 A stated Mk3 model of about 2^20 possible MCU identifiers, 80,000 timing states and 16 button-press variants, plus the 32-bit reseed term on Mk4-class devices. The source does not decompose the 16 variants further.
LLFOURN follow-up not separately quantified ~2^58.3 to ~2^62.3 LLFOURN later said the Mk4-class space was probably around 10 to 14 bits smaller than the original 2^72.3 estimate, and that it could be smaller still depending on the clock behaviour. The subtraction shown here is derived from that statement, and its lower end is not a floor the source claims.
LLFOURN, known-UID scenario not stated 2^32 In a later reply, LLFOURN said a pessimistic view in which the UID is known and button presses and clock behaviour are more predictable leaves 32 bits of work per Mk4 theft. This converges on Block's lower scenario through an explicit attacker-knowledge assumption.
otaliptus, tentative model not stated ~2^52 to ~2^63 if RTC is problematic; ~2^77 to ~2^88 otherwise, or ~2^75 on the author's most pessimistic aside Assumes a remote attacker does not know the UID, estimates 20 to 21 bits from the wafer-coordinate word, narrows practical SysTick positions, and treats the Mk4 RTC contribution as unresolved. The author explicitly labels the post brainstorming and lists details that may be wrong.
ineedanamegenerator, 7 August Mk3 seeding word: ~2^23 not stated A bound on one term rather than a full candidate space: it narrows the same 32-bit UID-XOR-SysTick word Block bounds at 2^32. The argument is that SysTick's roughly 16.3 bits sit in the low 17 bits, so the UID's low half adds nothing under the XOR, and that the upper wafer-coordinate half carries about 7.2 bits given a stated ceiling of 20,000 chips per wafer. The wafer ceiling is the author's own assumption, and the post corrects itself mid-way to withdraw an earlier BCD-encoding argument.

Where a source states a Mk3 figure and says nothing separately about Mk2, carrying that figure across to Mk2 would be a further derivation from their shared code path.

The MCU identifier term

one 32-bit word of the STM32L4 UID, and what its field layout does not establish

The affected MicroPython fallback reads one 32-bit word from the STM32L4's 96-bit unique-identifier area. It combines that word with the SysTick counter, and seeds two other state words from the real-time clock and its subsecond register.

Whether the first word's field layout narrows the practical range across shipped COLDCARD devices is unresolved in this record. This project holds no population sample of device UIDs as of a 14 August 2026 recheck, so LLFOURN's 2^20 assumption remains unchecked here. U2

Two sources published since narrow the term without supplying that sample. The CKTRIPWIRE methodology page describes an instrumented firmware build flashed to one sacrificial Mk3 and a boot battery that captured the device's actual seeding registers. The operator reports that it found the UID word packed with die coordinates rather than uniform across 32 bits, SysTick confined to a narrow early-boot range, and the Mk3 real-time-clock registers reading zero because that clock is disabled and has no backup battery. That is a single device described by the experiment's own operator: it speaks to the field's shape, not to its distribution across shipped devices. R3 Separately, on 7 August ineedanamegenerator put the whole Mk3 seeding word at about 23 bits rather than 32, by the reasoning set out in the table above. That is one poster's derivation from a stated wafer-size assumption, not a measurement, and it is narrower than the 2^32 ceiling Block gives for the same word. R4

The unresolved RTC term

whether the real-time clock contributes useful variation on Mk4-class devices

otaliptus isolates a second uncertainty that the headline bit counts can hide: whether the real-time clock contributes useful variation on Mk4-class devices. The post models roughly 24 additional bits if it does, and no such contribution in the pessimistic case, then broadens both results to reflect uncertainty in the other inputs. It does not report that Mk4 RTC behaviour is broken. The author says that question is unanswered, and this archive has no runtime measurements that resolve it. R5

Illustrative half-space times

The following table applies time = 2^(bits - 1) / rate. Calling half the space an average assumes that the target is uniformly positioned in the enumerated order and that the attacker has no better prioritisation. The device-state distributions have not been measured, so this is a sensitivity model, not an empirical average or a forecast of attacker capability. A day is 86,400 seconds and a year is 365.25 days in the displayed conversions.

Half-space times under a uniform-position model D6
Scenario Candidates 4,000/s 2 million/s 16 million/s 1 billion/s
Mk2/Mk3, Block stable-RTC scenario2^16.310 seconds0.02 seconds0.003 seconds0.00004 seconds
Mk3, approximately 40-bit scenario2^404.4 years3.2 days9.5 hours9.2 minutes
Mk4-class, Block successful-reseed scenario with known fallback state2^326.2 days17.9 minutes2.2 minutes2.1 seconds
LLFOURN follow-up range2^58.3 to 2^62.31.4 to 22.5 million years2,800 to 45,000 years351 to 5,600 years5.6 to 90 years
Approximately 72-bit scenario2^7218.7 billion years37.4 million years4.7 million years74,800 years

Published rate and cost figures sit beside that model, none of them reproduced here. The Bitcoin Dev Project's explainer thread put a 2^40 Mk3 search at 20 to 45 minutes on rented specialised GPUs, for under a dollar of compute. R7 CKTRIPWIRE, which funds deliberately weak honeypot wallets and watches which ones are swept, published an estimated GPU crack time of about 88 minutes for its zero-added-entropy control band, then on 6 August revised its estimates sharply downward across every band, the control to about two minutes. R8 Between those two states, kTimesG posted in the BitcoinTalk compromise thread that the control's seed was one of 16,777,216 candidates and had been found in 4.2 seconds on an RTX 4090 rather than 88 minutes, that the site's estimate was about 352 times too high, and that the control's inputs could not arise on a real device, so its outcome says nothing about how real compromised seeds were computed. Neither the 4.2-second run nor the 352-fold factor is reconciled here against the site's figures, and CKTRIPWIRE's published method states that its reproduction was checked word-for-word against a real Mk3. R9 LLFOURN separately reported that attackers appeared to be acquiring additional compute capacity for this kind of offline candidate search; that activity is not verified here. R10

In the same exchange Greg Maxwell asked participants not to publish reductions of the COLDCARD search space while vulnerable funds remained unswept, and kTimesG replied that the point was only that the honeypot did not reflect real conditions. R11

Interactive source comparison

Published model explorer

Select one published candidate-space scenario and vary only the candidate-check rate. This does not accept wallet details, dice rolls or passphrase constructions.

Choose a model to compare its published boundary.

The rate is a sensitivity input, not a benchmark. A complete candidate check includes enough derivation work to compare against the available wallet data. The selected sources use different attacker-knowledge assumptions, so their outputs are not measurements of one shared population.

What the held record established by model

On 2 August, Rob Hamilton asked whether any compromise of a Mk4, Mk5 or Q wallet had been confirmed, noted that multiple earlier claims had been retracted, and asked how much collective effort was being applied to the larger Mk4-class search space. R12 As of a 15 August 2026 recheck, no captured source in this archive demonstrates a Mk4, Mk5 or Q wallet drained in this incident's July 2026 waves. That is a dated archive limit, not a finding that those models were safe, and the published candidate-space estimates above remain in disagreement. U13 One held source reports an earlier case outside those waves. ChuckSRQ's 4 August catalogue of pre-July drain reports lists a July 2023 theft of 3.73118785 BTC from an Mk4 whose owner described a device-generated seed, with the theft and amount cited to a transaction. The author calls it the best public candidate for the firmware defect while stating that its exact cause is not proven and its firmware version is unknown. R14

Reported collision arithmetic

A targeted search for one wallet is not the only consequence of a small candidate space. When many devices draw seeds from the same small set of possibilities, two of them can independently produce the same wallet, with neither owner ever attacked. Three posts held here put figures on that, and each figure carries its author's own assumptions.

The two 50% thresholds differ. Each is reproduced here as its author stated it; the difference reflects the authors' own modelling choices, and this archive has not recomputed either figure or verified the reported program run. R16

Evidence on this page 16 items
  1. R1
    Reported · contested

    The candidate-space estimates and attribution in the comparison table above

    Source Published models from Block, Coinkite, LLFOURN, otaliptus and a 7 Aug community derivation; the 58.3 to 62.3-bit row is arithmetic on LLFOURN's follow-up

  2. U2
    Unverified

    The practical distribution of the 32-bit UID word across shipped COLDCARD devices

    Source The practical distribution across COLDCARD devices had not been measured here as of a 14 August 2026 recheck

  3. R3
    Reported

    The single-Mk3 instrumented boot-battery observations about UID packing, the SysTick range and zero Mk3 RTC registers

    Source CKTRIPWIRE methodology page, captured 5 Aug 2026; the operator's own account of one sacrificial device, not reproduced here

  4. R4
    Reported · contested

    The roughly 23-bit bound on the Mk3 UID-XOR-SysTick seeding word and the 7.2-bit wafer-coordinate estimate behind it

    Source ineedanamegenerator, captured Reddit thread of 7 Aug 2026; the poster's own derivation, not recomputed here, and narrower than Block's 2^32 ceiling for the same word

  5. R5
    Reported

    The tentative RTC and timing scenarios described immediately above

    Source otaliptus, tentative public analysis on 1 Aug 2026; explicitly presented as brainstorming

  6. D6
    Derived

    The illustrative half-space times in the table above, under the stated uniform-position assumption

    Source Time is 2^(bits - 1) divided by the displayed rate; the source models do not benchmark those rates

  7. R7
    Reported

    The 20-to-45-minute, under-a-dollar rented-GPU figure for a 2^40 Mk3 search

    Source Bitcoin Dev Project, captured X thread, 3 Aug 2026; a simplified public explainer, with no benchmark or hardware detail published

  8. R8
    Reported

    CKTRIPWIRE's published estimated GPU crack time for the zero-added-entropy control band before and after its 6 August revision

    Source CKTRIPWIRE live monitor, captures of 6 Aug 2026 either side of the revision; the operator publishes no benchmark behind the estimates

  9. R9
    Reported · contested

    kTimesG's 16,777,216-candidate and 4.2-second RTX 4090 figures, the claimed 352-fold overstatement, and the dispute over whether the control honeypot's inputs are reachable on a real device

    Source kTimesG, captured BitcoinTalk thread, 6 Aug 2026, against CKTRIPWIRE's own published estimates and methodology; neither side's work is reproduced here

  10. R10
    Reported

    Reports that attackers were acquiring additional compute capacity

    Source LLFOURN reported that attackers were acquiring compute; this project has not independently verified that activity

  11. R11
    Reported

    Maxwell's 6 August request not to publish search-space reductions, and kTimesG's reply

    Source Greg Maxwell and kTimesG, captured BitcoinTalk thread, 6 Aug 2026

  12. R12
    Reported

    Hamilton's 2 August question about confirmed Mk4, Mk5 or Q compromises, retracted claims and collective search effort

    Source Rob Hamilton, captured X post, 2 Aug 2026

  13. U13
    Unverified

    Whether any Mk4, Mk5 or Q wallet lost funds in this incident's July 2026 waves, as of a 15 August 2026 recheck

    Source No captured source demonstrates a Mk4-class drain in those waves; absence from this bounded archive is not evidence of safety

  14. R14
    Reported

    The July 2023 Mk4 theft of 3.73118785 BTC catalogued by ChuckSRQ, and the author's own statement that its cause is unproven

    Source ChuckSRQ, captured X post of 4 Aug 2026; the theft and amount are cited to a transaction, the attribution to this defect is established neither there nor here

  15. R15
    Reported

    The roughly 1.3-million-generation average duplicate rate and the 4.7-second, roughly 268,000-states-per-second collision run under the 40-bit model

    Source JStefanop1, captured X post of 1 Aug 2026, with an attached screenshot of the reported duplicate-seed run; not reproduced by this archive

  16. R16
    Reported · contested

    The 77,000-seed and 93,000-seed 50% collision thresholds and the 200,000-seed 99% figure attributed above, which state different 50% thresholds

    Source skot9000 and mitchellaskew, separately captured X posts of 2 Aug 2026; each figure is shown as its author stated it and neither has been recomputed here