Down counter. SATISFIED while the count is greater than zero (can still decrement). Paired with RECURSE_MODIFIED to decrement each covenant spend. Once count reaches zero, the block becomes UNSATISFIED.
PLCInvertible
Ladder Diagram
Fields
Field
Data Type
Size
Side
Description
count
NUMERIC
1-4 B
Conditions
Current counter value (decremented by RECURSE_MODIFIED each spend)
Public key folded into Merkle leaf via merkle_pub_key (PubkeyCountForBlock = 1). No key field in conditions.
Wire Format Breakdown
0x063102NUMERIC · 3BConditions = 11 bytes
0x063102PUBKEY · 32BSIG · 64BWitness = 104 bytes
Total147 bytes
Evaluation Logic
1.Verify witness PUBKEY against Merkle leaf (merkle_pub_key). If missing or mismatch → ERROR
2.Read count from NUMERIC field. If no NUMERIC field → ERROR
3.If count < 0 → ERROR
4.If count > 0 → SATISFIED (counter active, can decrement)
This counter has 5 remaining uses. Each spend authorized by the event signer with RECURSE_MODIFIED decrements the count. After 5 spends, count reaches 0 and the block becomes UNSATISFIED.
Use Cases
Limited-Use Spending Authorization
A covenant that permits exactly N spends before the authorization expires. Each spend decrements the counter. Once exhausted, the spending path is permanently closed within the covenant chain.
Ticket Systems
Digital tickets represented as counter-gated covenants. Each use (spend + recurse) consumes one ticket. When all tickets are used, the covenant transitions to a terminal state.
Finite Resource Allocation
Allocate a fixed number of operations to a key holder. The counter tracks remaining allocations, ensuring the resource budget cannot be exceeded regardless of how the covenant is spent.