<>
represents data or script{}
represents data that must prefixed by OP_PUSHDATA[]
represents multiple{}
PubKey (pay-to-pubkey / P2PK)
Address: N/A
scriptPubKey: {pubKey} OP_CHECKSIG
scriptSig: {signature}
PubKeyHash (pay-to-pubkeyhash / P2PKH)
Address: Base58(0x00 <hash160 pubKey> <checksum>)
scriptPubKey: OP_DUP OP_HASH160 {hash160(pubKey)} OP_EQUALVERIFY OP_CHECKSIG
scriptSig: {signature} {pubKey}
ScriptHash (pay-to-scripthash / P2SH)
Address: Base58(0x05 <hash160 script> <checksum>)
scriptPubKey: OP_HASH160 {hash160(scriptPubKey2)} OP_EQUAL
scriptSig: [scriptSig2 ...] {scriptPubKey2}
MultiSig (pay-to-multisig / P2MS)
Address: N/A
scriptPubKey: m [pubKeys ...] n OP_CHECKMULTISIG
scriptSig: OP_0 [signatures ...]
OP_RETURN
Address: N/A
scriptPubKey: OP_RETURN {data}
scriptSig: N/A
Anyone-can-spend
Address: N/A
scriptPubKey: N/A
scriptSig: OP_TRUE
Transaction-puzzle
Address: N/A
scriptPubKey: OP_HASH256 {hash} OP_EQUAL
scriptSig: <data>