Skip to main content

Access Control

With the exception of the admin functions, all functionality in Sablier is related to one or more streams.

This article will provide a comprehensive overview of the actions that can be performed on streams once they are created, as well as the corresponding user permissions for each action.

note

Every stream has a sender, a recipient, and possibly multiple NFT operators, with the recipient being the owner of the NFT.

Overview

The table below offers a quick overview of the access control for each action that can be performed on a stream.

ActionSenderRecipientOperator(s)
Burn NFT
Cancel
Cancel Multiple
Renounce
Transfer NFT
Withdraw
Withdraw Multiple

Burn NFT

Either the recipient or an approved operator can burn the NFT associated with a stream.

burn
approve
burn
Recipient
Operator
NFT

Cancel

Either the sender or the recipient can cancel a stream.

cancel
cancel
Sender
Recipient
Stream

Cancel Multiple

Either the sender or the recipient can cancel multiple streams.

  • The caller must be either the sender or the recipient of each stream.
cancelMultiple
cancelMultiple
Sender
Recipient
Multiple Streams

Renounce

Only the sender can renounce a stream.

renounce
Sender
Stream

Transfer NFT

Either the recipient or an approved operator can transfer the NFT associated with a stream.

transfer
approve
transfer
Recipient
Operator
NFT

Withdraw

The assets in a stream can be withdrawn by the sender, recipient, or an approved NFT operator.

  • Both the recipient and the NFT operator have the option to specify a custom address to withdraw the assets to.
  • The sender, however, is limited to withdrawing assets directly to the recipient's address.
withdraw
withdraw
approve
withdraw
Sender
Recipient
Operator
Stream

Withdraw Multiple

Either the recipient or an approved NFT operator can withdraw assets from multiple streams.

  • The caller has the option to specify a custom address to withdraw the assets to.
  • The caller must be either the recipient or an approved NFT operator of each stream.
withdrawMultiple
approve
withdrawMultiple
Recipient
Operator
Multiple Streams