Script types

This is an overview script types used in transaction Input and Outputs.

They are defined in main.py

Locking scripts

Scripts lock funds in transaction outputs (UTXO’s). Also called ScriptSig.

Lock Script Script to Unlock Encoding Key type / Script Prefix BTC
p2pkh Pay to Public Key Hash base58 Public key hash 1
p2sh Pay to Script Hash base58 Redeemscript hash 3
p2wpkh Pay to Wallet Pub Key Hash bech32 Public key hash bc
p2wsh Pay to Wallet Script Hash bech32 Redeemscript hash bc
multisig Multisig Script base58 Multisig script 3
pubkey Public Key (obsolete) base58 Public Key 1
nulldata Nulldata n/a OP_RETURN script n/a

Unlocking scripts

Scripts used in transaction inputs to unlock funds from previous outputs. Also called ScriptPubKey.

Locking sc. Name Unlocks Key type / Script
sig_pubkey Signature, Public Key p2pkh Sign. + Public key
p2sh_multisig Pay to Script Hash p2sh, multisig Multisig + Redeemscript
p2sh_p2wpkh Pay to Wallet Pub Key Hash p2wpkh PK Hash + Redeemscript
p2sh_p2wsh Multisig script p2wsh Redeemscript
signature Sig for public key (old) pubkey Signature

Bitcoinlib script support

The ‘pubkey’ lockscript and ‘signature’ unlocking script are ancient and not supported by BitcoinLib at the moment.

Using different encodings for addresses then the one listed in the Locking Script table is possible but not adviced: It is not standard and not sufficiently tested.