Block Reference
SIG
Signature Family
TYPE 0x0001 · SIGNATURE FAMILY

SIG

Single signature verification. Supports Schnorr (BIP-340), ECDSA, and post-quantum schemes via the SCHEME field. The fundamental spending primitive.

Signature Non-Invertible
SIG SIG VERIFY Schnorr / ECDSA / PQ via SCHEME routing
FieldData TypeSizeSideDescription
pubkey PUBKEY 32-33 B Witness Public key (x-only 32B or compressed 33B)
signature SIGNATURE 64-65 B Witness Schnorr signature (64B) or with sighash byte (65B). ECDSA signatures are 8-72B.
scheme SCHEME 1 B Conditions Signature scheme identifier (0x01 = Schnorr, 0x02 = ECDSA). Routes to post-quantum verifier when PQ scheme set.

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

Conditions side (in scriptPubKey):

0x0001 0 2 SCHEME · 1B = 7 bytes

Witness side (in input witness):

0x0001 0 2 PUBKEY · 32B SIGNATURE · 64B = 104 bytes
Total (conditions + witness) 145 bytes

With rung overhead included. Minimal Schnorr case (x-only pubkey, no sighash byte).

1. Verify witness PUBKEY against Merkle leaf (merkle_pub_key). If mismatch → UNSATISFIED
2. Check for SCHEME field. If PQ scheme identifier present, route to post-quantum verifier.
3. Verify SIGNATURE against PUBKEY. Schnorr if 64-65B, ECDSA if 8-72B. If invalid → UNSATISFIED
4. Signature valid → SATISFIED
ConditionResult
Missing PUBKEY or SIGNATUREERROR
Merkle leaf pubkey count mismatchERROR
Signature size out of rangeERROR
Merkle leaf verification failsUNSATISFIED
Signature verification failsUNSATISFIED
Signature validSATISFIED
Conditions (scriptPubKey)
{
  "type": "SIG",
  "inverted": false,
  "fields": [
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "SCHEME", "hex": "01" }
  ]
}
Witness (input)
{
  "type": "SIG",
  "inverted": false,
  "fields": [
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "SIGNATURE", "hex": "30440...64 bytes" }
  ]
}
Single-Key Spending
The most common spending condition. A single public key controls a UTXO. The owner provides a signature to spend. Equivalent to P2PKH or P2WPKH but with pubkey commitment privacy.
Hot Wallet Authorization
Hot wallet key signs outgoing transactions immediately. The SIG block is the innermost authorization primitive used in more complex ladder constructions like TIMELOCKED_SIG or HTLC.
Key Delegation
Delegate spending authority to a specific key. Combined with other blocks on different rungs, enables flexible authorization policies where one rung requires only a single signature.
← All Blocks MULTISIG →