Block Reference
P2TR_LEGACY
Legacy Family
TYPE 0x0906 · LEGACY FAMILY

P2TR_LEGACY

Legacy P2TR key-path (Taproot) wrapped as a typed Ladder Script block. Key-path spend — same evaluation as SIG block. Closes key-path data surfaces.

Legacy Non-Invertible
P2TR_LEGACY KEY-PATH VERIFY Delegates to EvalSigBlock (Schnorr default)
FieldData TypeSizeSideDescription
scheme SCHEME 1 B Conditions Signature scheme identifier (optional, Schnorr default)
pubkey PUBKEY 32 B Witness X-only public key (Taproot key-path)
signature SIGNATURE 64-65 B Witness Schnorr signature over the transaction sighash

Public key folded into Merkle leaf via merkle_pub_key (PubkeyCountForBlock = 1). No key field in conditions.

Conditions side (in scriptPubKey):

0x0906 0 2 SCHEME · 1B = 7 bytes

Witness side (in input witness):

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

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

1. Verify witness PUBKEY against Merkle leaf (merkle_pub_key). If mismatch → UNSATISFIED
2. Verify SIGNATURE against PUBKEY (Schnorr default). If invalid → UNSATISFIED
3. Signature valid → SATISFIED
ConditionResult
Missing PUBKEY or SIGNATUREERROR
Merkle leaf pubkey count mismatchERROR
Merkle leaf verification failsUNSATISFIED
Signature failsUNSATISFIED
Signature validSATISFIED
Conditions (scriptPubKey)
{
  "type": "P2TR_LEGACY",
  "inverted": false,
  "fields": [
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "SCHEME", "hex": "01" }
  ]
}
Witness (input)
{
  "type": "P2TR_LEGACY",
  "inverted": false,
  "fields": [
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "SIGNATURE", "hex": "e5f6a7...64 bytes" }
  ]
}
Taproot Key-Path Migration
Wraps taproot key-path spends. For script-path, see P2TR_SCRIPT_LEGACY.
PQ-Ready Key Path
Key-path spend with SCHEME field enabling post-quantum signature migration.
← P2WSH_LEGACY P2TR_SCRIPT_LEGACY →