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.

r/Bitcoin: engineering-negligence analysis of the Coinkite bug

reddit-engineering-negligence-post

https://www.reddit.com/r/Bitcoin/comments/1ve97sw/basic_flaw_devastating_impact_engineering/

Organisation
reddit
Evidence role
Community discussion
Published
not established
Source changes
0
Detected differences
0
Unreviewed
0
Copies held
1

Every check is recorded, including checks that found no text change. A detected edit is therefore bounded between two checks. The publisher's exact save time is not observable from this record. Last checked .

  1. Earliest copy held Current
    seen · Captured here 3,062 chars
    Extracted text as captured
    post: 1ve97sw
    author: eternal_recurrence12
    created_utc: 1785751507
    title: Basic Flaw, Devastating Impact: Engineering Negligence in the Coinkite Bug
    body:
    While software bugs are inevitable, the recent Coinkite bug represents a severe oversight by hardware security standards. The vulnerability occurred because a code constant intended for development testing was left active in production, causing the firmware to fall back on a deterministic software pseudorandom generator instead of querying the dedicated Hardware True Random Number Generator (TRNG) embedded in the secure element (such as the ATECC608).
    
    ​Beyond the configuration flaw, the release pipeline lacked essential integration testing. A proper quality assurance suite should execute automated regression tests that repeatedly generate seeds, validating statistical entropy variance and explicitly asserting that sequential key generations never collapse into identical or predictable values. What do you guys think, am I on the right track here or do you disagree?
    
    comment: p1fp278
    parent: t3_1ve97sw
    author: Xen7963
    created_utc: 1785760474
    edited: 1785766127
    body:
    Open source should not be a cost saving measure, it is an extra on top of standard QA. How many of these so called open source projects dare to disclose their QA budget I am wondering.
    
    comment: p1g3rj4
    parent: t1_p1fp278
    author: eternal_recurrence12
    created_utc: 1785764941
    edited: false
    body:
    Agreed that open source doesn't replace internal QA, but this isn't a budget issue—it's a lack of basic unit and integration testing.
    ​The firmware runs MicroPython and C. A simple unit test in Python asserting that entropy generation calls the true hardware TRNG instead of falling back to a deterministic PRNG (Yasmarang) would have caught this in seconds on any local dev environment or basic CI pipeline.
    ​This wasn't a complex edge-case; it was the total absence of test coverage for a core security invariant
    
    comment: p1g87je
    parent: t1_p1g3rj4
    author: Xen7963
    created_utc: 1785766182
    edited: false
    body:
    Budget is just one measure of the effort, surely they could have high budget but still missed out
    
    comment: p1gd9k5
    parent: t3_1ve97sw
    author: tenuousemphasis
    created_utc: 1785767560
    edited: false

    Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.

How to check this yourself

The excerpts and plain unified diffs above show the text this project held and how it changed. To verify a quotation, compare it against the page itself or against the Internet Archive's copies, which are independent of this project.

Complete captures are held offline rather than mirrored here, so this page shows diffs and excerpts. If a quotation is ever disputed, the full copy can be produced. Ask.