Skip to main content
FlowGuard’s stream product supports multiple schedule families. Some are continuous, some are fixed-cadence milestones, and some are custom checkpoint plans. The frontend shape gallery maps directly to these covenant-backed families rather than simulating unlock curves off-chain.

Covenant Families

Schedule familyContractCore behavior
LINEARVestingCovenantContinuous pro-rata vesting between startTime and endTime
STEPVestingCovenantEqual milestone unlocks every stepInterval seconds
HYBRIDHybridVestingCovenantOne fixed upfront unlock, then linear vesting for the remaining balance
TRANCHETrancheVestingCovenantBounded custom unlock checkpoints with explicit cumulative amounts
RECURRINGRecurringPaymentCovenantFixed cadence payouts with optional refillable runway

Schedule Families

Linear

Best for open vesting and simple contributor schedules. Claims scale continuously with elapsed time.

Hybrid

Best for plans that need a meaningful first unlock before the remaining balance vests over time.

Milestone

Best for equal cadence releases such as monthly or quarterly unlocks.

Custom Tranche

Best for bounded custom schedules with non-uniform unlock weights and checkpoint timing.

Cliffs

Cliffs are supported where the contract family supports them:
  • LINEAR: no claims before cliffTimestamp; once the cliff passes, all value vested since startTime becomes claimable.
  • STEP: milestone releases begin only after the cliff has passed.
  • HYBRID: the upfront unlock checkpoint is itself the first enforced unlock event.
  • TRANCHE: the first tranche unlock effectively acts as the first claimable checkpoint.

Pause and Resume

FlowGuard records pause state in the NFT commitment rather than in a database-only field.
  • Vesting-based schedules advance their effective cursor when resumed, excluding paused time from future vesting calculations.
  • Recurring schedules pause the cadence clock and resume from the updated next payment window.

Transferability

Recipient transfer is available for transferable non-recurring vesting streams:
  • supported: LINEAR, STEP, HYBRID, TRANCHE
  • not supported: RECURRING
The contract updates the recipient hash in the mutable NFT state after a valid transfer transaction.

Refillable Runway

Refill is a recurring-only concept in the supported product surface today. A refillable recurring stream keeps the contract alive while the sender adds more runway using an explicit contract-aware refill transaction. A direct BCH send to the contract address is not the supported refill path.

State Model

All stream families share the same broad lifecycle:
  • PENDING after deployment, before contract funding is confirmed
  • ACTIVE while claims or payments can continue
  • PAUSED when sender controls have temporarily frozen progression
  • CANCELLED when the stream is terminated early
  • COMPLETED when the final state is settled on-chain
Use Stream Lifecycle for the shared status and flags model, and Streams API for the current create, control, and activity routes.