Skip to content

Spending Conditions

A spending condition defines a specific way to authorize a Bitcoin transaction from a wallet. Each condition specifies the required signers, the signature threshold, and an optional time lock. Wallets can have one or many spending conditions.

Every spending condition has four properties:

The number of signatures required out of the total signers. A 2-of-3 threshold means any 2 of the 3 assigned signers must approve.

The set of keys (devices) authorized to sign under this condition. These can be hardware wallets, system-managed keys, or any registered device.

An optional delay, measured in Bitcoin blocks, before the condition becomes spendable. A time lock of 0 means the condition is available immediately. Time locks use OP_CHECKSEQUENCEVERIFY (CSV), which counts blocks relative to when the UTXO was confirmed.

Common time lock values:

BlocksApproximate Duration
0Immediate
6~1 hour
144~1 day
1,008~1 week
4,320~1 month
52,560~1 year

One condition is marked as the primary spending condition. In Taproot vaults, the primary condition is used as the key path — the most efficient and private way to spend. All other conditions are placed in the Taproot script tree.

Hot wallets and single signature wallets have exactly one spending condition:

  • Threshold: 1-of-1
  • Signers: One key (system-managed or hardware device)
  • Time lock: None

Multisig wallets also typically have a single condition, but with a higher threshold:

  • Threshold: M-of-N (e.g., 2-of-3)
  • Signers: Multiple devices
  • Time lock: None

Taproot vaults are where spending conditions become powerful. A vault can define multiple conditions with different thresholds, signers, and time locks:

Primary: 1-of-1 (owner) → immediate, key path
Recovery A: 2-of-3 (family) → after 144 blocks
Recovery B: 3-of-4 (extended group) → after 52,560 blocks

Each condition is an independent spending path. Only one needs to be satisfied to authorize a transaction.

Time locks create a hierarchy of access. The primary condition is always available. Recovery conditions become available only after their specified number of blocks have passed since the UTXO was confirmed on-chain.

This means:

  1. The owner can always spend immediately using the primary condition
  2. If the owner is unavailable, the first recovery group can spend after the shorter time lock
  3. If both are unavailable, the final recovery group can spend after the longer time lock

Each new transaction (including sending funds to yourself) resets the time lock clock, since the UTXO confirmation time restarts.

Spending conditions use two policy types:

  • Single — One key required (threshold is 1-of-1)
  • Multi — Multiple keys with a configurable threshold (e.g., 2-of-3, 3-of-5)

When designing wallet policies:

  • Start simple — A single primary condition with no time lock covers most use cases
  • Add recovery gradually — One recovery condition with a reasonable time lock (1 week to 1 month) provides a safety net
  • Use diverse signers — Different hardware wallets from different manufacturers for each condition
  • Keep time locks practical — Too short and recovery keys could be used unexpectedly; too long and genuine recovery becomes impractical
  • Test with small amounts — Verify all spending paths work before committing significant funds