TYPE 0x0601 · PLC FAMILY

HYSTERESIS_FEE

Fee rate band check. SATISFIED if the transaction fee rate (sat/vB) falls within a configurable [low, high] band. Prevents fee overpayment and enforces economic constraints on spending. No Tapscript equivalent exists.

PLC Invertible
HYSTERESIS_FEE low ≤ fee_rate ≤ high < low > high fee_rate = (sum(inputs) - sum(outputs)) / vsize
FieldData TypeSizeSideDescription
high_sat_vbNUMERIC1-4 BConditionsUpper bound of the fee rate band (sat/vB)
low_sat_vbNUMERIC1-4 BConditionsLower bound of the fee rate band (sat/vB)

No witness fields required. Evaluation uses the transaction context (inputs, outputs, vsize) to compute fee rate.

0x0601 0 2 NUMERIC · 3B NUMERIC · 3B Conditions = 14 bytes
0x0601 0 0 Witness = 4 bytes (empty block)
Total 18 bytes
1.Collect conditions NUMERIC fields. Fewer than 2 → ERROR. ReadNumeric the first as high and the second as low; either undecodable → ERROR
2.Range/order check: high < 0, low < 0, or low > highUNSATISFIED
3.Require ctx.tx, ctx.spent_outputs, and ctx.tx_weight > 0; missing → ERROR (fail-closed).
4.Compute fee = Σ(spent_outputs[i].value) - Σ(tx.outputs[i].value). fee < 0UNSATISFIED
5.Compute vsize = (tx_weight + 3) / 4 (BIP 141 WITNESS_SCALE_FACTOR). vsize ≤ 0ERROR. Then fee_rate = fee / vsize — truncating integer division, so the consensus check uses the floor (sub-sat/vB precision is intentionally not enforced).
6.If low ≤ fee_rate ≤ highSATISFIED; else → UNSATISFIED
ConditionResult
Fewer than 2 NUMERIC fields, or either undecodableERROR
Missing tx / spent_outputs / tx_weight context, or vsize ≤ 0ERROR
high < 0, low < 0, or low > highUNSATISFIED
fee < 0 (outputs exceed inputs)UNSATISFIED
fee_rate below low or above highUNSATISFIED
low ≤ fee_rate ≤ highSATISFIED
Conditions (fee band 5-50 sat/vB)
{
  "type": "HYSTERESIS_FEE",
  "inverted": false,
  "fields": [
    { "type": "NUMERIC", "value": 50 },
    { "type": "NUMERIC", "value": 5 }
  ]
}

This creates a fee rate band of 5-50 sat/vB. Transactions with fee rates outside this range will fail the block check.

Fee Overpay Prevention
Covenant-locked UTXOs enforce a maximum fee rate, preventing accidental or malicious fee overpayment when spending from shared or automated wallets.
Fee Band Enforcement
Institutional treasury outputs can only be spent within a reasonable fee band, ensuring transactions are neither too cheap (risk of non-confirmation) nor too expensive.
Economic Constraint on Spending
Combined with other PLC blocks, fee hysteresis creates economic guardrails that prevent value extraction through inflated fees in automated covenant chains.