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.

Compound Non-Invertible
TIMELOCKED_MULTISIG K-of-N SIG + CSV CHECK + SCHEME K-of-N inner-Merkle threshold + timelock: all checks must pass
FieldData TypeSizeSideDescription
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).

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.
ConditionResult
Missing required fields, K=0, or K > MAX_PUBKEYS_PER_MULTISIG (16)ERROR
Witness field count ≠ 3 × K, or non-triplet shapeUNSATISFIED
Any MERKLE_PROOF fails to bind pubkey to pubkey_rootUNSATISFIED
Any SIGNATURE fails to verify under its revealed PUBKEYUNSATISFIED
Duplicate pubkey revealed in two tripletsUNSATISFIED
CSV sequence check failsUNSATISFIED
K verified, distinct, timelock elapsedSATISFIED
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 ..." }
  ]
}
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.