Signature verification combined with a relative timelock (CSV) in a single block. Collapses the common SIG + CSV two-block pattern, saving 8 bytes on wire.
Compound Non-Invertible| Field | Data Type | Size | Side | Description |
|---|---|---|---|---|
| scheme | SCHEME | 1 B | Conditions | Signature scheme identifier (0x01 = Schnorr, 0x02 = ECDSA). Routes to post-quantum verifier when PQ scheme set. |
| timelock | NUMERIC | 1-4 B | Conditions | Relative timelock in blocks (BIP 68 sequence value) |
| 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) |
Public key folded into Merkle leaf via merkle_pub_key (PubkeyCountForBlock = 1). No key field in conditions.
Conditions side (in scriptPubKey):
Witness side (in input witness):
Compared to separate SIG + CSV blocks: 157 bytes → 149 bytes (saves 8B / 5.1%)
| Condition | Result |
|---|---|
| Missing required fields | ERROR |
| Merkle leaf pubkey count mismatch | ERROR |
| Negative timelock value | ERROR |
| Signature size out of range | ERROR |
| Merkle leaf verification fails | UNSATISFIED |
| Signature verification fails | UNSATISFIED |
| CSV sequence check fails | UNSATISFIED |
| Signature valid AND timelock elapsed | SATISFIED |
{
"type": "TIMELOCKED_SIG",
"inverted": false,
"fields": [
{ "type": "PUBKEY", "hex": "02abc1...33 bytes" },
{ "type": "SCHEME", "hex": "01" },
{ "type": "NUMERIC", "value": 144 }
]
}{
"type": "TIMELOCKED_SIG",
"inverted": false,
"fields": [
{ "type": "PUBKEY", "hex": "02abc1...33 bytes" },
{ "type": "SIGNATURE", "hex": "30440...64 bytes" },
{ "type": "NUMERIC", "value": 144 }
]
}