Skip to content

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 0header, 27 to 34
1 to 32r
33 to 64s