Wrapped and unwrapped messages
Wallet extensions (polkadot.js, Talisman, SubWallet) don't sign a message as is. They sign <Bytes>message</Bytes>, so a signed message can never be mistaken for a transaction. Signatures made by scripts and command-line tools usually cover the bare message.
This page tries the message as you entered it first, then with the wrapper added (or removed, if you pasted it wrapped), and says which form matched.
Schemes
- sr25519: the default for Bittensor wallets. Its signatures are randomised, so signing the same message twice gives different valid signatures.
- ed25519: 64-byte signatures, the same length as sr25519; Auto tries both.
- ecdsa: 65-byte signatures over the BLAKE2b-256 hash of the message. The account id is the hash of the public key, so either the address or the 33-byte public key works.
A signature with a leading type byte (0 for ed25519, 1 for sr25519, 2 for ecdsa), as used on chain, is accepted too.