Skip to content
ecdsa.com

BIP-322 (generic signed message format)

The Bitcoin message-signing standard that proves control of any address type, including SegWit, Taproot and multisig, by signing a virtual transaction that spends from the address.
Also written asBIP-322BIP322generic signed message formatproof of funds

The message is hashed with the BIP-340 tagged hash BIP0322-signed-message; a virtual to_spend transaction commits to that hash and pays to the address's script, and a virtual to_sign transaction spends it. The signature is the witness (simple format, prefix smp), the whole to_sign transaction (full, ful) or a proof-of-funds PSBT (pof); the legacy BIP-137 format remains accepted for P2PKH. The empty message hashes to c90c269c4f8fcbe6880f72a721ddfbf1914268a794cbb21cfafee13770ae19f1.

Verification reuses ordinary script validation, so any script a wallet can spend from can be signed for. The specification is marked Complete in the BIPs repository; wallet and service support grew with Taproot and Ordinals use, but check each counterparty, as some still verify only BIP-137.

Standards and references

All terms