Message Verifier

Authenticate signed messages on your device — even in airplane mode

Digital signatures cryptographically prove


🎓 How it works (3 mins)
Asymmetric cryptography

Also known as public-key cryptography, allows for secure communication between two parties.

Each party creating a pair of unique keys, a public key and a private key.

Private keys are used to digitally sign messages, then the corresponding public keys are used to verify those message signatures.

Elliptic curves

Elliptic curve cryptography is a very common implementation of asymmetric cryptography.

It's used to secure every day internet communication, peer-to-peer messaging (whatsapp, signal, etc.) and even bitcoin.

Elliptic Curve Digital Signature Algorithm ensures that the digital signatures cannot be forged and do not leak the private key.

What makes this so secure is the difficulty of solving the Elliptic Curve Discrete Logarithm Problem.

Bitcoin

Bitcoin uses the following cryptographic primitives

Message Verifier

This website uses the verify-bitcoin-message library to verify signatures on device — without an internet connection.

All the core logic can be found in a single file, verify.ts.

See this message 🌍 Messages from around the world
📜 Other ways to verify signed messages
Bitcoin Node Command Line

bitcoin-cli verifymessage <address> <signature> <message>
RPC

curl --user <rpcuser>:<rpcpassword> 
--data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "verifymessage", "params": [<address>, <signature>, <message>] }' 
-H 'content-type: text/plain;' 
http://127.0.0.1:8332/
          
JavaScript Command Line

npx verify-bitcoin-message --json 
--address 1F3sAm6ZtwLAUnj7d38pGFxtP3RVEvtsbV 
--message "This is an example of a signed message." 
--signature "H9L5yLFjti0QTHhPyFrZCT1V/MMnBtXKmoiKDZ78NDBjERki6ZTQZdSMCtkgoNmp17By9ItJr8o7ChX0XxY91nk="
            
Install in Browser

<script type="module">
  import verify, { verifySafe } from 'https://unpkg.com/verify-bitcoin-message';
</script>


<!-- Legacy Script Tag -->
<script type="text/javascript" src="https://unpkg.com/verify-bitcoin-message">
</script>
            
Install via Node

npm i verify-bitcoin-message
            
Install via Bun

bun add verify-bitcoin-message
            
Usage

import verify, { verifySafe } from 'verify-bitcoin-message';

await verify({
  address: '1F3sAm6ZtwLAUnj7d38pGFxtP3RVEvtsbV',
  message: 'This is an example of a signed message.',
  signature: 'H9L5yLFjti0QTHhPyFrZCT1V/MMnBtXKmoiKDZ78NDBjERki6ZTQZdSMCtkgoNmp17By9ItJr8o7ChX0XxY91nk='
})

// If you're not a fan of throwing errors:
const isValid = await verifySafe({
  address: '1F3sAm6ZtwLAUnj7d38pGFxtP3RVEvtsbV',
  message: 'This is an example of a signed message.',
  signature: 'H9L5yLFjti0QTHhPyFrZCT1V/MMnBtXKmoiKDZ78NDBjERki6ZTQZdSMCtkgoNmp17By9ItJr8o7ChX0XxY91nk='
})
            
Other Websites
👨🏿‍💻 Source Code