Nunchuk
Firmware versions B-2.5 (BTC-Only) or newer enables Nunchuk V1.9.0 or newer to be used with the Keystone Essential or Pro hardware wallets.‌ Detailed instructions provided below explains how to directly interact with the Nunchuk iOS App to create a 2-out-of-3 multi-signature wallet that includes the Keystone hardware wallet, ColdCard and Nunchuk's software key as the 3 participant co-signers, as well as how to execute a 2-out-of-3 multisig transaction.

I. Preparation

1. Setup your Keystone Essential or Pro. (Getting started)
2. Firmware versions B-2.5 (BTC-Only) or newer running on Keystone Essential or Pro.
(Please read How to Upgrade Firmware for more details.)
3. A Smartphone with Nunchuk V1.9.0 or newer downloaded with a Nunchuk account logged in.
(Tips: Smartphones require iOS 13.0 or later or up and Android 5.0 or up.)
4. A MicroSD card (FAT32 format with capacity NOT exceeding 512GB).

II. Adding Keys to Nunchuk

1. Adding Keystone to Nunchuk

1) Turn your Keystone hardware wallet on.
2) Tap [Menu] > [Multisig Wallet] > and then the [•••] button on the top right of the screen > then [Show/Export XPUB]. Your Keystone hardware wallet will display a QR code to be used to pair with a generic wallet.
3) Run the Nunchuk V1.9.0 or newer on your smartphone and log into your Nunchuk account.
4) Go to the “Wallets” interface and select [Add a key] or [+] icon on the right side of the "keys" column > [Add air-gapped key] > [Continue].
5) Set the [Key name] and press [Add key spec via QR], then use your smartphone's camera to scan the QR code displayed on your Keystone device.
6) Press [Add Key] > [Done]. Your Keystone should now be successfully added to Nunchuk.

2. Adding ColdCard to Nunchuk

1) Turn your ColdCard on and insert the microSD card into it.
2) Select [Settings] > [Multisig Wallets] > [Export XPUB] > confirm (√) to save the XPUB of the recovery phrase as a .json file to the microSD card.
3) Take out the microSD card from Coldcard and insert it into a PC/Mac. Then find and open the .json file.
4) On Nunchuk: Press [+] icon on the right side of the "keys" column > [Add air-gapped key] > [Continue].
5) Set your desired name for this key in the [Key name] space provided.
You would also need to set the [Key spec] using the Master Key Fingerprint, Path, and XPUB found in the ColdCard’s XPUB file so Nunchuck can properly and successfully read data from your ColdCard:
  • ① Open the .json file you exported from ColdCard during step (2) to find the XPUB, Path and Master Key Fingerprint.
  • ② You need to edit the key spec in a specific order and format: First, the Master Key fingerprint, then the Path (first two in square brackets), and lastly the XPUB. Please see the template example provided below:
[5271C071/48'/0'/0'/2']Zpub755NbzNDFus6egJM22CLBqjabHyNV8PEWJHGBkfCSXN2W8HRPKEA2MyxvycgD4AxNMcrTuxSwKYiNJ19h9PLURGZoWyC2Tutr7SWaU1swYK
Notice the first section in square brackets is the Master Key fingerprint “5271C071” followed by the Path, in this case, “/48'/0'/0'/2'”. The remaining key spec data is the XPUB.
After you’ve properly copied the necessary data in the right format and pasted in the [Key spec] space provided, press [Add Key] > [Done]. Your ColdCard should now be successfully added to Nunchuk.

3. Adding Software Key to Nunchuk

1) Press [+] icon on the right side of the "keys” column > [Add software key] > [Create new seed].
2) Safely backup your recovery phrase and press [Continue] > Confirm the recovery phrase and press [Continue] > Give the key a name and press [Continue].
3) Set a passphrase (optional) > press [Set passphrase] or [I don’t need a passphrase] > [Done]. The Nunchuk software key should now be successfully added.

III. Creating a 2/3 Multisig Wallet on Nunchuk

1) Go to the wallets interface and select the [+] icon on the right side in the "Wallets" column. Then select [Create a wallet] , then set a wallet name (You can customize the address type and wallet type if needed) and touch [Continue].
2) Configure the keys to the multisig wallet and select the number of signatures required > Touch [Continue] > confirm the contents in the “Review wallet” page > Touch [Create a wallet].
3) You can choose to back up the wallet right now or later, then review the wallet and touch [Done]. The 2/3 multisig wallet would have now been successfully created.

IV. Importing the 2/3 multisig wallet to Keystone as a co-signer

1) Nunchuk: Select the corresponding multisig wallet > select [View wallet config] > touch the [•••] button on the top right corner > select [Show as QR code] option to reveal a dynamic QR code.
2) Keystone: Select [Menu] > [Multisig Wallet] > [Import Multisig Wallet] > then select the [scan] icon on the top right corner and scan the QR code displayed on Nunchuk > select [Confirm] to successfully make the multisig wallet a co-signer.

V. Receiving bitcoin to the 2/3 multisig address

You can use the receiving addresses displayed with either the Keystone or Nunchuk to receive bitcoin.
1. Keystone: Enter the [Multisig Wallet] and select [Addresses] to display the receiving addresses.
2. Nunchuk: Go to the corresponding wallet and select [Receive] to display the receiving address.

VI. Sending bitcoin from the 2/3 multisig wallet

This part of the tutorial will explain how to execute a 2-out-of-3 multisig transaction with Nunchuk on the testnet. Please note that the process is the same for the mainnet.

1. Create a 2/3 multisig transaction on Nunchuk

1) Go to the corresponding wallet and select [Send] to enter the remittance interface.
2) Configure your desired amount > touch [Continue] > input the receiving address and note (optional) > touch [Continue] > customize the fee if needed > touch [Continue]. Then view the transaction details and touch [Confirm and create transaction] to enter the signature page.

2. Sign multisig transaction

1) Touch the [Sign] icon on the right side of the software key. You can see that the first signature has been automatically signed by Nunchuck.
2) Touch the [Sign] icon on the right side of the Keystone key > select [Export transaction] to display the partially signed transaction information in QR code format.
3) Keystone: Enter [Multisig Wallet] > select the [scan] icon and scan the QR code displayed on Nunchuk.
4) Check the transaction details and tap [Sign] > Enter your password/fingerprint > then Press [Confirm] to show the signed transaction data in QR code format.
5) Nunchuk: Touch [←] to return to the signature page. Select [Import signature] and scan the QR code displayed on Keystone to transmit the signed transaction data.

3. Broadcasting Transactions with Nunchuk

1) Press [Broadcast transaction] to broadcast the transaction. You can view the transaction on a blockchain explorer later for verification purposes if required.