Sign a wallet verification message manually
If your wallet is missing from Connect wallet, or signing through the connection fails, choose Sign manually in the verification widget. You can sign the supplied message in your own wallet app and paste the resulting signature into the widget.
Before you start
You need the wallet that controls the exact address shown in the widget. Bitcoin wallets can contain many addresses: another address in the same wallet will not verify the requested address. A watch-only wallet cannot sign without its signing device or private keys.
This verification message does not send funds or require a network fee. Keep private keys and recovery phrases in your wallet or hardware device; never paste them into the widget or a website. When connecting a hardware wallet to another app, use the app's hardware-device connection rather than importing your recovery phrase.
Sign and submit
- Select Sign manually below Connect wallet.
- Check the wallet address shown at the top of the form.
- Select Copy message. If clipboard access is unavailable, select and copy the entire Message to sign field yourself.
- Open your wallet's Sign message or Sign/Verify message feature. Select the exact address from the widget, and paste the copied message without editing it. Sign the message exactly as displayed. Do not change spaces, punctuation,
|characters, capitalization, or line breaks. The text may wrap on screen; do not add line breaks. - Review and approve the message in your wallet. For a hardware wallet, confirm on the device as prompted.
- Copy the resulting signature only and paste it into the widget's Signature field. Do not include the address, message, or a signed-message file's BEGIN/END headers.
- Select Confirm. If the signature is accepted, the widget continues to the next verification step or completion screen.
Keep the widget open while signing. The back arrow returns to Connect wallet. If you leave the manual form and reopen it, copy and sign the newly displayed message.
Bitcoin wallets and hardware devices
The wallet's signing feature and the address type both matter. CryptoSwift currently accepts legacy Bitcoin message signatures and BIP-322 Simple signatures for supported address types. Although BIP-322 supports Taproot, CryptoSwift does not currently verify signatures for Taproot addresses beginning with bc1p, even if your wallet can sign for them. Multisig and other script-based addresses are not necessarily supported by CryptoSwift's signature-verification flow and may require another verification method.
Trezor: Trezor Suite
Open the account containing your address, then open the account menu and choose Sign & Verify. Enter the requested address and the widget's message, sign on your Trezor, and copy the signature back to the widget. Check the address carefully if your account contains several addresses. See Trezor's Sign & Verify guide.
BitBox02: BitBoxApp
For an address that has already been used, open the Bitcoin account, choose Account information → View used addresses, find the exact receive or change address, and select Sign message. Paste the widget's message and approve it on the device. Follow BitBox's guide for signing with a used address.
For an unused address, the BitBoxApp new-address signing guide explains how to select from unused addresses. Only use it if the selected address matches the widget. These BitBoxApp workflows support Native SegWit (bc1q) addresses.
Ledger and other hardware wallets: companion apps
A compatible desktop wallet, such as Electrum or Sparrow, can expose message signing for a connected hardware device. Hardware model, firmware, and address-type support vary. Use the account and address type that contain the requested address; connecting the device does not necessarily load every account.
For Ledger, start with Ledger's Electrum setup guide. Unlock the device and open its Bitcoin app when prompted. If your Ledger/Electrum combination exposes message signing, use Tools → Sign/verify message, select or enter the exact requested address, paste the widget message, and approve signing on the device. Copy the resulting signature into the widget. If signing is unavailable or fails, do not import your recovery phrase into another wallet. Use another supported companion-wallet workflow or another CryptoSwift verification method instead. For an illustrated signing workflow, see BitBox's Electrum message-signing guide; its device-specific steps apply to BitBox02.
For Sparrow setup and hardware-wallet connections, see the official Sparrow quick-start guide. Use its message-signing feature for the requested address when supported by your connected device.
COLDCARD
COLDCARD supports signing messages using files and other device workflows. Follow the official COLDCARD message-signing guide, ensuring the address path and address format correspond to the exact address in the widget. Transfer the widget message unchanged. From the signed output, copy only the signature into the widget, excluding the message, address, and file headers. COLDCARD signing workflows may impose message length or character restrictions. If the supplied CryptoSwift message is rejected, do not shorten or modify it; use another available verification method.
Other blockchains
Manual entry also works for other blockchains supported by CryptoSwift signature verification, provided your wallet can sign the supplied text with the requested address. It does not add support for an otherwise unsupported blockchain.
- Ethereum and supported EVM networks: use plain-message signing (EIP-191 /
personal_sign) and paste the hexadecimal signature. Typed-data signing and transaction signatures are different formats. See the supported EVM signature scheme. - Solana: sign the exact UTF-8 message and paste the base58-encoded signature. An app that exports raw bytes or base64 needs to provide the signature in base58 for this flow.
- TRON: use your wallet's supported message-signing function and paste the signature it returns.
Many wallet apps can approve connected signing requests but do not offer a screen for signing arbitrary text. If yours has no such feature, use Connect wallet, a compatible companion app, or another verification method offered by your service.
If verification fails
- Wrong address: compare the full address, account, and network. For Bitcoin, check used receive addresses and change addresses rather than accepting the next unused address automatically.
- Changed message: copy the current widget message again and create a fresh signature. Do not translate, shorten, reformat, or replace the message.
- Wrong pasted content: paste only the signature exactly as produced by the wallet. For base64 signatures, include any trailing
=padding. Do not paste an entire exported file or a transaction ID. - Expired session: reopen verification from the service that requested it, then sign the new message.
- Unsupported wallet or address type: use the back arrow and choose another available verification method, such as visual proof or a microtransaction. If your service offers no alternative, contact its support team.