Coldcard: This is indeed a lesson about complexity, dependencies and why you should roll real dice for serious funds. My understanding is that Coldcard used MicroPython and libngu had an ifndef that only checked if the macro was defined, not if it was non-zero, so it didn't go to the chip as it should have. Classic macro footgun. This is a lesson about complexity and dependencies. Security-critical applications like this need to be as simple, direct and explicit as possible. MicroPython is convenient, but you bury the truth in deep call stacks of third-party code. TMK, Trezor and Foundation also use MicroPython, but I don't believe they use libngu. I assume they are checking for similar issues right now, but again, the deep, complicated, third-party call stack makes that hard to do well. I spent the last few days stripping down some call stacks that had gained layers of indirection and conditionals in our codebase for exactly this reason. We have almost zero dependencies and take pains to write simple, explicit code that uses the machine directly. In Zig, which I would and do argue is the best language for this kind of work. (And no, Rust doesn't fix this. Rust is a pile of frameworks and has a JS-like dependency sprawl problem. "Use Rust" is not going to save you.) That said I'm not throwing the engineers under the bus on this. We tend to go for blame on these things, and I definitely get being angry, but focusing on "bad person" tends to distract us from "broken system". This is one of the core tenets of Disaster Recovery as a discipline, for good reason. The fact is, something like this could happen with almost any wallet. Here's the most important lesson: the best way to generate critical entropy is a pack of dice and a shoebox. This has been the received wisdom of serious cryptographers since long before Bitcoin existed. This is how we've been generating our PGP passphrases for decades. It's easy: a five-year-old can do it. You put dice in a shoebox, shake it, read the numbers and look at a list of words. Dice are available at your local toy store. Roll real dice. Not your dice, not your entropy. Trust yourself.