Skip to main content
Recurring payments are the fixed-cadence schedule family in FlowGuard. They are enforced by RecurringPaymentCovenant and appear both as standalone payment flows and as recurring stream templates inside the shared stream builder.

What Recurring Means in FlowGuard

A recurring schedule locks value into a covenant and releases a fixed amount every interval. The cadence is explicit and the contract enforces it on-chain. The current product supports:
  • weekly recurring payouts
  • monthly recurring payouts
  • quarterly recurring payouts
  • custom cadence where the interval divides the full schedule evenly
  • refillable recurring runway for open-ended payroll-style streams

Core Parameters

ParameterDescription
amountPerIntervalamount released each payment window
intervalSecondsseconds between unlock windows
startTimestampwhen the first payment window can begin
endTimestamphard stop for fixed recurring schedules, or 0 / null in open runway mode
recipientHashimmutable recipient for the recurring contract
totalAmountfunded recurring runway tracked for the covenant

Permissionless Payout Logic

The recurring payout path is permissionless at the contract level. The contract only allows release when the cadence window has elapsed and the stream is active.
tx.locktime >= next_payment_timestamp
status == ACTIVE
That means:
  • the app can build the claim transaction
  • an executor service can monitor due recurring payments
  • the covenant still enforces the amount and cadence

Fixed Recurring Schedule

In a fixed recurring schedule:
  • the total schedule duration is known at creation
  • the interval must divide that duration evenly
  • the contract pays a fixed amount per interval
  • the stream completes once the funded recurring plan is exhausted

Refillable Recurring Runway

In refillable recurring mode:
  • the cadence is fixed at creation
  • the sender can extend runway later with the explicit refill flow
  • the stream remains the same recurring covenant
  • the detail page exposes refill controls and runway metadata
This is the BCH-native way FlowGuard handles ongoing payroll-style recurring streams without redeploying a new contract every time more runway is needed.

Pause and Resume

Recurring streams can be paused and resumed by the sender when the stream is cancelable. When resumed:
  • the recurring window is recalculated from the resume point
  • backdated recurring windows are not paid for the paused period

Recipient Transfer

Recurring streams do not support recipient transfer in the supported product surface today. If you need recipient reassignment, use one of the transferable vesting-style families instead.