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 verified 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
- 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.
- Check the Address box shows the address you want to prove.
- Paste the message into Message exactly as given.
- Click Sign and enter your wallet password. The Signature box fills in.
- Copy the whole signature.
Sparrow
- Go to Tools → Sign/Verify Message (Ctrl+M or Cmd+M), or open it from the Addresses tab.
- Choose the address and paste the message.
- Leave Format on Standard (Electrum) unless you're signing with a Taproot address, which needs BIP322. VerifiedWallet accepts either.
- Click Sign Message. If the wallet is on a hardware device (Trezor, Ledger, Coldcard, BitBox and others), confirm on the device when asked.
- 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
- Open the Bitcoin account, click the three dots at the top and choose Sign & Verify.
- Paste the message and choose the address.
- Click Sign, then check the message on the Trezor's screen and confirm.
- 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.
Sign once with your wallet: free, no transaction. We counter-sign it and give you a link anyone can verify. From $1.
More guides
How to check who owns a crypto wallet
Addresses don't carry names. Here's what does tell you who's behind one.
What is address poisoning, and how do you avoid it?
A lookalike address in your history, waiting for you to copy it. How to spot it.
Is this crypto address a scam? Check before you send
A one-minute checklist before any crypto payment you can't undo.
Crypto proof of funds: how to prove you hold it
A balance anyone can see, plus a signature only you can make.
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.