Overview
Freeze is a standalone condition that blocks release when a payment is frozen. It manages freeze/unfreeze state with configurable authorization and optional duration-based auto-expiry. Type: Per-deployment via FreezeFactoryArchitecture
- Implements
ICondition - Freeze/unfreeze authorization via
IConditioncontracts (passed to constructor) - Optionally linked to EscrowPeriod to restrict freezing to during the escrow window
Logic
Deployment
Deploy via FreezeFactory:Composition Patterns
Freeze Duration
- Payment frozen at time
T - Freeze expires at
T + freezeDuration - After expiry, payment is automatically unfrozen
- Can be manually unfrozen earlier by the authorized party
- Duration of
0means permanent freeze (until manually unfrozen)
| Duration | Use Case |
|---|---|
| 1 day | Quick investigation period |
| 3 days | Standard fraud check window |
| 5-7 days | Extended investigation |
| 14+ days | Complex dispute resolution |
Use Cases
- Buyer protection — Payer freezes suspicious payments during escrow
- Dispute holds — Arbiter freezes payments pending investigation
- Compliance — Compliance officer freezes flagged transactions
Gas
Cost: ~20k gas per freeze/unfreeze (oneSSTORE). The check() call is a view with one SLOAD.
Next Steps
EscrowPeriod
Add time-based release restrictions.
Factories
Deploy Freeze via FreezeFactory.
