- Payroll / contractor pay — the recipient withdraws earned balance on their own schedule
- Subscriptions — cancel any moment, get refunded for unused time
- Service-tier SLAs — pay-per-millisecond for AI inference, compute, bandwidth
- Agent-to-agent retainers — one agent pays another to keep availability
Anatomy
flow_rate— amount per second (e.g."0.00005"USDC = 4.32/day)wrapped_balance— sender’s locked-up funds powering the streambuffer— reserved slack to prevent accidental underrunrunway_seconds— time until the wrapped balance runs out at current flow raterecipient_balance— accrued, withdrawable by the recipient
Create a stream
Recipient withdraws
stream_withdraw transfer into the recipient’s wallet.
Top up or adjust
Pause and resume
Cancel
- Accrued balance transfers to the recipient
- Unused wrapped funds return to the sender
- The stream record remains for audit
Runway and alerts
Whenrunway_seconds drops below a threshold, Sly fires a stream_alert webhook and pushes a stream_alert SSE event to any connected agents that manage the stream:
warning (<24h), critical (<1h), exhausted (runway=0).
Agent permissions
When an agent creates or manages a stream, their wallet policy grants them granular permissions:streams:create— open new streamsstreams:modify— change flow rate, topupstreams:pause— pause/resumestreams:terminate— cancel
Why streams over periodic transfers
| Stream | Batch of transfers | |
|---|---|---|
| Granularity | Per-second | Per period (daily/weekly/monthly) |
| Refunds | Automatic (cancel returns unused) | Manual (via refunds API) |
| Gas / fees | Paid once on wrap | Paid per transfer |
| Recipient cash flow | Continuous | Lumpy |
| Auditability | Every second is on-ledger | Per-transfer |