What is Sparrow Wallet?
Sparrow is a desktop only bitcoin wallet, available on all major platforms that provides a fantastic alternative to Electrum which has long been the default option for most users. Sparrow provides huge amounts of detail to the user relating to their UTXO's, transactions and balances, but does so in a very user friendly manner.
Sparrow Wallet comes with everything you'd expect from a desktop based wallet...
Own node backing (via Electrum server)
New wallet generation
Wallet imports (including Electrum)
All major hardware wallet support (including air gapped devices)
Coin selection and labelling
Watch only wallets
Custom derivation paths
Connecting Sparrow Wallet to your own node
One of my favourite things about Sparrow Wallet is that it only works by connecting to a node that you specify. Quite the opposite to Electrum that connects to multiple hosted servers automatically, sharing wallet addresses and IP addresses in the process! Sparrow connects to your own node through an Electrum Server. Sparrow's website recommends Electrum X, however given most node runners will be running one of the popular node implementations like RoninDojo, Nodl, RaspiBlitz or myNode, all of which come packaged with Electrum Rust Server (Electrs), I'm going to focus on that approach in this article.
The process will likely be either the same, or very similar for Electrum X users.
1. Download Sparrow Wallet for your chosen operating system.
2. Open Sparrow Wallet and go to File > Preferences > Server
3. Now we need to grab your Electrum server URL. This process varies slightly depending on your node implementation and whether you want to connect via your local IP address (you can only use Sparrow Wallet when at home) or via Tor (access from anywhere with increased privacy). I would always advocate using Tor whenever possible and that's what I'm have done for this article.
Retrieving your Electrum Server address...
Nodl - On the home page of your dashboard under Tor 'Details and Settings'
myNode (Or visit the Tor page of your dashboard)
4. If you are going to be connecting over Tor you will need to have Tor browser downloaded to your laptop/desktop and running in the background. This will provide our Tor proxy connection for Sparrow Wallet.
5. Paste your Electrum Server URL (or Local IP if not using Tor) into the URL box and enter 50002 into the box on the right. Enter the proxy details as shown below and press 'Test Connection'. If this was successful you will see a message similar to the one shown at the bottom of the picture below.
Notes - If using local IP and connection is unsuccessful try changing the top right box to 50001. If connecting via Tor browser is unsuccessful, try restarting both Sparrow and Tor browser.
Congratulations, you now have Sparrow Wallet connected to your own node and are now ready to create or import your wallet(s).
Importing your Cold Card Wallet
1. On your Cold Card go to Advanced > Micro SD > Export Wallet > Generic JSON.
This will make a copy of your wallet onto your SD card that is readable by Sparrow Wallet. You can find more detail on this here. Once complete put the SD card into your computer.
2. In Sparrow Wallet, go to File > Import Wallet > Import File
3. Select the script type and press import.
P2PKH = 'Legacy' addresses starting with a '1'
P2SH-P2WPKH = 'Segwit' compatibility addresses starting with a '3'
P2WPKH = 'Native Segwit' addresses starting with 'BC1'
4. That's it! You should now see your home screen with your Cold Card transactions and balances (which I've blanked out for my own privacy).
Receive a transaction
Go to the receive tab and press 'Get next Address'. You can then share the address or QR code with whoever is sending you bitcoin.
Sending a transaction
Using these steps the wallet will choose which UTXO's it spend for you.
Go to the send tab
Paste the address you are sending to
Enter the amount and adjust your fee rate
Press create transaction
You can now review the transaction details. When you're happy, save the PSBT file and pass this across to be signed by your Cold Card via the normal process. For a 'how to' on signing with your Cold Card check this video from 0:51 - 1:11.
To broadcast the transaction...
Load the signed PSBT back onto your computer
In Sparrow press Load PSBT
Choose the signed PSBT file
You can now have a final review of the details and then broadcast to the network
Spending using specific UTXO(s)
Go to the UTXO tab
Select all of the UTXO's you want to use to create your transaction
Press send selected
Follow the steps outlined in the previous section
Where can I learn more?
If you want to try Sparrow Wallet for yourself visit their website and for the more technical user that wants to look under the hood, visit their GitHub. You can also follow them on Twitter to stay up to date with the latest developments.
At the time of writing Sparrow Wallet is very new to the market so I urge anyone trying it out to use caution and expect the odd bug here or there. If you find one, raise an issue on their GitHub page.
Disclaimer - All views expressed in this article are my own and not those of the Sparrow team.