Verify a Signed Bitcoin Message
Someone claims to control a Bitcoin address and signed a message to prove it. Paste the address, the exact text and the signature, and this page tells you whether the claim holds. Nothing you paste leaves your browser.
Must match byte for byte. A trailing space or a changed letter breaks the signature.
Try one: a valid signature
What this tool does
It does
- Recover the public key from the signature and derive its address
- Compare that address with the one you entered
- Handle both compressed and uncompressed keys
It does not
- Ask for a private key or seed phrase, ever
- Send the message or the signature anywhere
- Create signatures: this page only reads them
A valid signature proves control of the key at the moment of signing. It does not prove who that person is, and it says nothing about the balance behind the address.
What gets signed
Wallets never sign your text as is. They prefix it with a fixed magic string and hash the result twice:
"\x18Bitcoin Signed Message:\n" + varint(len) + message -> sha256(sha256(...))
That prefix is what stops a signed message from ever being replayed as a transaction.
Signature shape
| byte 0 | header, 27 to 34 |
| 1 to 32 | r |
| 33 to 64 | s |