Signing a Bitcoin message lets you prove to an exchange, broker, or another service that you control a specific Bitcoin address. The requesting service normally provides the exact message and may require you to use a particular address. Do not create or change the message, and do not substitute another address when a specific one is required.

This guide explains how to sign and verify that message with Sparrow Wallet and your BitBox02. A valid signature proves control of the address used to create it, but it does not prove your identity or control of other addresses. Signing a message does not create a Bitcoin transaction, move bitcoin, or incur a network fee. Your BitBox02 creates the signature without exposing its private keys.


Sign the message directly in the BitBoxApp

You can sign Bitcoin messages directly in the BitBoxApp without installing another wallet application or connecting your BitBox02 to it:

The BitBoxApp supports message signing with Native SegWit addresses beginning with bc1q. If you want or need to use Sparrow Wallet, continue with this guide.


Before you begin

  • Install the current Sparrow Wallet release only from the official Sparrow Wallet download page.
  • Make sure your BitBox02 is fully set up and install the latest available firmware through the BitBoxApp.
  • Have the exact message supplied by the requesting service ready and know which Bitcoin address you must use. Do not write a replacement message or substitute another address when a specific one is required.
  • Close the BitBoxApp completely before using Sparrow Wallet. Only one wallet application can communicate with the BitBox02 at a time.
  • Make sure the required BitBox Bitcoin account is connected to Sparrow Wallet. If it is not, follow How to connect your BitBox02 with Sparrow Wallet first.

Use the correct Bitcoin account in Sparrow Wallet

Connecting your BitBox02 to Sparrow Wallet does not load the complete BitBox wallet with all of its Bitcoin accounts. For this single-signature workflow, the hardware-device keystore and derivation path selected when the Sparrow wallet is created determine which BitBox Bitcoin account it represents. One such keystore represents one BitBox Bitcoin account.

The address you need to sign with must belong to that Bitcoin account. In the procedure below, open the Sparrow wallet created for the account containing the requested address. If that account has not been connected to Sparrow Wallet yet, connect it before continuing. The requested address may appear under Receive or Change.

Review the complete request before signing

Sign only a message you understand and were expecting from the requesting service. Confirm on your BitBox02 only when the complete address and message exactly match the original request. Reject the request if anything differs, is unclear, or the device is not showing a message-signing confirmation. Never share your recovery words, private keys, passwords, optional passphrase, or wallet backup.

 

Sign and verify the message with Sparrow Wallet

The steps below open Sign/Verify Message from the requested address. This is the clearest route because Sparrow fills the address automatically.

Alternative: You can open the same tool from Tools → Sign/Verify Message. If you use this route, Sparrow does not select the requested address for you. Enter it manually when you reach step 4 and check every character before continuing.

Sparrow Wallet Tools menu with Sign/Verify Message selected

  1. Open the Sparrow wallet created for the BitBox Bitcoin account containing the requested address.
  2. Open the Addresses tab.

    Sparrow Wallet with the Addresses tab open
  3. Find the exact requested address within that account. Check both receive and change addresses if necessary. Right-click the matching address and select Sign/Verify Message. Do not choose another address merely to continue.

    Sparrow Wallet address menu with Sign/Verify Message selected
  4. Confirm that the Address field contains the exact requested address. If you opened the tool from the Tools menu, enter that address now. Do not continue if it differs.
  5. Enter the exact message supplied by the requesting service in the Message field. Preserve its spelling, capitalization, punctuation, spaces, and line breaks.
  6. Keep Format set to Standard (Electrum) for this BitBox02 workflow. If the requesting service requires another format, stop and confirm that its required address and message-signing format are compatible before continuing.
  7. Select Sign.

    Sparrow Wallet Sign/Verify Message window showing the address, message, Standard Electrum format, and Sign button
  8. When Sparrow asks for the hardware wallet, connect your BitBox02 if necessary. If Sparrow cannot access the device, close the BitBoxApp completely and select Rescan.

    Sparrow Wallet prompt to connect or rescan the BitBox02 hardware wallet
  9. Unlock your BitBox02.
  10. Review the complete Bitcoin address and message on the BitBox02. Reject the request if either differs from the original request.

    BitBox02 displaying a Bitcoin message-signing request for review
  11. Confirm the message-signing request on the BitBox02 only when both the address and message match exactly.
  12. After the BitBox02 creates the signature, Sparrow fills the Signature field. Select Verify.

    Sparrow Wallet showing the generated signature and Verify button
  13. Continue only when Sparrow displays Verification Succeeded. Select OK to close the confirmation.

    Sparrow Wallet confirmation that signature verification succeeded
  14. Copy the address, original message, and signature. Send all information requested by the service exactly as displayed. Do not edit the signature or the signed message.

    Sparrow Wallet signature field with the generated signature selected for copying

Signature verified successfully

The process is complete when Sparrow verifies the signature against the exact address and message you used. This confirms that the signature is mathematically valid. The requesting service still decides whether the address and signature format meet its requirements.

 

If something does not work

The requested address does not appear

The Sparrow wallet shows addresses only from the BitBox Bitcoin account represented by its hardware-device keystore and derivation path. Determine which BitBox Bitcoin account contains the requested address, then:

  • Check both receive and change addresses within that account.
  • If you have several BitBox Bitcoin accounts connected to Sparrow Wallet, open the Sparrow wallet created for the account containing the requested address.
  • If you use an optional passphrase, make sure the account was connected using the intended passphrase wallet.

Do not use another address when the requesting service requires a specific one. If the account containing the address has not been connected to Sparrow Wallet, connect it before trying again.

Sparrow cannot sign with the address

This Sparrow workflow requires a supported single-signature address belonging to the Bitcoin account represented by the open Sparrow wallet. If Sparrow reports that the address is not in that account or cannot be used for message signing, do not replace it when the service requested that exact address. Confirm which address type and signing format the service accepts.

Sparrow cannot detect the BitBox02

Close the BitBoxApp completely, reconnect and unlock your BitBox02, and select Rescan in Sparrow. If Sparrow still cannot connect, follow How to connect your BitBox02 with Sparrow Wallet.

The BitBox02 shows different information

Reject the signing request on the device. Return to Sparrow and compare the complete address and message with the original request before trying again. Do not confirm first and investigate the mismatch afterward.

Sparrow cannot verify the signature

Check that the address, message, and signature have not changed. Capitalization, punctuation, spaces, and line breaks are part of the signed message. Also confirm that Format is set to Standard (Electrum) for this workflow.

Sparrow verifies the signature, but the service rejects it

Verification Succeeded confirms only that the signature is valid for the address and message in Sparrow. Ask the requesting service whether it supports the address type and Standard (Electrum) message-signing format you used. The service controls its own acceptance requirements.