Use Cases
Contractor & Freelancer Payroll
Pay contributors by the second for time worked — no invoicing cycles, no delayed wire transfers.
Subscription Billing
Let subscribers pay continuously as they consume your service, with automatic stop if they cancel.
Grant Disbursement
Release grant funds over a defined vesting period so recipients earn as they deliver milestones.
AI Agent Compensation
Pay autonomous agents for completed compute tasks in real time, tied to their on-chain wallet.
How Streaming Works
- Deposit — The sender locks a total USDC amount into the streaming contract.
- Stream — The contract releases funds to the recipient at
ratePerSecondevery second. - Withdraw — The recipient calls withdraw at any time to claim their vested balance.
- Stop — The sender can stop the stream; unstreamed USDC is returned to the sender.
Creating a Stream
REST API Parameters
string
required
The wallet address of the sender. This wallet must hold sufficient USDC to cover
totalDeposited.string
required
The wallet address of the recipient. They will withdraw vested USDC to this address.
string
required
USDC released to the receiver per second, expressed as a 6-decimal string, e.g.
"0.000193".string
required
Total USDC to lock into the stream, e.g.
"500.00". The stream ends naturally when this balance is exhausted.string
URL to receive stream lifecycle events. See Webhook Events below.
Managing a Stream
Stop a Stream
The sender calls the stop endpoint to halt the flow. Unstreamed USDC is returned to the sender’s wallet.Withdraw Vested Balance
The recipient withdraws all USDC that has vested since the stream started (or since their last withdrawal).List Streams
Query active or historical streams by sender, receiver, or status.number
USDC already streamed to the receiver as of now.
number
USDC still locked in the contract.
number
Estimated seconds until the stream exhausts the deposit.
number
Percentage of the total deposit that has been streamed.
Stream Lifecycle
Webhook Events
Example Payload — stream.created
Minimum deposit and rate precision. USDC on Arc testnet uses 6 decimal places. Express all amounts and rates to at most 6 decimal places. The minimum meaningful
ratePerSecond is 0.000001 USDC/s (1 micro-USDC per second). Rates with more than 6 decimal places are truncated by the contract.
