Block Reference
P2PKH_LEGACY
Legacy Family
TYPE 0x0902 · LEGACY FAMILY

P2PKH_LEGACY

Legacy P2PKH (pay-to-pubkey-hash) wrapped as a typed Ladder Script block. Verifies HASH160(pubkey) matches committed hash, then checks signature.

Legacy Non-Invertible
P2PKH_LEGACY HASH160 + SIG RIPEMD160(SHA256(pubkey)) + signature verify
FieldData TypeSizeSideDescription
hash160 HASH160 20 B Conditions RIPEMD160(SHA256(pubkey)) commitment. Node-computed — the user provides PUBKEY and the node computes this field automatically. Raw hash input is rejected.
pubkey PUBKEY 32-33 B Witness Public key — provided by the user. The node derives HASH160 from this key at creation time. Revealed at spend time.
signature SIGNATURE 64-65 B Witness Signature over the transaction sighash

Conditions side (in scriptPubKey):

0x0902 0 1 HASH160 · 20B = 26 bytes

Witness side (in input witness):

0x0902 0 2 PUBKEY · 33B SIGNATURE · 64B = 105 bytes
Total (conditions + witness) 131 bytes

With rung overhead included. Compressed pubkey (33B) case.

1. Compute HASH160(PUBKEY) = RIPEMD160(SHA256(PUBKEY)).
2. Compare computed hash to committed HASH160. If mismatch → UNSATISFIED
3. Verify SIGNATURE against PUBKEY via VerifySigFromFields. If invalid → UNSATISFIED
4. Signature valid → SATISFIED
ConditionResult
Missing HASH160, PUBKEY, or SIGNATUREERROR
HASH160 wrong size (not 20B)ERROR
HASH160(PUBKEY) != committed hashUNSATISFIED
Signature failsUNSATISFIED
Signature validSATISFIED
Conditions (scriptPubKey)
{
  "type": "P2PKH_LEGACY",
  "inverted": false,
  "fields": [
    { "type": "HASH160", "hex": "89abcd...20 bytes" }
  ]
}
Witness (input)
{
  "type": "P2PKH_LEGACY",
  "inverted": false,
  "fields": [
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "SIGNATURE", "hex": "e5f6a7...64 bytes" }
  ]
}
Legacy P2PKH Migration
The most common Bitcoin output type. Wrap existing P2PKH in typed blocks.
Hash-Based Key Binding
HASH160 commitment hides the pubkey until spend time, same as original Bitcoin P2PKH.
← P2PK_LEGACY P2SH_LEGACY →