Skip to main content
Use the shared stream builder to create schedules for contributor vesting, payroll, grants, retainers, and treasury releases. The same builder is used in personal and organization contexts.

Before You Start

  • Connect a BCH wallet that can sign FlowGuard transactions
  • Decide whether you are launching from a personal workflow or a treasury / vault workflow
  • Choose the asset type: BCH or CashTokens
  • Choose the schedule family you actually need

Supported Stream Families

FamilyBest forKey inputs
LINEARSimple continuous vestingtotal amount, start, end, optional cliff
HYBRIDUpfront unlock plus linear tailtotal amount, start, end, unlock checkpoint, upfront percentage
RECURRINGPayroll and retainerstotal amount, cadence, duration, optional refillable runway
STEPEqual milestone unlockstotal amount, cadence, duration, optional cliff
TRANCHECustom staged unlockstotal amount, custom checkpoint schedule

Flow in the App

1

Open the builder

Navigate to Streams -> Create Stream for personal workflows, or launch from a vault or DAO treasury stream view for organization workflows.
2

Choose a template or family

Use the shape gallery if you want a guided starting point. Templates load real schedule parameters into the builder, including linear + cliff, hybrid, recurring runway, milestone cadence, and custom tranche plans.
3

Set the schedule

Configure the fields required by the chosen family:
  • LINEAR: start, end, optional cliff
  • HYBRID: start, end, unlock checkpoint, upfront percentage
  • RECURRING: start, end, interval seconds, optional refillable toggle
  • STEP: start, end, milestone cadence
  • TRANCHE: custom unlock checkpoints and percentages
4

Review the preview

The builder shows a contract-truthful schedule preview. This preview changes when you change cadence, cliff, unlock timing, or tranche geometry.
5

Create the stream record

Click Create Stream. The app calls POST /api/streams/create, stores the stream in PENDING, and returns the contract address and funding requirements.
6

Fund the contract

Sign the funding transaction from the wallet. Once the funding transaction confirms, the app calls confirm-funding and the stream becomes ACTIVE.

Example Request

{
  "sender": "bchtest:q...",
  "recipient": "bchtest:q...",
  "tokenType": "BCH",
  "totalAmount": 12,
  "streamType": "HYBRID",
  "startTime": 1761955200,
  "endTime": 1793491200,
  "cancelable": true,
  "scheduleTemplate": "hybrid-upfront-linear",
  "hybridUnlockTimestamp": 1769817600,
  "hybridUpfrontPercentage": 25,
  "launchContext": {
    "source": "dao",
    "title": "Contributor runway",
    "description": "Treasury-approved contributor vesting lane",
    "preferredLane": "contributors"
  }
}

Notes by Family

Recurring

  • intervalSeconds is required
  • the interval must divide the schedule duration evenly
  • refillable is only valid for recurring streams

Tranche

  • the tranche schedule must be bounded and internally valid
  • the app and backend normalize tranche schedules before deployment
  • the first unlock checkpoint becomes the effective first claimable event

Hybrid

  • the upfront unlock time must be after startTime and before endTime
  • the upfront percentage must be greater than 0 and less than 100

After Creation

Once active, the stream detail page becomes the operational surface for:
  • claim
  • pause / resume
  • refill for recurring runway streams
  • transfer recipient rights for transferable non-recurring streams
  • cancellation where allowed
Use Streams API for the current payload and route reference.