One of my favorite projects of all time
A stained glass door made of hundreds of individual Pantone swatches
Created by Italian architect Armin Blasbichler (2012)
É assim que se esmaga a hipocrisia nojenta da Catarina Furtado.
Fala muito, faz discursos sobre solidariedade, recebe cerca de 20 mil euros por mês pagos com o dinheiro dos contribuintes… e, na prática, não faz nada.
Se a solidariedade é assim tão importante, recebe-os em tua casa, Catarina. É fácil ser solidária quando não és tu a suportar as consequências. A tua solidariedade não te custa um cêntimo, aos outros pode custar tudo.
Self custody is NOT dead.
SHUT UP!
If you believe you’ve been lead astray by being recommended using a cold wallet, you are mistaken.
When entropy is done correctly, cold wallets remain virtually impossible to hack.
Coldcard generated keys that could be cracked in minutes.
Wallets that generate keys using 156 bit to 256 bits of entropy will technically take thousands of years to crack.
And if you believe moving your crypto to an exchange is the solution, it’s not.
How do you think exchanges manage funds? Hmmm. Perhaps using a wallet?
One of the biggest exchanges in the world, Bybit, literally use Ledger wallets as part of their security protocol for users funds.
So, you can either keep your crypto in your own wallet where you maintain control and ownership.
Or you can send it to a company’s wallet where you lose control and ownership, and don’t gain anything in return.
To be clear. I am still pro self custody.
I do NOT recommend storing crypto with centralized platforms.
If you are a Coldcard user and temporarily need to move funds to an exchange, sure. That makes sense.
But the amount of influencers recommending moving your crypto to an exchange, which again, still utilizes wallets, is outright irresponsible.
Yes, what happened to Coldcard was horrible, but it doesn’t define self custody.
And don’t forget more than 1.5 Million of users Bitcoin was lost/frozen across just 7 different exchanges.
Over 1,300+ from Coldcard…
The data speaks for itself.
I’m going live today to talk about all this. I’ll pin the link to the livestream in the comments if you want to join or watch later.
- Scrilla
people who stored their btc on coldcard got drained because of entropy.
the seed generation was reproducible, anyone could recompute their keys.
so i went through every other hardware wallet to see how they make your seed, and whether the same thing can happen again.
@Trezor: mixes the device's randomness with randomness from your computer, and the device has to prove it used both. even if its chip is fully broken, you're still fine. the best design here by far.
@BitBoxSwiss: 5 separate sources of randomness combined. one bad source can't sink you. open source, reproducible builds, dice supported.
@FoundationHQ: built their own randomness circuit out of plain resistors and capacitors, open source, on top of two other sources. no black-box chip to trust. supports dice.
@KeystoneWallet: 2 secure chips from 2 different manufacturers, combined. also lets you roll 99 dice and publishes how to check the result yourself.
@Blockstream: jade pulls from 7 things: radio noise, cpu counters, battery, temperature, camera, your input, the app. very hard to break all of them.
@SeedSigner: your dice are the only source. no chip to trust at all. and they ship a guide teaching you to verify their own math. weakest hardware, strongest proof.
@OneKey: secure element plus mcu combined on device, open source firmware. solid, but you can't add your own randomness.
@Ledger: one certified chip (AIS-31, EAL5+). good randomness. but it's a single source, closed source, and you cannot verify any of it. you're trusting them completely.
@Tangem: key is born inside the chip and never comes out. audited by three firms. same trade: strong, and impossible for you to check by design.
@ngrave_official: mixes chip randomness with your fingerprint and room light. clever. but the "EAL7" badge covers one software component, not the whole device.
@ELLIPAL: single certified chip, no software fallback, fails closed instead of guessing. closed source, so take it on faith.
@SafePal: 2 chips mixed. they've never published the details.
@COLDCARDwallet: patched now, and dice on coldcard were always verifiable. but every seed made between 2021 and 2026 is permanently burned.
one source = ledger, tangem, ellipal. that one source fails, everything fails. their answer is to make it excellent and certified. that's exactly the bet coldcard lost.
many sources = trezor, bitbox, passport, jade, keystone. one broken source never reaches your key.
and every one of these claims 128 or 256 bits.
coldcard did too. certification doesn't help either, coldcard's chip was fine, the code just stopped calling it.
the only thing that saves you is being able to check.
roll your own dice. verify the words yourself.
Trezor CCO literally wrote an article called
"don't trust us verify us"
read that again
while everyone was telling you to trust them
one company kept saying hold your own keys
@Trezor Safe 7 just landed in my hands
Best Hardware Wallet 2026 and Red Dot Award winner
Lazarus Group fears this one weird trick
Multiple entropy sources are only worth something if the code actually uses them. You can have four different sources of randomness in the device, but if it is using a test generator instead (code bug), none of those sources actually matter. Rolling dices doesn’t imply the device will actually use it. The entropy is not the problem here, the problem is the device not using it.
We already explained that Trezor does not use the affected code. Here are some examples of what we are already doing to make sure we do not accidentally bundle in testing RNG (random number generator):
👉 We do not use MicroPython's random module at all. It is disabled outright in our firmware config [1].
👉 rng_fill_buffer() reads the STM32 TRNG peripheral registers directly. No macro dispatch, no software path to fall through to [2].
👉 The software PRNG lives in a file literally named "crypto/rand_insecure.c", and compiling it emits "NOT SUITABLE FOR PRODUCTION USE!" warning [3].
👉 random.reseed() exists only under ifdef TREZOR_EMULATOR, and the C function behind it only under USE_INSECURE_PRNG. Two independent guards, and no reseed API in production firmware at all [4].
👉 rng_fill_buffer_strong() fills from the MCU TRNG, then XORs every byte with Optiga output (Safe 3, Safe 5) and, on Safe 7, Tropic output on top. If a secure element fails it returns false and the caller raises RuntimeError. Fail-closed, not fail-quiet on models with a secure element [5].
👉 Our Entropy check makes sure that the host’s (computer/phone) RNG is mixed in as an extra failsafe [6].
These are just some examples of how we protect from this kind of failure. That being said we never stop building and we always humbly learn from situations like these. So we are carefully studying what lessons can be learned from this incident and we are already drafting more safeguards on top [7].
You don’t have to trust me on this, our code is open-source and you can see for yourself or use your favorite AI model. See the links below. And don’t forget to ask your wallet if they can do the same…
[1] https://t.co/Ku1vLkvPbx
[2] https://t.co/0RI9e5AR1C
[3] https://t.co/biX73RTMhl
[4] https://t.co/xXitRs7EKo
[5] https://t.co/kh2zEaFFwp
[6] https://t.co/2cFN2FkXLk
[7] https://t.co/0EkIg16SGs
I know some Bitcoiners may find the idea of rolling dice to secure a wallet ridiculous. But most people in the world still find Bitcoin itself ridiculous.
So do not dismiss the method simply because it looks unusual. Study the subject.
Properly collected physical randomness can provide entropy that is independent of a device’s internal pseudo-random number generator and directly observable by the user. Dice are inexpensive, transparent, and easy to audit: you can see every roll and verify exactly where the randomness came from.
Used correctly, this is a simple and powerful way to strengthen wallet security and reduce reliance on hidden software processes.
A few minutes of careful preparation can help protect savings accumulated over many years.
1. Print BIP39 word list index.
2. Cut into individual pieces of paper.
3. Drop in a box & shake.
4. Randomly pick 1 piece from the box.
5. Pick 24 times; for each pick, put the prev piece back in the box before shaking.
Generate your Bitcoin seed phrase software free.
Yes, you will have to roll dice.
For most people, this is something they will do only once, when creating a new seed. Those who later decide to replace their seed and further strengthen their security may repeat the process, but it is not a daily burden.
I play Warhammer, and purely for entertainment I routinely roll dice dozens of times, certainly more than 99 rolls. If we are willing to do that for a game, we can surely do it once to help protect our financial future.
The effort is small. The potential benefit is enormous.
Below is the methodology behind the tool currently being developed by the Scientific Bitcoin Institute, including how physical dice rolls are converted into auditable, high-entropy seed material.
Only the paranoid survive.
1. Do 100 dice rolls with device A and save each roll. Add a passphrase with more than 28 characters.
2. Write down the 24 words and the passphrase.
3. Factory reset device A.
4. Do the same 100 dice rolls with device B. Add the same passphrase.
5. Verify that same 24 words are generated with device B too.
6. Factory reset device B.
7. Do the same 100 dice rolls with device A again. Add the same passphrase again.
8. Verify that same 24 words are generated with device A again.
9. Save your 24 words and passphrase on a metal plate in at least two different locations.
They don't want you to know you can do this. How hard is it really and how long does it take?
I've seen a lot of aggressive fear porn raging against the idea that people can or will roll dice to generate a seed - I was curious how long it'd take to sit there and do the process from beginning to end...
I turned up some music loud and went into an adjoining room with no electronics. The music both masks the dice roll and keyboard entry sounds, and is fun to listen to.
Results: It takes about 4 minutes to roll a 12-word seed phrase and enter it into a Seedsigner. Skill level - kindergarten
I was able to go through everything below in 75 minutes
🎲 roll three unique 12-word seed phrases
✅ load them into seedsigner,
✅ Verify the fingerprints
✅ Verify the words
✅ Write down the words
✅ Export xpubs into Sparrow
✅ Create a watch-only multisig wallet over airgap between Sparrow and Seedsigner
✅ Receive testnet coins from the @mempool faucet
✅ Create a batch transaction sending back the coins to the faucet as well as another 2 wallets in Sparrow
✅ Send he tx over airgap back to the Seedsigner for the first signature,
✅ Sending the partially signed PSBT back to Sparrow to display the next PSBT QR,
✅ Sending the fully signed PSBT back to Sparrow and finally
✅ Broadcasting
And I did this all before Widespread Panic could even finish the first set of the concert! I basically started rolling dice at Stop-Go, and was done before the end of One By One.
Note: transactions all sent on testnet4. (Both Sparrow and Seedsigner were also set to Testnet/4.)
The Coldcard bug explained in simple terms:
Normally, a hardware wallet generates your 12 word seed phrase using true randomness.
Think of it like a lottery with roughly 340 undecillion possible tickets (that’s a 340 followed by 36 zeros). Every ticket has an equal chance of being picked, making the odds of guessing your seed essentially zero.
The bug didn’t shorten the 2,048-word BIP-39 word list. It changed how the wallet picked the words.
Instead of choosing from the entire lottery, the wallet kept picking from the same tiny corner because the “random” numbers were partially predictable from things like the device’s ID and timing.
Imagine that instead of 340 undecillion possible combinations, your wallet accidentally chose from only a few billion. That’s still a huge number, but astronomically smaller than what Bitcoin’s security is designed to provide.
Your seed phrase still looked completely normal. The words came from the same 2,048-word list. Nothing looked suspicious.
But for an attacker, the search space became millions of trillions of trillions of times smaller.