Streaming & Refunds
Streaming payments apply to the restaker share of service fees when a service has a TTL and streaming is enabled in the deployment. The goal is to distribute the restaker share over the lifetime of the service (value × time), rather than all at once.
When Streaming Is Used
When the protocol routes the restaker share to ServiceFeeDistributor, the distributor checks:
- service has
ttl > 0 StreamingPaymentManageris configured
If both are true, it creates a stream from max(now, createdAt) to createdAt + ttl. Otherwise, it distributes immediately.
Stream Creation and Drips
Streams are tracked per (serviceId, operator) and drip linearly over time. Drip operations transfer a chunk of funds back to the distributor so it can distribute using the current delegation scores.
Operational notes:
- Drips are lazy: they are triggered when the distributor is invoked (for example, on delegation changes or when a delegator claims rewards).
- Before delegation scores change, the distributor drips outstanding streams so rewards are distributed under the scores that were active during the streamed interval.
Termination Refunds
If a service is terminated early, remaining (undripped) streamed balances are refunded to a recipient designated by the protocol.
What Customers Should Expect
- Streaming affects the timing of restaker distribution, not whether fees are owed.
- Ending a service early can refund unearned streamed portions (deployment-dependent policy and refund recipient).