Sparrow: pair a hardware wallet and verify a receive address
Create a watch-only wallet from your signing device, check an address on the device screen, and sign a first transaction.
A hardware wallet on its own cannot tell you what you own. It holds keys and signs things; it has no idea what is on the blockchain. Sparrow is the other half — the part that watches the network, builds transactions, and hands them to your device to be signed.
The arrangement is deliberate. Sparrow never sees a private key. It imports your public keys, which is enough to see your balance and construct a spend, but not enough to authorise one. Your device keeps the only thing that matters, and the computer is treated as untrusted throughout.
This takes about half an hour, and covers the piece most people get wrong: verifying a receive address on the device rather than on the screen.
A laptop running Sparrow beside a hardware wallet on a desk, the same bitcoin address visible on both screens.
Image to come
Before you start
- A hardware signing device already set up, with its recovery words written down and stored.
- Sparrow downloaded from sparrowwallet.com — typed by hand, not reached from a search result.
- A microSD card or a USB cable, depending on how your device talks to a computer.
- A decision about which server Sparrow will use. Read the section on that before you fund anything.
1Verify the download before you run it
Wallet software is impersonated relentlessly, and a convincing fake will behave exactly like the real thing right up until it shows you an address that is not yours. The release page publishes a manifest and a signature so you can confirm the file came from the project.
- Download only from sparrowwallet.com, typed by hand rather than clicked from a search result.
- Fetch the manifest and its signature from the same release page.
- Verify the signature against the project's published key, then check the file hash against the manifest.
This is a five-minute habit that is much easier to form now, before you have anything to lose, than later.
Sparrow download and verification
2Create the wallet from your device's public keys
Sparrow needs to know which addresses are yours, and nothing more. Importing the extended public key gives it exactly that: the ability to watch and to build, without the ability to spend.
- File, then New Wallet, and give it a name you will still recognise in a year.
- Set the policy to Single Signature unless you are deliberately building a multisig.
- Choose the script type your device exports — Native SegWit is the usual default and produces bc1 addresses.
- Connect the hardware wallet over USB, or import the exported public-key file if you are working air-gapped.
Check the fingerprint
The master key fingerprint Sparrow shows after import should match the one your device reports. If they differ you have imported the wrong keys, and every address Sparrow shows you from that point on will belong to a wallet you cannot spend from.
3Verify a receive address on the device screen
This is the step the whole arrangement exists for, and the one most often skipped.
Malware that swaps bitcoin addresses in the clipboard is common and cheap. It does not need to break any cryptography — it just waits for something address-shaped and substitutes its own. Sparrow will show you the attacker's address. Your browser will show you the attacker's address. The hardware device, which the malware cannot reach, will show you yours.
- Open the Receive tab and generate a fresh address.
- Use the option to display that address on the hardware device.
- Compare the whole string, not just the first and last few characters — lookalike addresses are generated to match at both ends.
- Use a new address for each incoming payment rather than reusing one.
- An address shown only on your computer has not been verified. Checking it on the device is the entire reason you own one.
4Decide what your wallet talks to
Sparrow has to get blockchain data from somewhere, and that somewhere learns things about you. A public Electrum server is the easy default and works fine — but it can see which addresses belong to a single wallet, which is a meaningful amount of information about your finances.
- For learning and small amounts, the public server default is workable.
- For balances you would mind being catalogued, connect Sparrow to your own Bitcoin Core node.
- Enable Tor in Sparrow's server settings if you are staying on a public server.
This is a privacy decision rather than a security one — a hostile server cannot steal from you — but it is much easier to make before you start using the wallet than to unpick afterwards.
5Sign a small test transaction
The full loop is: Sparrow builds an unsigned transaction, the device signs it, Sparrow broadcasts it. Run it once with an amount you would not mind losing, before you rely on any of this.
- Send a small amount to a destination you control.
- Review the recipient address and the fee on the device screen, not just in Sparrow.
- Confirm on the device, broadcast, and wait for a confirmation to appear.
- If you are working air-gapped, move the unsigned transaction out by microSD or QR, sign it, and bring the signed file back.
Once that has worked end to end, you have a wallet you can actually reason about: the computer proposes, the device disposes, and you have watched both halves happen.