TYPE 0x0706 · COMPOUND FAMILY
TIMELOCKED_MULTISIG
K-of-N threshold (v2) plus relative timelock (CSV) in one block. The N pubkeys are committed via an inner Merkle root in conditions; at spend time the witness reveals K signers as (PUBKEY, MERKLE_PROOF, SIGNATURE) triplets and the CSV must elapse. Unrevealed slots cost no on-chain bytes.
Ladder Diagram
Fields
| Field | Data Type | Size | Side | Description |
|---|---|---|---|---|
| threshold (K) | NUMERIC | 1 B | Conditions | Required number of valid signatures. K must satisfy 1 ≤ K ≤ N (N = supplied pubkey count, max 16). Out-of-range K is rejected at fund time by createrungtx (F25) and at consensus by the spend-time evaluator. |
| timelock | NUMERIC | 1-4 B | Conditions | Relative timelock in blocks (BIP 68 sequence value) |
| scheme | SCHEME | 1 B | Conditions | Signature scheme shared by all signers (Schnorr, ECDSA, FALCON-512, …) |
| pubkey_root | HASH256 | 32 B | Conditions | Inner Merkle root over the N pubkey set (tagged-hash domain LadderMultisigPubkey/v1) |
| pubkey[i] | PUBKEY | 32-33 B | Witness | Position i of K signer triplets — revealed pubkey |
| merkle_proof[i] | MERKLE_PROOF | 0-128 B | Witness | Inclusion proof for pubkey[i] against pubkey_root (depth ≤ 4) |
| signature[i] | SIGNATURE | 64-65 B | Witness | Signature under pubkey[i] |
v2 inner-Merkle commitment + CSV. Conditions size is fixed at ~39 B regardless of N; witness scales as K · (PUBKEY + MERKLE_PROOF + SIGNATURE) with proof depth growing logarithmically in N (max 128 B per signer for N=16).
Evaluation Logic
1.
Read K from NUMERIC[0] and pubkey_root from HASH256. Witness must contain exactly K (PUBKEY, MERKLE_PROOF, SIGNATURE) triplets → otherwise UNSATISFIED.
2.
For each triplet: verify the MERKLE_PROOF binds the revealed PUBKEY to pubkey_root. Failure → UNSATISFIED.
3.
For each triplet: verify the SIGNATURE under that PUBKEY for the SIGHASH_LADDER message. Failure → UNSATISFIED.
4.
Reject if any pubkey is revealed twice (duplicate signers cannot satisfy K).
5.
Verify CheckSequence(timelock). Failure → UNSATISFIED.
6.
All K verified, no duplicates, timelock elapsed → SATISFIED.
Return Values
| Condition | Result |
|---|---|
| Missing required fields, K=0, or K > MAX_PUBKEYS_PER_MULTISIG (16) | ERROR |
| Witness field count ≠ 3 × K, or non-triplet shape | UNSATISFIED |
| Any MERKLE_PROOF fails to bind pubkey to pubkey_root | UNSATISFIED |
| Any SIGNATURE fails to verify under its revealed PUBKEY | UNSATISFIED |
| Duplicate pubkey revealed in two triplets | UNSATISFIED |
| CSV sequence check fails | UNSATISFIED |
| K verified, distinct, timelock elapsed | SATISFIED |
JSON Wire Format
Conditions (v2 inner-Merkle layout, committed in the rung leaf)
{
"type": "TIMELOCKED_MULTISIG",
"inverted": false,
"fields": [
{ "type": "NUMERIC", "value": 2 },
{ "type": "NUMERIC", "value": 144 },
{ "type": "SCHEME", "hex": "01" },
{ "type": "HASH256", "hex": "... pubkey_root over the N pubkeys, tagged-hash domain LadderMultisigPubkey/v1 ..." }
]
}Witness (K signer triplets, strict-ascending pubkey order)
{
"type": "TIMELOCKED_MULTISIG",
"fields": [
{ "type": "PUBKEY", "hex": "02abc1... signer 1 pubkey" },
{ "type": "MERKLE_PROOF", "hex": "... inclusion proof against pubkey_root ..." },
{ "type": "SIGNATURE", "hex": "... signer 1 signature ..." },
{ "type": "PUBKEY", "hex": "03def2... signer 2 pubkey" },
{ "type": "MERKLE_PROOF", "hex": "... inclusion proof ..." },
{ "type": "SIGNATURE", "hex": "... signer 2 signature ..." }
]
}Use Cases
Lightning Penalty Branches
Revocation paths in commitment transactions require a 2-of-2 multisig with a CSV delay. TIMELOCKED_MULTISIG encodes this in one block, saving wire overhead across every commitment transaction update.
Vault Recovery with Cooling Period
2-of-3 recovery multisig with a mandatory 1008-block (1 week) delay. Prevents immediate fund extraction even with two compromised keys, giving the vault owner time to respond.
Corporate Treasury Governance
3-of-5 board approval with a 24-hour cooling period before funds move. Combines multi-party authorization with temporal safety in a single block.