Skip to content
KeyProof

Sign a message with MetaMask

MetaMask signs messages when a website asks it to with personal_sign. We did not find a standalone "sign message" screen documented by MetaMask. You sign through the exchange's connect flow, through Etherscan's Verified Signatures tool (as Kraken documents), or with KeyProof's local signer.

Your keys never leave your wallet. Never paste your recovery words anywhere, including KeyProof. Signing a message is not a transaction.

Chains: Ethereum and EVM chains
Signature format: personal_sign (EIP-191). It produces a 0x-prefixed, 65-byte hex signature.

Sign with KeyProof's local signer (no keys leave MetaMask)[1]

  1. Open KeyProof's Verify page and paste the exchange's exact message.
  2. Click "Sign with browser wallet". MetaMask asks you to connect, then shows a signature request with the message and the requesting site.
  3. Check that the site is the one you opened and the text matches the exchange's message, then click Sign.
  4. KeyProof fills in the address and signature and verifies them locally. Copy them back to the exchange.

Sign with Etherscan Verified Signatures (Kraken's documented route)[2]

  1. On etherscan.io, open More → Services → Verified Signature, then choose Sign Message.
  2. Connect MetaMask (or another wallet through WalletConnect).
  3. Enter the exact message and click Sign Message, then confirm in MetaMask.
  4. Copy the address, message and signature hash exactly as shown.

Tips

Check my signature in the verifier

Sources

Last checked 2026-10-27. Numbers in brackets [n] in the text refer to this list.

  1. MetaMask docs: personal_sign (official)
  2. Kraken: Signing a message on private crypto wallet (Etherscan route) (official)
  3. MetaMask docs: Sign data (official)

KeyProof is not affiliated with MetaMask. Wallet interfaces change, so follow your wallet's current documentation. Not legal or financial advice.