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.

COLDCARD mainline RNG hotfix commit ca724637

coldcard-firmware-mainline-hotfix

https://github.com/Coldcard/firmware/commit/ca72463709f4e3f8964952039d5caf955f566a87.patch

Organisation
Coinkite
Evidence role
Repository commit
Published
not established
Source changes
0
Detected differences
0
Unreviewed
0
Copies held
1

Immutable patch for the direct mainline source commit contained in the normal Mk4/Mk5 v5.6.0 and Q v1.5.0Q release histories.

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 7,258 chars
    Extracted text as captured
    From ca72463709f4e3f8964952039d5caf955f566a87 Mon Sep 17 00:00:00 2001
    From: "Peter D. Gray" <[email protected]>
    Date: Thu, 30 Jul 2026 22:40:23 -0400
    Subject: [PATCH] fixes rng
    ---
     stm32/COLDCARD/mpconfigboard.mk     |  7 +++++++
     stm32/COLDCARD/rng.c                |  6 +++++-
     stm32/COLDCARD/rng.h                |  3 ++-
     stm32/COLDCARD_MK4/mpconfigboard.h  |  1 +
     stm32/COLDCARD_MK4/mpconfigboard.mk |  8 +++++++-
     stm32/COLDCARD_MK4/rng.c            |  6 +++++-
     stm32/COLDCARD_MK4/rng.h            |  3 ++-
     stm32/COLDCARD_Q1/mpconfigboard.mk  |  6 ++++++
     stm32/MK-Makefile                   |  2 +-
     stm32/Q1-Makefile                   |  2 +-
     stm32/shared.mk                     | 23 +++++++++++++++++++++++
     11 files changed, 60 insertions(+), 7 deletions(-)
    diff --git a/stm32/COLDCARD/mpconfigboard.mk b/stm32/COLDCARD/mpconfigboard.mk
    index fa3560f77..6d7e3cf5f 100644
    --- a/stm32/COLDCARD/mpconfigboard.mk
    +++ b/stm32/COLDCARD/mpconfigboard.mk
    @@ -69,6 +69,13 @@ COPT += -g
     # bugfix IIRC
     build-COLDCARD/boards/COLDCARD/modckcc.o: COPT = -O0 -DNDEBUG
    +# Do not compile MicroPython's fallback PRNG.  The board-specific rng.c
    +# provides rng_get(), and this empty object satisfies the upstream object list.
    +$(BUILD)/rng.o: CFLAGS += -Dpyb_rng_yasmarang=error-do-not-want-this
    +$(BUILD)/rng.o:
    +	$(ECHO) "SKIP stm32/rng.c"
    +	$(Q)$(CC) $(CFLAGS) -x c -c /dev/null -o $@
    +
     files:
     	# SRC_C: $(SRC_C)
     	@echo
    diff --git a/stm32/COLDCARD/rng.c b/stm32/COLDCARD/rng.c
    index 374cd32c6..00e3d203a 100644
    --- a/stm32/COLDCARD/rng.c
    +++ b/stm32/COLDCARD/rng.c
    @@ -79,6 +79,11 @@ static uint32_t rng_get_or_fault(void)
         return last_value;

    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.