BIP-322
Also: generic message signing
cryptography · advanced
A standard for cryptographically signing arbitrary messages with any Bitcoin address — including bech32 and Taproot, which the legacy message-signing scheme didn't support.
Before BIP-322, "message signing" worked only for legacy P2PKH addresses ("1..."). The original Satoshi-era scheme assumed a single public key, which doesn't generalize to script-based addresses like P2SH, P2WSH, or Taproot.
BIP-322 (Karl-Johan Alm, 2018, finalized 2022) reframes message signing as a transaction: sign a synthetic spend that consumes a virtual UTXO scripted to your address. Verification re-runs the same logic. The scheme works uniformly across every address type, including multisig — a 2-of-3 vault can prove ownership of an address by collecting two of three signatures.
Uses include proof-of-reserves attestations by exchanges, signature-based authentication for Bitcoin-aware services, and provable claims like "I controlled this address on this date." Adoption is gradual but Sparrow, Trezor, Coldcard, and Bitcoin Core 25.0+ all support it.