Skip to content
ecdsa.com

SIGHASH flags

The byte appended to a Bitcoin signature that selects which parts of the transaction it covers: ALL (0x01), NONE (0x02), SINGLE (0x03), optionally combined with ANYONECANPAY (0x80), plus the Taproot default 0x00.
Also written assighashSIGHASH_ALLSIGHASH_ANYONECANPAYsighash type

SIGHASH_ALL commits to all inputs and outputs and is what wallets use almost always; NONE leaves outputs open, SINGLE commits only to the output with the same index, and ANYONECANPAY lets others add inputs (crowdfunding-style). Taproot's SIGHASH_DEFAULT (0x00) behaves like ALL and saves the byte. BIP-143 (SegWit v0) and BIP-341 (Taproot) define how the digest is built, including input amounts, which lets hardware wallets verify fees.

Unusual flags in a PSBT are a red flag: a signer tricked into SIGHASH_NONE or SINGLE lets someone else redirect funds. Signers should refuse non-default flags unless the protocol needs them.

Standards and references

All terms