Block Reference
TIMER_OFF_DELAY
PLC Family
TYPE 0x0612 · PLC FAMILY

TIMER_OFF_DELAY

Off-delay timer. SATISFIED while the remaining count is greater than zero (hold-off period active). UNSATISFIED when remaining reaches zero (delay expired). Paired with RECURSE_MODIFIED to decrement each covenant spend.

PLC Invertible
TIMER_OFF_DELAY remaining > 0 = 0 remaining decrements each spend → 0 = expired
FieldData TypeSizeSideDescription
remainingNUMERIC1-4 BConditionsRemaining count before delay expires (decremented by RECURSE_MODIFIED each spend)

No witness fields required. RECURSE_MODIFIED on the same rung decrements remaining in the recursed output.

0x0612 0 1 NUMERIC · 3B Conditions = 9 bytes
0x0612 0 0 Witness = 4 bytes (empty block)
Total 13 bytes
1.Read remaining from NUMERIC field
2.If remaining > 0 → SATISFIED (still in delay period)
3.If remaining == 0 → UNSATISFIED (delay expired)
ConditionResult
Missing NUMERIC fieldERROR
remaining == 0UNSATISFIED
remaining > 0SATISFIED
Conditions (5 spends remaining in delay)
{
  "type": "TIMER_OFF_DELAY",
  "inverted": false,
  "fields": [
    { "type": "NUMERIC", "value": 5 }
  ]
}

This off-delay timer has 5 spends remaining. Each RECURSE_MODIFIED spend decrements the counter. While remaining > 0 the block is SATISFIED (delay active). Once it reaches 0, the delay has expired.

Cooling-Off Periods
After an action is triggered, the off-delay keeps a condition active for N more covenant iterations, providing a window for monitoring or intervention before the condition expires.
Grace Periods Before Action
A grace period that counts down with each spend. While active, certain spending paths remain available. Once expired, the covenant transitions to a different state.
Deactivation Delays
When a feature or authorization is being deactivated, the off-delay ensures it remains active for a defined number of iterations, preventing abrupt state changes in multi-party covenants.
← TIMER_CONTINUOUS LATCH_SET →