Did AI find this bug?
AI-assisted reproduction is reported. Whether AI found the bug in the first place is disputed: Coinkite first said it had to assume someone used AI on its firmware and now says it believes the latest models were needed, while a pre-incident audit prompt that missed the defect, a worked human route to the same code and a community argument that no AI found it are also on record. This page sets out who says what.
Public discussion often combines two different claims: that AI helped people reproduce the vulnerability after disclosure, and that AI originally found it. The captured record supports the first as a reported event. It does not establish the second. The record now also holds documented prompt attempts that failed to find the defect, one made seven weeks before the incident and one repeating that same prompt after publication; the authors' stated reasons are reported below. Since 6 August the vendor has put the discovery claim more firmly, published commentary has adopted it, and a community argument that no AI found the bug has been posted against it. All three are set out below.
What Coinkite said
"we have to assume that someone used AI to review previous versions of our firmware" Coinkite, entropy technical backgrounder V1
The phrase "we have to assume" identifies the discovery claim as Coinkite's inference. The same passage separately reports that an earlier internal AI review did not find the defect. No model, transcript, prompt, discovery date or account from the original finder has been published in the sources held here.
NVK's later statement argued that AI-assisted review is accelerating discovery of latent defects and that public firmware should be assumed to receive both defensive and adversarial review. R2 That is an attributed security position, not evidence about how this defect was originally found.
On 7 August 2026 the COLDCARD account put the claim more firmly. Replying to a critic on X, it wrote: "The bug lived in public for 5yrs, even third party researchers didn't find it. We believe if took the lastest LLM models to find it." The wording is quoted as posted, typing errors included. V3 The statement moves from what the backgrounder said the company had to assume to what it says it believes, and adds a second proposition: that the defect was beyond the third-party researchers who could read the firmware across five years. Neither statement is accompanied by a transcript, model identifier or discovery date, so what is established here is the wording, not the finding.
What the post-incident tests do and do not show
In its 4 August public-record update, Coinkite said that an internal review before the incident and additional tests with frontier models after the incident did not catch the defect. R4 That evidence cuts against treating public source plus frontier-model access as sufficient by itself, but it does not show what a differently scoped or tool-assisted review would find.
Rob Hamilton separately reported that an incident-funded red team spent about US$20,000 scanning 150 repositories and produced more than a dozen private disclosures with critical findings. R5 Those were his figures on 4 August, and the campaign's own later reports are larger: on 5 August calle, coordinating the same effort, reported sixteen people, 4,962 findings across 390 projects, 85 of them critical and 635 high severity, 27.5 hours in. Bitcoin Magazine carried those numbers the same day and put the compute bill above US$40,000, funded by OpenSats. R6 Those figures describe a reported defensive campaign, not evidence about the original finder or the theft operator.
On 6 August calle added a claim about which models were doing that work: that not a single vulnerability had been found by a US frontier model, and that the effort was spending about US$10,000 a day on open-weights models, naming Kimi K3 and Qwen 3.8. R7 Hamilton's own harness description names a mixture, with K3 doing the heavy lifting and GPT Sol, Fable, Opus and GLM 5.2 in supporting roles, so the two accounts describe the same campaign from different angles rather than contradicting each other outright. Both are participants' characterisations of unpublished output.
Julián Ors supplied the corresponding false-positive warning: finding an insecure generator in source is not enough without showing that the path was reachable in shipped firmware and reconstructing the relevant release history. R8 That is a review criterion, not a finding about any particular scanner.
Early hypotheses about the operator
Kevin Loaec published an early hypothesis that the operator had asked an AI system to produce a brute-force and sweep script. R9 The observation behind it was narrower: the visible sweep searched BIP84 paths, used limited derivation depth and sometimes found only part of a wallet. Those details can inform a hypothesis about the script, but they do not identify how it was written.
Dhruv Bansal's three-post response, held as part one, part two and the third instalment, argues for multi-vendor custody and layered protections; its reference to an attacker using an LLM is part of that broader warning, not independent evidence about the operator or the original discovery method. R10
A pre-incident audit attempt is now on record
On 2 August 2026, utxoclub posted that on 17 June, roughly seven weeks before disclosure, he had pointed a large language model at the COLDCARD firmware with an audit prompt whose second listed item was a weak RNG source. The prompt did not surface the defect. R11 Two distinctions keep the claim in proportion: naming weak randomness as a category to look for is not the same as identifying this specific defect, and the post is an account of the poster's own earlier work rather than a finding published at the time.
LLFOURN examined that prompt the same day and gave two reasons for the miss: the model tier available to that account at the time, which his post phrases as a complaint about Anthropic's model gating, and the firmware repository's git-submodule structure, which keeps relevant code out of a naive checkout. R12 Both are the author's own characterisations of why the attempt failed, not measured causes.
Reproduction results after publication do not agree
Two kinds of post-disclosure result now sit side by side. Bitcoin Optech reports that several developers reproduced the attack with the assistance of frontier AI models; their prompts and transcripts are not held here. Against that, on 3 August 2026 LLFOURN began a systematic thread of prompt attempts, "for the good of science", to find what was missing from the original audit prompt. Its first data point is negative: the same prompt, run on Claude Opus 5 at the highest reasoning-effort setting, also failed to find the bug. R13
Further reported successes have accumulated on the same terms. A 6 August Bitcoin Magazine op-ed states that since the attack began researchers have shown several frontier models locating the same flaw in minutes from a single prompt, without naming them; a commenter in the 6 August r/Bitcoin thread that argues against the AI framing reports a success of his own, saying a small locally run model found the exact bug in about fifteen minutes and a few million tokens from a prompt that named no flaw; and the r/Bitcoin discovery thread's own opening post links a second reproduction on GLM 5.2. R14 Not one of them is accompanied by a prompt, a transcript or a statement of which files the model was given, which is the difference between them and the negative result above.
The two results do not test the same thing. The reported successes used prompts and context this archive has not captured; the controlled failure reused the original prompt on a stronger model. What the captured record supports is only that a stronger model alone did not turn the original prompt into a discovery. The thread is ongoing, and further data points will be held as they are posted.
How the discovery framing spread
Community venues carried the AI-discovery framing further than the captured evidence goes. An r/Bitcoin thread of 2 August is titled around Claude Code finding the vulnerability from a bare "check for vulnerabilities" prompt within eight minutes, and asserts the theft exceeded $100 million. Both figures are the thread's own: the eight-minute account does not correspond to any reproduction held in this archive, and the loss figure is not one the funds record adopts. R15 The thread is captured as evidence of how the claim circulated, not of what happened.
That thread has been edited on the source since. Captures on 6 and 7 August record comments deleted and added, among them one whose three links to earlier COLDCARD drain reports were removed and whose account now shows as deleted, and a later reshuffle in which a subthread on whether development teams should pay for AI code review became visible while several short comments disappeared. The title and opening post this page quotes are still present in the current capture; the withdrawn material is preserved in the earlier ones. V16
The framing is also contested in the same venue. On 6 August, in a thread titled "It's not an 'AI Hack'", CBpegasus argued that no evidence shows an AI found the vulnerability, that the defect is an ordinary integration mistake in which a wrong define routes execution to the wrong function, that static analysis by a language model would likely have missed it just as Coinkite's own pre-incident review did, and that a more plausible route is statistical testing of generated seeds followed by dynamic analysis of what the firmware actually executes. R17 The thread does not settle on that view: its own replies include the locally run model result noted above, a poster arguing that any model would have flagged the define that disables the hardware generator, and one saying plainly that nobody knows.
Published commentary has meanwhile adopted the framing as a premise. Casa, a competing collaborative-custody provider whose post closes by offering free consultations to people moving off an affected COLDCARD, wrote on 6 August that researchers now believe the vulnerability was most likely found by a frontier model, and that whether the attribution is ever confirmed does not matter, because it is plausible today and will be normal tomorrow. R18 The post names no researchers, and its own text treats confirmation as unnecessary. That is commentary on the claim, not evidence for it.
Public source and whether it was ever a defence
Underneath the discovery question is a second dispute the incident reopened: whether publishing the source was supposed to prevent this, and what the licence had to do with it. Coinkite's own 7 August wording, quoted above, puts one position — the bug lived in public for five years and third-party researchers did not find it. Three published responses pull in different directions. This archive sets them beside each other and does not adjudicate.
Colin Crossman's 6 August Bitcoin Magazine op-ed, a guest post whose author is identified there as Wyoming's Deputy Secretary of State, argues that the licence never bore on readability: Coinkite's move from a free-software licence to source-available terms, made in his account after another vendor used the code in a competing product, changed the economics of finding the bug rather than the ability to read it, because a machine that decompiles a binary is unaffected by what a licence permits. He also puts the plainer point that the code was open to human review for five years and, on his reading, no human caught it, and describes Coinkite's AI-discovery assumption as its working position "with wide agreement on X". R19
Ledger, a competing hardware-wallet vendor, published its CTO on 7 August arguing the reverse emphasis: that open source is valuable but is not a security property, and that a security model resting on "the crowd will save us" is "a hope" rather than a model. R20 Casa's post makes the observational version of the same point about this firmware: the source was viewable throughout, reviewers confirmed the hardware generator existed, and nobody checked whether the seed path called it correctly. R21
The community version of the question is held here too, and part of it has since been withdrawn. The r/coldcard thread asking whether COLDCARD is really open source, and whether the code was locked away or merely unread, shows its opening question as removed at source in the 7 August capture; the title and replies remain, and the question as originally posted is preserved in the earlier captures. V22 The licence terms themselves, and the forkability question they raise, are recorded on the developer-response page rather than here. What the captured record establishes on this page's question is narrower than any of the positions above: the source was public throughout, and no held source identifies anyone who found the defect in it before the theft. U23
Claim register
| Claim | Evidence basis | What supports it |
|---|---|---|
| Developers used frontier AI models to reproduce the attack after disclosure. | Reported | Bitcoin Optech reports that several developers "were able to immediately reproduce the attack with the assistance of frontier AI models". This archive does not hold their individual transcripts. |
| Coinkite ran an AI-assisted review weeks earlier and it missed the defect. | Reported | Coinkite's own account. No review artefact has been published in the captured sources. |
| A pre-incident audit prompt naming weak RNG was run on 17 June and missed the defect. | Reported | utxoclub's 2 August account of his own prior prompt. LLFOURN's stated reasons for the miss, model tier and repository submodule structure, are his own characterisations. |
| The same original prompt also fails on a current frontier model. | Reported | The first data point of LLFOURN's reproduction thread, 3 August: Claude Opus 5 at the highest reasoning-effort setting did not find the bug from the original prompt. |
| Coinkite's additional post-incident frontier-model tests did not catch the defect. | Reported | Coinkite's 4 August account names Kimi K3, Claude Fable and Codex 5.6, but does not publish the prompts, transcripts or evaluation protocol. |
| An incident-funded red team found critical issues across a 150-repository scan. | Reported | Rob Hamilton's 4 August account of the campaign. The held record does not include an itemised public finding list or disclosure acknowledgements. |
| AI originally found the defect. | Unverified | Coinkite inferred this from the source being public, and on 7 August restated it as a belief that the latest models were needed. The original finder and method remain unidentified. |
| The theft operator used AI. | Unverified | No captured evidence connects the operator, the original finder or a specific tool. |
| The faulty path was reachable by manual code and commit reading. | Reported | Dettmer's published walkthrough does it. This concerns reachability after disclosure, not the original discovery. |
| Coinkite believes the latest models were needed to find the bug, and that third-party researchers did not find it in five years. | Reported | COLDCARD's 7 August reply on X, quoted verbatim above. No transcript, model identifier or discovery date accompanies it. |
| The defect was not found by AI, or not by a straightforward model pass over the source. | Reported | CBpegasus's 6 August r/Bitcoin argument, which proposes statistical seed testing plus dynamic analysis instead. The reasoning is the poster's own and the thread's own replies do not agree with it. |
A worked human route to the same path
The manual route stopped being hypothetical on 1 August 2026, when bitcoin++ Insider Edition published Dustin Dettmer's commit-history walkthrough. Working from the public repository, it reaches the board override, the disabled macro and the symbol the seed path actually calls, and it credits no model assistance. V28 What it reconstructs is summarised on the developer-response page. U29
A contemporaneous transcript, model identifier, dated analysis or account from the original finder could support the discovery claim. Until such evidence appears, the appropriate status is unverified. U30
Evidence on this page 30 items
- V1 Verified · contested
Coinkite's quoted assessment of AI-assisted vulnerability discovery
Source Quotation checked against the captured Coinkite backgrounder
Evidence → captured
- R2 Reported · contested
NVK's quoted view about the role of AI and the review process
Source NVK's public statement, preserved as an X capture
Evidence → captured 1 Aug 2026
- V3 Verified · contested
The wording of COLDCARD's 7 August reply, quoted verbatim from the capture
Source COLDCARD's 7 Aug 2026 reply, preserved as an X capture; the quotation was checked against it
Evidence → captured
- R4 Reported · contested
Coinkite's account of its pre-incident and post-incident AI review results
Source COLDCARD's captured 4 August public-record update; the post names Kimi K3, Claude Fable and Codex 5.6 but publishes no prompts, transcripts or evaluation protocol
Evidence → captured
- R5 Reported · contested
Hamilton's stated spend, repository count and disclosure count
Source Rob Hamilton's captured 4 August post; no itemised finding list, prompts or disclosure acknowledgements are public in the held record
Evidence → captured
- R6 Reported · contested
calle's 5 August counts for the same campaign, and the larger compute figure in the secondary report of them
Source calle's captured 5 August status post and Bitcoin Magazine's 5 August report of the same figures, both held here; the findings are said to be held for responsible disclosure, so none of the counts can be rechecked
Evidence → captured
- R7 Reported · contested
calle's claim that no vulnerability in the campaign was found by a US frontier model, and his stated daily spend on open-weights models
Source calle's captured 6 August post; no finding-by-model breakdown is published in the held record
Evidence → captured
- R8 Reported · contested
Ors's methodological warning about reachability and historical shipped code
Source Julián Ors, captured primary X post
Evidence → captured
- R9 Reported · contested
The proposed use of AI by the operator
Source Kevin Loaec's explicitly labelled current hypothesis, 30 Jul 2026
Evidence → captured 30 Jul 2026
- R10 Reported · contested
Bansal's three-post community, collaborative-custody and layered-security response, not attribution of the operator
Source Dhruv Bansal, three separately captured posts, 31 Jul 2026; all three records are linked above
Evidence → captured
- R11 Reported · contested
utxoclub's account that a 17 June audit prompt listing weak RNG was run against the firmware and did not surface the defect
Source utxoclub's 2 Aug 2026 post about his own prior work, preserved as an X capture
Evidence → captured
- R12 Reported · contested
LLFOURN's two stated reasons for the pre-incident prompt's failure: the account's available model tier and the repository's submodule structure
Source LLFOURN's analysis of the utxoclub prompt, 2 Aug 2026, preserved as an X capture
Evidence → captured
- R13 Reported · contested
The first result of LLFOURN's reproduction thread: the original audit prompt failing on Claude Opus 5 at the highest reasoning-effort setting
Source LLFOURN's prompt-reproduction thread, started 3 Aug 2026, preserved as an X capture
Evidence → captured
- R14 Reported · contested
Three further accounts of models locating the flaw after disclosure: the op-ed's unnamed frontier models, a commenter's locally run small model, and the linked GLM 5.2 attempt
Source Colin Crossman's 6 Aug Bitcoin Magazine op-ed, a 6 Aug comment in the r/Bitcoin 'It's not an AI hack' thread, and the r/Bitcoin discovery thread's opening post, all captured here; none publishes a prompt, transcript or checkout state
Evidence → captured
- R15 Reported · contested
The r/Bitcoin thread's eight-minute discovery account and $100 million loss figure, reported as the thread's own and adopted by neither this page nor the funds record
Source r/Bitcoin discussion thread, 2 Aug 2026, captured here
Evidence → captured
- V16 Verified · contested
That the r/Bitcoin discovery thread has had comments deleted and added since 6 August, and that the title and opening post quoted above remain in the current capture
Source Successive captures of the thread held here and the diffs between them
Evidence → captured
- R17 Reported · contested
CBpegasus's argument against the AI-discovery framing and his proposed alternative route to the defect
Source The r/Bitcoin thread 'It's not an AI Hack', 6 Aug 2026, captured here; the reasoning is the poster's own and no discovery artefact supports or refutes it
Evidence → captured
- R18 Reported · contested
Casa's statement that researchers believe a frontier model most likely found the vulnerability, and its stated position that confirmation does not matter
Source Jameson Lopp for Casa, 6 Aug 2026, captured here; the researchers are not named and Casa sells the multi-key custody the post recommends
Evidence → captured
- R19 Reported · contested
Crossman's argument that the licence change altered the economics of finding the bug rather than its readability, and his characterisation of the discovery claim's acceptance
Source Colin Crossman's 6 Aug 2026 Bitcoin Magazine op-ed, captured here; its address and loss figures are the author's own and are not adopted by this record
Evidence → captured
- R20 Reported · contested
Ledger's published position that open source is not a security property, and the quoted line about relying on the crowd
Source Ledger's captured 7 Aug 2026 post presenting its CTO's argument; Ledger is a competing hardware-wallet vendor and the underlying argument is its own
Evidence → captured
- R21 Reported · contested
Casa's account that the source was viewable throughout and that reviewers confirmed the hardware generator existed without checking that the seed path called it
Source Jameson Lopp for Casa, 6 Aug 2026, captured here; the account is Casa's and names no reviewer
Evidence → captured
- V22 Verified · contested
That the r/coldcard open-source thread's opening post shows as removed at source in the 7 August capture and is preserved in earlier captures held here
Source Successive captures of the thread held here and the diff between them
Evidence → captured
- U23 Unverified · contested
Whether anyone read the defect out of the public source before the theft
Source No captured source identifies a pre-theft finder as of a 14 August 2026 recheck, and absence of a captured account is not evidence that none existed
Evidence → captured
- R24 Reported · contested
The two attributed AI-review and post-disclosure reproduction claims in the first two rows below
Source Coinkite's captured backgrounder and Bitcoin Optech's developer summary
Evidence → captured 1 Aug 2026
- R25 Reported · contested
The pre-incident prompt failure and the frontier-model prompt failure in the third and fourth rows below
Source utxoclub's 2 Aug account and LLFOURN's 3 Aug reproduction thread, both preserved as X captures
Evidence → captured
- R26 Reported · contested
The vendor's 7 August restatement and the community counter-argument in the two rows added at the foot of the table
Source COLDCARD's captured 7 Aug reply and the captured r/Bitcoin thread arguing the bug was not found by AI
Evidence → captured
- U27 Unverified · contested
The original discovery method and whether the theft operator used AI
Source No captured discovery artefact or operator evidence establishes either proposition as of a 15 August 2026 recheck
Evidence → captured
- V28 Verified · contested
That a published post-disclosure analysis reconstructs the faulty path from commit history without claimed model assistance
Source Dettmer's analysis as captured, 1 Aug 2026
Evidence → captured
- U29 Unverified · contested
Whether the original finder used a comparable manual route
Source A demonstrated post-disclosure route does not evidence the pre-disclosure one; no discovery artefact has been captured as of a 14 August 2026 recheck
Evidence → captured
- U30 Unverified · contested
The method by which the attacker or original discoverer found the vulnerable path
Source Coinkite's stated inference; no public discovery artefact in the captured record as of a 15 August 2026 recheck
Evidence → captured