There are a couple reasons I've needed to do this recently:
- Safely moving BCH (bitcoin cash) from Mycelium accounts
- Consolidate many small inputs ("dust") to a single address without overpaying on the miner fee
If you've used bitcoin any time in the past year or so, you're familiar with the pain of excessive miner fees. Most wallet applications, even today, still do not allow the user to set fees manually. This combined with their inadequate fee estimation algorithms has lead to the current situation. Luckily for us, some wallet applications do allow custom fees. The one we'll be using right now is Electrum.
Export Master Private Key from Mycelium
Open Mycelium and navigate to the "Accounts" tab.
Select the account you want to sweep by tapping it once.
Open the menu (in the top right corner of the app) and select "Export". Select "Yes" to continue.
The popup will show you the master public key for the account. But you need the master private key to be able to spend the inputs later. To view the master private key, tap the slider at the top of the screen to change it from public to private. You should see a warning message and instructions for how to view the master private key. At the time of this article, you need to press and hold on the screen until the private key is revealed.
Create a New Wallet in Electrum
Open Electrum and create a new "standard wallet".
On the next screen, select "Use public or private keys".
Carefully transcribe the master private key from earlier.
If you entered it correctly, you should be able to continue by pressing the "Next" button. After a few minutes you should see the full transaction history for your Mycelium account.
Sweep Funds by Sending All Inputs to a Single Address
Once everything is up-to-date, you can safely send the funds in the wallet to any address you wish. By default, Electrum does not allow you to set fees manually. To enable this feature, go to the "Tools" menu then "Preferences". Check the box next to "Edit fees manually". Now when you try to send funds, you should be able to override the fees with your own custom fee amounts.
Here are a few reference links to help you decide what fee is appropriate for your transactions:
If your transactions get stuck you can try this free transaction accelerator from ViaBTC. But there is a limit on the number of transactions they will "accelerate", and they are only a single mining pool -- it won't affect what transactions other miners will include in their blocks.