Guide

How to sign a message with a Bitcoin wallet

Where to find Sign message in each popular Bitcoin wallet, and the small mistakes that make a valid-looking signature fail.

Updated 13 Oct 2026

Whichever wallet you use, signing never sends a transaction and never costs a fee. You'll get a signature: a line of letters and numbers (base64) that proves the address's key signed your exact message.

Browser wallets: Xverse, Leather, UniSat

These sign when a website asks. On VerifiedWallet's Get certified page, click your wallet, pick the address and approve the message in the wallet's pop-up.

  • Xverse has two addresses: a Payment address for your bitcoin and an Ordinals address (Taproot, bc1p…) for Bitcoin NFTs and Runes. Most people certify the Payment address.
  • Leather offers a Native SegWit (bc1q…) and a Taproot address.
  • UniSat signs with whichever address is currently selected in UniSat, so switch to the right one first.

Don't have one? The wallet guide links to each official Chrome extension.

Electrum

  1. Open your wallet and go to Tools → Sign/verify message. Or, on the Addresses tab, right-click the address and choose Sign/verify message, which fills the address in for you.
  2. Check the Address box shows the address you want to prove.
  3. Paste the message into Message exactly as given.
  4. Click Sign and enter your wallet password. The Signature box fills in.
  5. Copy the whole signature.

Sparrow

  1. Go to Tools → Sign/Verify Message (Ctrl+M or Cmd+M), or open it from the Addresses tab.
  2. Choose the address and paste the message.
  3. Leave Format on Standard (Electrum) unless you're signing with a Taproot address, which needs BIP322. VerifiedWallet accepts either.
  4. Click Sign Message. If the wallet is on a hardware device (Trezor, Ledger, Coldcard, BitBox and others), confirm on the device when asked.
  5. Copy the signature.

Sparrow is also the easiest way to sign with a Ledger: Ledger Live has no message-signing screen for Bitcoin, but a Ledger connected to Sparrow can sign.

Trezor Suite

  1. Open the Bitcoin account, click the three dots at the top and choose Sign & Verify.
  2. Paste the message and choose the address.
  3. Click Sign, then check the message on the Trezor's screen and confirm.
  4. Copy the signature from Suite.

Trezor Suite doesn't offer this for Taproot accounts. Use a SegWit account, or Sparrow with BIP-322.

Bitcoin Core

In the console or with bitcoin-cli: signmessage "address" "message". Bitcoin Core only signs messages for legacy addresses (starting 1), so for a bc1q or bc1p address use Sparrow instead.

Why a signature fails, and how to fix it

  • The message changed. One extra space, a missing full stop or a line break makes it a different message. Copy and paste it, never retype it.
  • The wrong address signed. Many wallets have dozens of addresses. Sign with the exact address you're proving.
  • Part of the signature is missing. Copy all of it, including any = at the end.
  • It's a multisig address. These can't sign a plain message. Use a single-key address.
  • The checker only understands one format. Some tools only check classic signatures and reject BIP-322 ones (or the other way round). VerifiedWallet checks both. See BIP-137 vs BIP-322.
Get a certificate anyone can check

Sign once with your wallet: free, no transaction. We counter-sign it and give you a link anyone can verify. From $1.

Get certified

More guides

Questions

Which format should I choose in Sparrow?

Standard (Electrum) for bc1q, 3 and 1 addresses; BIP322 for Taproot (bc1p) addresses. VerifiedWallet accepts both.

Can I sign with a Ledger?

Yes, through Sparrow (or Electrum) with the Ledger connected. Ledger Live itself has no message-signing screen for Bitcoin.

Does signing cost anything?

No. It isn't a transaction, so there is no network fee and nothing is broadcast.