I will make a much more comprehensive guide at some point, but for now, let this Twitter thread be a placeholder. It may be all you need for it to “click”.

BIP39 seed phrases are made with words from the BIP-39 word list. There are 2048 of them, and each is mapped to a number (between 0 and 2047 inclusive). So if you toss a coin and get 11 heads in a row, you’d record that down as 00000000000.

This is zero, and maps to the first word on the list, which is “abandon”. If you threw 11 tails in a row, and recorded “11111111111”, that’s the biggest possible number (the number is in binary). In decimal, it converts to 2047. The last word on the list, which is “zoo”.

If you threw 00011101001, that’s the number 233 in decimal (use an online binary-to-decimal calculator to check if you want, but do it manually for your real seed). That maps to the 232nd word, “brother” (Check it. It’s offset by one because 0 maps to the first word, not 1).

When you put 12 words together, you’ll have 11 bits-per-word x 12 words = 132 binary digits. That’s can hold a massive number/value. The last 4 digits in the 132 are non-random (the checksum), so that leaves 128 bits of random data that contribute to your 132-bit private seed phrase.

The chance of someone guessing your 12-word seed phrase is the same as them duplicating your 128 coin tosses (in a row) For 24 words, it’s 256 bits of random data (plus 8 digits checksum = 264 bits in the private binary seed).

To practice, make your own throw-away seed/wallet with the following guide – don’t send bitcoin to it (This is because you’ll need to put data in a computer, and that’s not safe for a seed you’ll use, unless you generate it in an air-gapped computer).