A July 30 heist that emptied 1,196 Bitcoin addresses in 41 minutes has been traced to a seed-generation defect in Coldcard, the hardware wallet built by Canadian firm Coinkite. Blockchain sleuths at Galaxy Research connected the drain, which moved 1,082.65 BTC valued near $70.2M, to a faulty random number path in the device’s firmware.
The flaw began with a March 2021 firmware integration error: instead of the STM32 hardware random number generator, seed generation went through MicroPython’s deterministic Yasmarang software PRNG. Block’s engineering team traced the issue to a production config that defined MICROPY_HW_ENABLE_RNG as zero, so the library checked whether the macro existed rather than whether it was enabled.
The entropy gap is stark on Coinkite’s own figures: a 12-word BIP-39 seed offers 128 bits, while the Mk3 delivers only about 40 and the Mk4, Mk5, and Q roughly 72. Knowing or limiting the device UID, timer state, and past RNG-call history lets an attacker rebuild candidate output streams offline and test derived addresses against public blockchain data.
Coinkite lists the exposed firmware as Mk2 and Mk3 releases from 4.0.0 through 4.1.9, Mk4 and Mk5 builds older than 5.6.0, and Q units before 1.5.0Q. Every model and release track received emergency firmware on July 31, but existing seeds stay weak even after installation. Coinkite advises rolling a fresh seed on patched firmware and moving the coins, since carrying the old seed into an updated wallet preserves the flaw.
Seeds created from at least 50 fair, independent, private dice rolls remain safe from this particular bug, per Coinkite. Multisig helps only when the quorum does not consist entirely of affected devices. No attacker has been named, and Galaxy found no prior transactions matching the sweep’s unusual 30 sat/vB, no-change signature.
