Multi-Sig Address Verification with Sparrow

XPubs, Watch Wallets, and Derivation Paths, Oh My!

Vicarious Drama
Sep 20, 2020 · 5 min read

by @vicariousdrama 649169–649173

Summary

Sparrow Wallet is a Bitcoin wallet facilitator that is gaining in popularity. According to the website, it is a wallet for those who value financial self sovereignty with an emphasis on transparency and usability. This wallet is available on Mac, Windows, and Linux from the download page.

This article is a follow up to a previous one I wrote titled ‘Address Verification when Changing Keys for Unchained Capital Vaults’. The intent is to provide similar steps for setting up a watch wallet to give another option for verifying addresses.

Creating a Watch Wallet with XPubs

Similar to Electrum, you can create a Watch Wallet in Sparrow for purposes of monitoring a wallet if you have the xpubs of the cosigners.

For consistency, this sample will use the same xpub values that I referenced previously

xpub6FBFAVmiF1pgCYanH9GdbgHbiLkHSUq9c5KkY6c7mEk4o8757p8JsrdXo3zsy3uifqGEsBkp45C4jFYPM1X7k3bgsRmijrjz5edaFsxdodA

xpub6EkQHCE3w9F6qyCAZxW5vh87b969wiKUaB6NnYcjcsuLzPeEckNSffjHPFhP2hKM6jeAtRdoRiPGBJ3F72t6n4psx4gvEyhPsRitDo7yKkj

xpub6EDykLBC5ERX7WREobYaca2ALTFZKLku9RDuPCi2MKf4YbnA4pGF7zVzRqGjrdJK33aeJ2K6qr2qfrz64EikAyEkpbdkmoedFC16smSacJB

Once you’ve opened Sparrow, from the menu bar, choose File, then New Wallet. Give the wallet a name. In my setup, I chose Sparrow Sample XPub Watch. Initially, the view will default to a single signature wallet and pay to witness private key hash.

Change it to Multi Signature, with a script type of P2SH, with M of N cosigners set to 2 / 3. For different wallets, you may use a different script type. I chose P2SH as I’m modeling this after a wallet setup in an Unchained Capital vault.

Next, the three Keystores representing the Cosigners need to be setup. Note that each of the captions for the Keystore tabs appears with red hue indicating they need more information.

Choose the XPUB / Watch Only Wallet option.

In the xPub field, copy and paste one of the xPub values.

Upon doing so, the Master fingerprint and Derivation fields will be color coded with a reddish outline indicating they need a value. For the master fingerprint, just enter 8 zeros. And for Derivation, provide the value m/

Repeat this process for the other two tabs and xpubs

Finally, click the Apply button. A dialog will appear prompting you if you want to add a password to the wallet. I left this empty and clicked the button No Password to continue.

Now navigate to the Addresses view to see all available receiving addresses. The addresses depicted are under the control of the private keys associated with the xpubs. I had setup this wallet previously inside of an Unchained Capital vault and needed a way to verify that I controlled a specific address.

Creating a Regular Wallet with Devices

In this example, I will setup a multi-sig wallet where two cosigners are from hardware devices I control, and the third cosigner is the xpub. This mimics typical setups for both Unchained Capital and Casa where the collaborative custody provider holds one of the keys.

Device 1 has a derivation path of m/45'/0'/0'/1

Device 2 has a derivation path of m/45'/0'/2'/0

The xpub from the provider is

xpub6EDykLBC5ERX7WREobYaca2ALTFZKLku9RDuPCi2MKf4YbnA4pGF7zVzRqGjrdJK33aeJ2K6qr2qfrz64EikAyEkpbdkmoedFC16smSacJB

From the menu bar of Sparrow, choose File, then New Wallet. Give the wallet a name. In my setup, I chose Sparrow Sample HW Device. Initially, the view will default to a single signature wallet and pay to witness private key hash.

Change it to Multi Signature, with a script type of P2SH, with M of N cosigners set to 2 / 3. For different wallets, you may use a different script type. I chose P2SH as I’m modeling this after a wallet setup in an Unchained Capital vault.

Next, the three Keystores representing the Cosigners need to be setup. Note that each of the captions for the Keystore tabs appears with red hue indicating they need more information.

Click the Connected Hardware Wallet. A new dialog opens for Connecting the Hardware Wallet. Click the Scan button.

For Ledger Nano, I click the Show Derivation… link to expand.

Change the value to my derivation path m/45'/0'/0'/1 and click Import. The xpub is determined from the master key and populated in the entry fields. As a convenience, the Label is also updated to reflect that this was a Ledger Nano S

For the second Keystore, I repeat the process, but for that device I use derivation path m/45'/0'/2'/0

And for the third keystore, specify the XPUB, with a derivation path of m/ and master fingerprint as any value

Finally, click the Apply button. A dialog will appear prompting you if you want to add a password to the wallet. I left this empty and clicked the button No Password to continue.

Now navigate to the Addresses view to see all available receiving addresses. With this wallet, I can use my hardware devices to sign any transactions I create, as well as verify the receiving addresses

Conclusion

Sparrow Wallet is an easy to setup and transparent bitcoin wallet for multi-signature. The addresses displayed for my multi-signature wallet are the same as those I had previously seen in both Caravan and Electrum.

I hope you are able to verify this for yourself. Give Sparrow Wallet a try if you haven’t already, and try setting up the same watch wallet with provided xpubs. You should see the same addresses and transactions.

Don’t Trust. Verify.

Coinmonks

Coinmonks is a non-profit Crypto educational publication.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Start a blog

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store