M-of-N threshold signature verification combined with a relative timelock (CSV) in a single block. Collapses the common MULTISIG + CSV two-block pattern for time-delayed multi-party authorization.
Compound Non-Invertible| Field | Data Type | Size | Side | Description |
|---|---|---|---|---|
| threshold | NUMERIC | 1-4 B | Conditions | Required number of valid signatures (M) |
| timelock | NUMERIC | 1-4 B | Conditions | Relative timelock in blocks (BIP 68 sequence value) |
| scheme | SCHEME | 1 B | Conditions | Signature scheme selector (Schnorr, ECDSA, or PQ) |
| pubkey[0..N] | PUBKEY | 32-33 B each | Witness | N public keys (each verified against Merkle leaf via merkle_pub_key) |
| signature[0..M] | SIGNATURE | 64-65 B each | Witness | M valid signatures (empty sigs for non-participating keys) |
Public keys folded into Merkle leaf via merkle_pub_key (PubkeyCountForBlock = N). No key fields in conditions.
| Condition | Result |
|---|---|
| Missing required fields | ERROR |
| Threshold M = 0 or M > N | ERROR |
| Merkle leaf verification fails for any key | UNSATISFIED |
| Fewer than M valid signatures | UNSATISFIED |
| CSV sequence check fails | UNSATISFIED |
| M+ sigs valid AND timelock elapsed | SATISFIED |
{
"type": "TIMELOCKED_MULTISIG",
"inverted": false,
"fields": [
{ "type": "PUBKEY", "hex": "02abc1...33 bytes" },
{ "type": "PUBKEY", "hex": "03def2...33 bytes" },
{ "type": "PUBKEY", "hex": "02789a...33 bytes" },
{ "type": "NUMERIC", "value": 2 },
{ "type": "NUMERIC", "value": 144 },
{ "type": "SCHEME", "value": 1 }
]
}