Skip to main content
Protocol for real-time finance enabling continuous token streams (per-second payments), distributions, and composable Super Tokens.

What it offers

  • createFlow: Create a continuous payment stream
  • updateFlow: Update the flow rate of an existing stream
  • deleteFlow: Stop/delete a payment stream

Notes

  • Flowrate is in tokens per second (int96) - e.g. 1e18 / (30 * 86400) for ~1 token/month
  • Uses Super Tokens - wrapped ERC-20s with streaming capability (wrap before streaming)
  • The CFAForwarder has one address on every chain; the Host’s address differs per chain
  • CFAForwarder is the simplified interface; host is the core protocol contract
  • Streams are continuous - balance updates every second without transactions
  • Sender must maintain sufficient Super Token balance; otherwise stream gets liquidated
  • userData allows passing arbitrary data for composability with other contracts

Its names in a program

On Ethereum, Superfluid is a namespace: its contracts need no import.

Deployments

ABI

CFAForwarderABI

import CFAForwarderABI from "./protocols/superfluid/CFAForwarderABI.json"; Speaks for: cfaForwarder.
  • createFlow(address token, address sender, address receiver, int96 flowrate, bytes userData) returns (bool)
  • updateFlow(address token, address sender, address receiver, int96 flowrate, bytes userData) returns (bool)
  • deleteFlow(address token, address sender, address receiver, bytes userData) returns (bool)

Next steps