Skip to main content

What Are Release Conditions?

Release conditions are the rules that must all be satisfied before an agreement can be settled. You set them when you create the agreement and they cannot be changed afterward. They work like a checklist. Every item on the checklist must be ticked before funds move. One un-ticked item blocks settlement entirely.

The Conditions

Combining Conditions

You combine conditions using bitwise OR. The SDK provides presets for the most common combinations:

Choosing the Right Preset

FullConsent — Standard Escrow

Both parties deposit. Both parties must actively approve before funds release. Best for:
  • Freelance agreements (client approves after work is delivered)
  • Service agreements where both sides need to confirm

DepositOnly — Automatic Release

Both parties deposit. Settlement triggers automatically with no approval step. Best for:
  • Simple token swaps (both parties commit funds, swap happens automatically)
  • Situations where deposit itself signals agreement

TimelockEscrow — Time-Gated Release

Both parties deposit. Funds cannot move until a specified timestamp passes. Best for:
  • Vesting schedules
  • Delayed payment agreements
  • Any deal where time is the condition

Important Rule

You must include at least one condition. An agreement with releaseConditions = 0 cannot be settled — the contract will reject the settlement call.

Checking Conditions On-Chain