Seed Phrases are Not Enough

Seed Phrases are Not Enough

A seed phrase (by itself) is not enough to recover your wallet and coins.

I know. What the heck. But think about it; a seed phrase is just a bunch of random words. You need to be able to read and interpret those words to make it something meaningful.

Just like a foreign language. It’d be gibberish unless you knew the characters, the meaning of each word, the grammar structure, etc.

It's similar for a seed phrase. The words themselves, the order that they are in have their format and structure that needs to be understood to make it meaningful.

That's where wallet software comes in. The wallet you use needs to understand how to utilize those words in order to recover and access your coins.

The ability for a wallet to do this is described in Bitcoin Improvement Proposals (BIP). BIPs are documentation for features, ideas, information, changes, improvements, etc. for how everything Bitcoin works (including seed phrases, wallets, etc). Each of these BIPs is designated by a number. 

So to understand why a seed phrase is not enough, we must first understand what a wallet actually is. That is described in BIP32

BIP32: Hierarchical Deterministic Wallets

Your wallet is really just a bunch of numbers (even though it may not look like it). Some of which have the ability to "store" coins.

Your wallet starts from a single, really long random number or sequence of letters/numbers called a seed (No, not a seed phrase, a seed).

A seed looks something like this:

15e18ba170b6c5822642f85c5e7e2e1b5b6b68f32a617b9f3731321b4ddc4213f90adb8c7fc13180a322040e7d11b5cd10686bdfde0a91a3cf8d726e46680dbc

Your seed can be transformed (with "math") into another number.

That number can be transformed into more numbers (and so on and so forth)

At end of those transformations, you're left with whole bunch of numbers that can be associated with coins.

That's right, these numbers are those addresses where you’ve been sending your coins.

Thus, all your coins can be traced back to your seed and can be recovered if your wallet understands "how to transform it". 

Fortunately, virtually all wallet software do know because they were made specifically to do just that.

But, you can imagine how difficult it would be to copy down that long combination of letters/numbers of a seed.  It's not very readable and prone to error. You'd be checking if you actually wrote it down correctly over a hundred times.

Luckily, a majority people shared the same sentiment and wondered if there was a better, more human friendly to communicate a seed.

That is where “seed phrases” come in.

BIP39: Mnemonic code for generating deterministic keys

The true name for a "seed phrase" is actually mnemonic phrase.

A mnemonic phrase is a group of easy to remember words and can be used to derive (transform with "math") a seed.

Essentially something like this:

relief horror hammer sudden old hair wet arrive pulp infant expand poem

Can be turned into this (if your wallet knows how): 

15e18ba170b6c5822642f85c5e7e2e1b5b6b68f32a617b9f3731321b4ddc4213f90adb8c7fc13180a322040e7d11b5cd10686bdfde0a91a3cf8d726e46680dbc

That's a ton easier to read isn't it? Not only that but it's easier to write down and it’s easier to spot an error. Checking it wouldn't take very long and you'd know quickly if a word was spelled incorrectly.

Fortunately, most wallet's have adopted this method of representing a seed. They know the specific transformation to turn that 12-24 word phrase into that long sequence of letters and numbers (your seed, the starting point for your wallet). 

This is known as the BIP39 standard and a good wallet should be mention that they follow BIP39 on their website or documentation.

Think of a Wallet as a "Tree"

Let's try to simplify what we've learned by comparing it to something in real life.

Think of your seed phrase as a secret recipe to make a seed (like one that grows trees).

That secret recipe is in a specific language (that being "BIP39"). You must be able to read that language to create said seed.

Now coming from the seed, there's a trunk. From that trunk, there are branches (branch 1, branch 2, branch 3, etc).

Those branches also have branches (branch 1-1, branch 1-2, etc.) and those branch's branches also have branches (and so on).

And at the very end of all those branches, there are leavesYour coins can be "stored" on those leaves (your addresses).

That tree is your entire wallet that grew from a single seed. But you don't need the seed itself, you know the recipe and can create it over and over again.

Now throwing wrench into the mix, this "tree" and its "branches" can have a nearly infinite combination of paths.

Your wallet needs to understand which path to take to get to your coins.

To do this, it needs to know some sort of "map" on to traverse through the branches and find those leaves (and thus, your coins). This "map" is known as a derivation path.

Derivation Paths

Derivation paths tell your wallet how to find your coins.

In our tree example, derivation path's guide your wallet through its tree by specifying which "branches to grow" to get to your coins.

These "maps" or derivations paths are described in Bitcoin Improvement Proposals (BIP). The most common being described in BIP 44, BIP 49, and BIP 84.

Wallets must know the unique, special path to take to get to your coins.

Whether a wallet supports a certain derivation path should be well documented or referenced on their website.

Coin Support

You might have noticed that not all wallets support all coins.

Going back to our tree example, certain "branches" can grow only specific "leaves". These "leaves" can only store a certain coin.

Your wallet must not only know how to find your coins (derivation paths) but also support the coin you're trying to find (the type of "branch" to grow specific "leaves" for a certain coin). 

Whether a wallet supports a certain coin (again) should be well documented or referenced on their website.

Conclusion

You should be able to recover your coins on the original wallet software (Trezor, Ledger) you used to generate your seed.

But, the best way to guarantee you'll be able to recover your wallet in the future is to note a few details about the first wallet you used:

  1. The name of the wallet you used to generate your seed phrase (e.g. Trezor, Ledger) to help you find documentation in the future.
  2. The seed format it uses (e.g. BIP39)
  3. The derivation path your wallet supports (e.g. BIP44, BIP49, BIP 84)
  4. The name of the coin you have (e.g. bitcoin, ethereum)

This information isn't necessarily secret (as its public information) and should be stored in multiple, easily accessible places.

It's unfortunate your seed phrase alone isn't enough to recover your coins but that's the reality of budding technology. It's not exactly the most "user friendly". Hopefully one day, wallets will become more standardized and you won't have to worry if it supports this or that. It will just work.

I hope you learned more about "future proofing" yourself in being able to access your coins in the long run. If you're interested in learning more on this topic check out our other articles:

Back to blog