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.
PLCInvertible
Ladder Diagram
Fields
Field
Data Type
Size
Side
Description
remaining
NUMERIC
1-4 B
Conditions
Remaining 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.
Wire Format Breakdown
0x061201NUMERIC · 3BConditions = 9 bytes
0x061200Witness = 4 bytes (empty block)
Total13 bytes
Evaluation Logic
1.Read remaining from NUMERIC field
2.If remaining > 0 → SATISFIED (still in delay period)
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.
Use Cases
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.