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.

Reproducible firmware and chain investigation

alvap-weak-rng-research

https://raw.githubusercontent.com/alva-p/coldcard-weak-rng-research/main/README.md

Organisation
脕lvaro P.
Evidence role
Independent primary analysis
Published
2026-07-31
Source changes
0
Detected differences
0
Unreviewed
0
Copies held
1

Independent re-derivation of fix commits, on-chain movements and vulnerable versus patched firmware symbols. Its README excludes real-seed recovery and labels unfinished work explicitly; deeper repository files include public transaction identifiers and are not mirrored by this archive.

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,273 chars
    Extracted text as captured
    # coldcard-weak-rng-research
    Independent, defensive investigation into the COLDCARD firmware entropy failure
    disclosed 2026-07-30/31 and the ~594.5 BTC coordinated sweep observed the same day.
    Everything here is verifiable: real commits, real blockchain data, real compiled
    binaries.
    **[馃搫 Read the report (English)](docs/en/report.md)** 路 **[馃搫 Le茅 el informe (Espa帽ol)](docs/es/report.md)**
    ## What this is
    On July 30, 2026, roughly 594.5 BTC was drained from 500 Bitcoin addresses in about
    fifteen minutes. The victims used COLDCARD hardware wallets, and the root cause was a
    firmware bug that made supposedly random wallet secrets predictable. Coinkite (the
    manufacturer) and Block published official advisories. This repository does not just
    summarize those advisories, it independently re-derives the parts that can be
    re-derived: the fix commits, the on-chain flow of the stolen funds, and the bug itself,
    compiled and proven with real tooling.
    ## Three things you can check yourself
    1. **The code.** [`evidence/commits/findings.md`](evidence/commits/findings.md) verifies
       the fix commits directly against the Coldcard firmware repository, including one the
       official advisory doesn't mention.
    2. **The money.** [`evidence/onchain/`](evidence/onchain) traces the theft on-chain from
       scratch, starting only from the public consolidation address, not from any published
       transaction list. Result: 500 transactions, 1,324 UTXOs, ~594.5 BTC, matching public
       reporting. Every transaction ID is in
       [`drain-transactions.csv`](evidence/onchain/drain-transactions.csv).
    3. **The build.** [`evidence/builds/`](evidence/builds) compiles the vulnerable and
       patched firmware from source and uses `arm-none-eabi-nm` on the real binaries to show
       which function the "random number" call actually resolved to, before and after the
       fix. See [`comparison.md`](evidence/builds/comparison.md).
    ## What's not here
    No PoC that recovers a real seed, scans for vulnerable addresses, or moves funds that
    aren't the researcher's own, and none ever will be. See [`DISCLAIMER.md`](DISCLAIMER.md).
    A synthetic RNG simulator and a Bitcoin regtest demonstration are planned but not built
    yet; open items are tracked honestly in [`RESEARCH_GAPS.md`](RESEARCH_GAPS.md), including
    one significant one: the Mk3 fix version Coinkite announced (4.2.0) has no matching git
    tag as of this writing.
    ## Sources
    Every claim traces to a primary source (code, commit, or on-chain data) or a rated
    secondary source. Full list with reliability ratings in
    [`references/sources.yml`](references/sources.yml).
    ## How to cite this
    ```

    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.