Stream money continuously on Canton.
OpenFluid is the shared infrastructure Canton teams use to move money over time, without rebuilding streaming logic for every product.
The product view reflects the same stream state the contract uses.
The ledger and product UI are reading from the same source of truth.
Operators can act without creating a separate state model.
Create, pause, resume, top up, cancel, and settle one reusable stream.
App, ledger, and ops read the same live stream status.
Private-by-default contract logic stays close to the network.
Teams keep rebuilding the same payment plumbing
OpenFluid turns stream logic into one reusable protocol primitive instead of a custom feature for every payroll, billing, or grants app.
Shows the stream as active and ready.
The contract state has already changed.
The team is checking logs and support tools.
Every product rebuilds the same stream lifecycle, read surface, and controls.
The app says active while the ledger is already paused.
Top-ups land late and the stream runs dry.
A cancelled stream still shows up as live.
Define the stream once, then reuse it everywhere
Create a stream, let money flow, then settle on demand without recreating contract logic for every product.
Make any CIP-56 asset streamable with StreamToken.
Use one contract model for payroll, subscriptions, grants, and vesting.
Read live balances and actions without shadow state or manual reconciliation.
Payment workflows OpenFluid supports
The same primitive covers payroll, subscriptions, grants, vesting, revenue sharing, and treasury-controlled release on one reusable rail.
Payroll and contractor payouts
Launch payroll products on Canton in days, not months.
Talk to the teamPay teams or revenue-share groups from one treasury flow.
Start, pause, top up, settle, and cancel from one contract state.
Subscriptions and recurring billing
Ship billing that follows live payment state, not invoice polling.
Expose live balances, status, and lifecycle state to the product.
Create and manage streams from product code, not custom admin tools.
Grants and vesting
Release funds on milestones or schedules without manual reconciliation.
Gate release on approvals or external signals.
Support cliffs, unlocks, and treasury-controlled release.
The contract surface behind OpenFluid
StreamToken, StreamAgreement, DistributionPool, ConditionalStream, StreamVault, and policy hooks give Canton builders a reusable streaming layer for payroll, billing, grants, vesting, and treasury release.
Daml is the contract language. CIP-56 is the asset standard that StreamToken makes streamable.
StreamAgreement
Core two-party contract for sender, recipient, asset, rate, buffer, and lifecycle actions.
StreamToken
CIP-56-compatible wrapper that makes a Canton asset streamable.
DistributionPool
One sender, many recipients for payroll, revenue share, and batch payout.
ConditionalStream
Milestone-gated or oracle-conditioned release with programmable triggers.
StreamVault
Escrow-backed release for vesting, grants, and treasury-controlled unlocks.
Policy hooks
Optional allowlists, operator controls, and external checks for teams that need them.
Proof in the product
Payroll, subscriptions, and grants all use the same stream primitive. We can walk you through the workflow live.
Request a walkthroughLaunch compensation streams without shadow state
Keep access aligned to live payment state
Release funds on milestones or approvals
See OpenFluid running on Canton
Come with a Canton use case and we’ll show you exactly how OpenFluid fits.
We keep the form simple and only ask for the basics.