The root cause traces to a firmware integration error in Coldcard's libngu library dating back to March 2021. Coinkite configured the board constant MICROPY_HW_ENABLE_RNG to zero to disable MicroPython's built-in RNG path, intending to use its own hardware true random number generator wrapper. However, libngu's guard checked only whether the macro was defined, not whether it was enabled, causing the firmware to fall back to MicroPython's Yasmarang software PRNG with roughly 40 bits of effective entropy instead of the expected 128 bits for a BIP-39 seed.
Block's engineering team found that Mk2 and Mk3 devices running firmware versions 4.0.1 through 5.0.3 received no cryptographic entropy during seed generation, making wallet creation deterministic for a known MCU UID, timer state, and call history. Later Mk4, Mk5, and Q models added secure-element entropy at boot but hashed it and retained only four bytes, with reseeding replacing just one 32-bit Yasmarang state word — yielding at most 2^32 securely distinguished output streams.
Coinkite has released fixed firmware that protects new seed generation but cannot repair vulnerable seeds created on earlier releases. The company's advisory covers Mk3 firmware 4.0.1 through 5.0.3, Mk4 and Mk5 seeds before firmware 5.6.0, and Q seeds before version 1.5.0Q. Community voices including Dogecoin contributor Mishaboar have urged all Coldcard users to migrate funds immediately to wallets controlled by newly generated seed phrases, warning against reusing existing seeds or entering recovery words into internet-connected computers.

