Simple guide scenario to migrate your old BTC stash to new Taproot address type wallets
So... everybody is excited that Taproot is activated, is working, is mined, but few start using it. Is true, not all wallet apps are still able to send or receive to taproot address.
INTRODUCTION
Before starting to see how you could move your sats into Taproot address, we should mention why is good to get rid of old types of BTC addresses:
- if you still have your BTC into a legacy address (starts with 1) that will be very expensive to use, from now on, moving sats onchain will be harder and harder and expensive. The future is Lightning Network as "payment protocol" and onchain will remain as "hodling protocol".
- if you still have your BTC into a wrapped segwit address (start with 3), is not so expensive to use it onchain, but still carry a heavy weight and some wallet apps still struggling to send or receive to those. Also many of exchanges used those addresses and that could end up in leaking privacy at some point.
- if you have your stash in native segwit (bech 32) type of address also is good to move your sats into Taproot type, to benefit from future development for Lightning and privacy.
- you have many small UTXOs (change) from past txs and is hard to spend them, now is time to consolidate and mix the outputs for a better future use.
- changing also the XPUB is a good way to lose trace of your past txs.
- Privacy: all old types of BTC addresses in the past were in some way "traced". Some used coinjoin or mixing techniques but not all were so pro-efficient to using those. Now you have the opportunity to "clean" your sats and be prepared for the future.
Read more about Taproot here:
- Taproot - An upgrade for the ages
- Taproot is coming - how will benefit
- Taproot Watch - about
- Taproot and Schnorr Workshop Intro
As I explained in this guide, about how you keep safe your BTC stash into three levels of wallets, now let's see an example of how you switch them into a Taproot supporting wallet. Will look into a simple one and where most of the users are keeping their BTC.
USE CASE SCENARIO
Let's say you have various Electrum wallets, with legacy and segwit addresses and UTXOs (change or simply HODL ones). You can also have a HWW (Trezor, Ledger etc) that can be connected to Electrum app, to make a better coin control.
We will use Sparrow wallet desktop app for this "migration". Is a very good wallet app with many features and one of the first in supporting Taproot addresses.
You can connect it to your own BTC / Electrum node for more privacy, but if you do not have a node, no problem, you can use one of the public node servers provided (also behind Tor). You can use for example the Blockstream server.
We will use a simple scenario with single signature.
Initial steps to prepare your Taproot wallet
- install or run standalone Sparrow desktop app
- create a new wallet and select Taproot and select "new or imported software wallet"
- next screens will be to generate the words for a new seed, save them and write them again to confirm are OK
- Once you finish the process, open your password manager (I recommend KeePass or Bitwarden) and add all details of your new created wallet: seed, xpub, derivation path, 3-4 BTC addresses, encryption password of the wallet file. You can even add/insert a file backup of your sparrow wallet file (go to Sparrow menu, File - Export wallet). KEEP THAT PASSWORD MANAGER DATABASE IN A SAFE PLACE!
- BEFORE moving the funds to this newly created wallet, DO THE RESTORE TEST. Just close this newly created wallet, and initiate the same process again, but this time, choose to restore from the seed you already have it. If you generate the same first 5-6-10 BTC addresses, then you are good to go, you have the right words and you are sure you can restore them.
Import your Electrum wallets into Sparrow
In order to be able to have a smooth transition and construct easier the mixing transaction, will import your old Electrum wallets into Sparrow.
Same process as before, only that we will choose in the 2nd screen the "electrum keystore", where we can just add the Electrum wallet file, no need seed or anything else.
If you still didn't save that file, no problem, just browse into your Electrum folder installation or where you keep the wallet file and you will import it from there. Click "import" into Sparrow and will ask you for the encryption password. It is your Electrum password to open that file. Done, it will take few moments until Sparrow wills can and import all txs and UTXOs.
Ok let's say you have 10 UTXOs in your old Electrum wallet with different amount each.
Let's make it more diverse: will split all those into 20 UTXOs, with different amount, not equal, make it to look like a coinjoin.
Construct the transaction for migration to Taproot
In Sparrow, go to imported Electrum wallet - Send. Select minimum fee, for example 1sat/vB and "privacy" mode optimized.
Go to your newly created Taproot wallet in Sparrow (see top tabs) and in Addresses copy one by one the first 20 generated addresses.
Go back to Electrum imported wallet and in that "pay to" box, paste one by one and click the "add" button for each taproot destination address. You can put a label if you want. For each destination put a different amount. Spread it as a random number.
On the last one, just click "max" button and will just add the remaining sats available.
A nice graph will show up once your transaction is constructed.
Click "create transaction" and the next screen will be about to sign it (using your wallet password) and also a nice feature: "Locktime". This is really interesting in case you want to lock those UTXOs for a long time HODL, so could not be spent until the specified block or date (for example a hodling wallet for your kids, to be able to spend from that wallet only when they are 18-20 years old). Is a very good feature to protect a wallet for spending.
Finish the process of signing and broadcast the transaction to the mempool. Once is taken from the mempool by the miners, you can see it in the block explorer like this:
Done! Now wait for 6 confirmations and you will see your BTC into your new Taproot wallet addresses.
Optional, you can copy the txID and go to https://kycp.org/ and see how is the "privacy" level. If you want more privacy, repeat the process with even more inputs and outputs, from the same wallet or mixing with another newly created taproot wallet. Sparrow wallet is a great app for mixing and easy to use.
More details and guides how to use Sparrow mixing here.