OpenFluid

OpenFluid

Payment Streaming Primitive for Canton

Reusable payment streaming layer for payroll, subscriptions, grants, and treasury flows on Canton Network.

Completed
#Canton Network#Daml#Payment Streaming#CIP-56
August 2024 - December 2024

About the Project

OpenFluid is the shared infrastructure Canton teams use to move money over time without rebuilding streaming logic for every product. It turns stream logic into one reusable protocol primitive instead of a custom feature for every payroll, billing, or grants app. Built on Canton using Daml and CIP-56 asset standard.

Problem Statement

Teams keep rebuilding the same payment plumbing. Every product rebuilds the same stream lifecycle, read surface, and controls. Ledger and UI drift causes the app to say active while the ledger is already paused.

Key Features

1

StreamToken - CIP-56 compatible wrapper making Canton assets streamable

2

StreamAgreement - Core two-party contract for sender, recipient, rate, buffer, and lifecycle

3

DistributionPool - One sender, many recipients for payroll and revenue share

4

ConditionalStream - Milestone-gated or oracle-conditioned release

5

StreamVault - Escrow-backed release for vesting, grants, and treasury-controlled unlocks

6

Live read surface - Balances, status, and actions in one unified view

Tech Stack

Daml
Canton Network
CIP-56
TypeScript
Node.js

Highlights

One contract model replaces five one-off builds for payroll, billing, grants, and vesting
Private-by-default contract logic stays close to the Canton network
Shared state: App, ledger, and ops read the same live stream status
Production-ready primitives: StreamToken, StreamAgreement, DistributionPool, ConditionalStream, StreamVault