How To Use Ian Coleman's BIP39 Tool For Finding Bitcoin Addresses And Private Keys From A Seed Phrase

Introduction

In this guide, we are going to use a specialized tool for examining a seed phrase that likely came from a hardware wallet or wallet software. From the seed phrase, this tool can reveal individual bitcoin addresses and private keys in their raw form. The raw form can then be used as input for other operations such as using tools to claim forked coins.

Trezor

Do be warned that entering your seed phrase into a tool is a compromise of the security of the original device. If you have the device to protect your security, this is a move in the other direction. It is highly advisable that if you have the means to move your BTC using the 'normal' way with your device or wallet, do that first. Once that is done, this tool can be helpful for a number of things like helping you reconstructing a complex transaction record and getting value from lower-value forked coins that still may be associated with the keys.

Securely Using This Tool With Your Private Seed Phrase

This article is to instruct you on the tool, however when it comes to actually using your real seed phrase that holds your money. We suggest making sure you have an adequately secure environment for doing so. We have a guide for setting up an temporary Ubuntu live boot session that is far less likely to have malware or accidentally leak your keys. We also have a guide for downloading and running this tool offlinein that Ubuntu environment.

What Is Your Seed Phrase?

If you got a 12, 13, 24, or 25 word recovery seed phrase when setting up your wallet, it is most likely a standard BIP39 mnemonic which is a standard, well-defined way of keeping a private key. The reason it makes sense for the wallet developers to use this scheme is that it is an open, well-scrutinized scheme that is reviewed for security. But also, so it allows you to access your money in the absence of their wallet due to unforeseen circumstances, which is a selling feature. The latter is exactly what Ian Coleman's BIP39 app is designed to do.

The popular wallets that use BIP39 for the mnemonic scheme include Trezor, Ledger, Electrum, Mycelium, Bither, Coinomy, and MyEtherWallet.

Your seed phrase directly maps to a 128-bit or 256-bit randomly-generated number that should be known to only you. The private keys that control balances for BTC or other coins are derived from this value. The specifics of this are covered by BIP32 and BIP44, however this is far easier to understand experientially playing with the BIP39 tool.

Playing With The Tool Via The Web

To get a feel for the tool, you can use directly through the web by going to the site. However, we don't recommend typing your seed phrase into a web site on your everyday-use PC. It is alright to use seed phrases that don't have money associated, though.

Test passphrase

For example, this one:

void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold with the passphrase TREZOR.

Test passphrase

For 12-word seed phrases all twelve go in the BIP39 Mnemonic field and the BIP39 Passphrase field is left blank. For 24-word seed phrases, the BIP39 Passphrase field is also left blank. For 13-word and 25-word seed phrases, the last word of the sequence goes in the BIP39 Passphrase as is the case with the word TREZOR in the example.

Looking At Derived Addresses

If you scroll down past the middle section (we will get back to that shortly), in the Derived Addresses section, we will see a table that includes public Bitcoin addresses, public keys and private keys:

Test passphrase

If your wallet adheres to BIP44, these should be the list of addresses your wallet gives for a receiving address for incoming payments. If you have lost the records for which addresses you have transacted with, this is the set you can check against a block explorer (though, to protect your privacy you should do it safely with Tor Browser in a secure environment). The Private Key field is the value you need to spend the coin balance on the associated public address using wallet tools other than the wallet the seed phrase is from. For example, Electrum or the bitcoin_fork_claimer tool use these keys to send transactions.

Spend vs Change addresses

If we scroll back up to the middle Derivation Path section, there are a lot of settings to play with that modify how the keys are derived. We aren't going to attempt to explain it all here. If you have trouble finding the addresses and keys you expect, researching some specifics of the brand of your wallet may shed some light on on which settings are appropriate.

Derivation Path

However, there is one important concept that likely applies to you that doesn't have a clear name. The Internal/External field can either be set to 1 or 0.

If you set it to 1, it generates a different set of addresses below. These are the addresses your BIP44-conforming wallet is supposed to use to send change from transaction to. For example, if you held 0.1 BTC on address A from an address generated to receive from the wallet (Internal/External = 0) and then sent 0.03 BTC to your friend at address B, the wallet would take an address from the Change Address list C and then send the remainder 0.07 BTC (minus the fee) there. You control A and you control C, but A came from the Internal/External = 0 list, but C came from the Internal/External = 1 list.