Why does Kaspa use a separate hash key for signing personal messages?

Kaspa uses two different blake2b hashing keys so that signing a personal message can never accidentally authorize a transaction. When you sign anything in Kaspa, the first step is reducing the raw message to a compact, fixed-length hash. Personal messages use a key called `PersonalMessageSigningHash`, while actual transactions use a completely separate key called `TransactionSigningHash` — this deliberate difference is called domain separation. Without it, a malicious website could potentially trick you into signing something that looks harmless but produces a signature that also works on a transaction. For a beginner, this means Kaspa's design makes it structurally impossible for a message-signing request to steal your funds, even if something goes wrong.

Learn more ›