Bitcoin Recovery tutorial. Recover your BitcoinSV from a Centbee self-custodial wallet using the mnemonic seed phrase backup, and open source tools
The beauty of self-custodial Bitcoin wallets like Centbee is that you don’t have to rely on customer support, or a centralized company to access your funds in the event of a wallet corruption or failure. Using your 12 word seed phrase recovery passphrase, and some open source tools, you can recover coins into a new wallet in the unlikely event of a failure. Knowing you have control over your own keys and can recover them if needed will give you much more peace of mind over the security of your Bitcoin. This tutorial will teach you the skills and tools needed in order to recover coins from Centbee wallet, but similar principles can be used for other non-custodial Bitcoin wallets.
In order to recover your Bitcoin from a Cenbtee seed phrase you will need a few things. First you will need your 12 word mnemonic seed phrase which backs up your Centbee wallet. You were prompted to write this down on paper when you first created your wallet, and it is a list of twelve ordered words. Be very careful when handling your seed phrase, because anyone with the skills could use it to steal your coins if they got hold of it. In addition to your seed phrase you will need the PIN used when creating your Centbee wallet. The other piece of information needed to recover the coins is the derivation path used by the Centbee software. The derivation path for Centbee begins at m/44'/0/0/0 for receive addresses and begins with m/44'/0/1/0 for change addresses.
The only other information that may be helpful is if you know which addresses the coins in your wallet reside in, which can make it easier to locate the private keys in the next steps. You may have this information in your own records, and you can use a block explorer like whatsonchain to help trace your own transactions and locate which addresses your coins reside in. To recover the coins, I recommend to use the open source tool by iancoleman found here. Using this tool along with the information specified above and below, will allow you to extract the private keys from your Centbee wallet for addresses which your coins reside in. Every address is associated with a coordinate on the derivation path, and an example can be seen in the screenshot below:
In order to generate the above list for your specific wallet and seed phrase, you need to enter the proper information into the fields of the iancoleman tool. The first thing to do is to type in your 12 word mnemonic seed phrase in the box where is says “BIP39 Mnemonic”. Then you want to also type in the passphrase/PIN you used to open your Centbee wallet, the example below is “1234”:
Next, below where it says “Derivation Path”, you want to first click the “BIP32” tab. Then put in the derivation path for Centbee. Since the first address in Cenbtee is m/44'/0/0/0, you want to type m/44'/0/0 into the box next to “BIP32 Derivation Path”. A common mistake I sometimes make is putting the extra 0 in the box. Make sure to leave it off, so it will generate the addresses below properly on the path. Any extra / or ‘ will change the entire derivation path, so make sure you type everything properly. An example can be seen below:
Similarly, get the change addresses by changing the Centbee derivation path to the change address derivation path m/44'/0/1, which will then generate change addresses starting with m/44'/0/1/0 in the list below:
As you can see every address and change address in your wallet is associated with a unique derivation path coordinate, a unique public key, and a unique private key. When coins reside in one of your addresses, the private key associated with that address is needed to spend/recover the coins.
It may help you in this process if you first understand how addresses are created in Centbee wallet. When you first open Centbee it will display the first receive address your wallet has ever used. This will be address m/44'/0/0/0 on the derivation path. After you receive a transaction, your old addresses can still receive coins, but Centbee will display a fresh new receive address for your next transaction, as is recommended in Satoshi Nakamoto’s Bitcoin whitepaper, Section 10 on Privacy. The second receive address will be m/44'/0/0/1 on the derivation path, the third will be m/44'/0/0/2, the fourth will be m/44'/0/0/3, and the nth receive address will be m/44'/0/0/(n-1). Now this is when it comes to receive addresses, while “change” addresses are handled a little bit differently inside the Centbee software.
To understand what a change address is, you should refer back to Satoshi Nakamoto’s Bitcoin whitepaper, section 9 Combining and Splitting Value. Although the handling of coin inputs/outputs can be more complicated in other wallet software(for example ElectrumSV), Centbee handles transactions in a much more predictable and restricted way, which makes the coins easier to find on the derivation path. Unless you are spending an exact amount of a coin input to an output, there will always be change associated with a transaction. The change from spending part of an input, will go to the Centbee change address beginning with m/44'/0/1/0 on the derivation path. The next time you send a transaction, the second change address on the path will be used at m/44'/0/1/1, the third change address on the path will be used at m/44'/0/1/2, and the nth change address used in your wallet will be at m/44'/0/1/(n-1).
This is how you can track down where your coins reside at. If you only used your wallet a few times, your coins will be near the top of the derivation path list, but if you made many transactions in your wallet, the coins will reside in addresses much further down the list. You can check your addresses sequentially down the derivation list by using a block explorer like whatsonchain and if you have used your wallet in the past, you will notice that the addresses all have been used with prior transactions.
Once you have generated the list of addresses using the iancoleman tool, and you know where your coins are, you can just locate the necessary addresses and their associated private keys to recover the coins. If you click and hover your mouse over the private key it will display a QR code. You can scan this using simplycash wallet or Rock Wallet, or alternatively you can type in the private key manually in order to “sweep” the coins into the new wallet. Sweeping is a process where the private key is used to scan for the coins on the blockchain and once found the coins are sent in a new transaction to the recipient address in the new wallet. If your Centbee wallet was having problems before you can now send your coins back to it, or create a fresh new seed phrase for Centbee.
It is also possible to use the iancoleman tool to generate unique secure seed phrases on your own without needing a wallet software. To generate a 12 word seed phrase, choose 12 from the dropdown. These seeds can be compatible with restoring some wallets and can be used for a cold storage method as well. You can also download the html file for the iancoleman tool from github so you will always have it available. This will allow you to also launch the tool without needing access to the internet. This could be one technique to create a cold storage Bitcoin wallet, and here is a brief tutorial on how to create a cold storage environment using a USB flash drive and Ubuntu open source operating system.
This recovery tutorial can also be used or altered for other wallet software or other “crypto” coins. Just note that the derivation path can vary between different wallet software. For example Rock Wallet another Bitcoin wallet software has a different derivation path seen here. It is not clear what the derivation path for change addresses is on Rock Wallet, so it would require some experimentation to find that out. Simplycash derivation path can be found here, and is m/44'/145'/0' and change addresses follow BIP44. Other wallets like HandCash are not relevant to this procedure because they are custodial wallets with the keys jointly held by the company and user. Another tool bitaddress can also be used to generate private keys and addresses, and can help you to print paper wallets for saving, and for spending by using the same “sweep” procedure learned above.
Hopefully following this tutorial will give people a better understanding of some of the wallets and tools used to manage and access private keys. It is good for knowledge to spread and for people to have more confidence in holding and accessing their Bitcoin. It is recommended for people to test these things out with very small amounts of Bitcoin until they feel more confident that everything is working properly. I hope this tutorial will help encourage people to look into more secure and convenient storage and spending options when it comes to managing their Bitcoin.