Payment stream
Last updated
Last updated
A payment stream allows you to stream payments of a particular token to one or many recipients in an automated way.
As a first step you need to create a payment stream collection. This is a smart contract that will contain all your individual streams for different recipients of the same token.
The underlying technological concept is a non-fungible token (NFT). Therefore the basic attributes are similar:
Name: this could be something like "ABC Corp salaries 2024USDC"
Symbol: this is a short form of the name, e.g. "ABCsal24U"
Token contract address: this is the contract address of the token that you want to stream. Note that within one collection you can only stream one particular type of token. If you pay salaries in different tokens / currencies, you will need to create a separate collection for each currency.
After you created the payment stream collection, you will see it in the overview. From there you can add individual streams to the collection.
From the Manage Stream Collection part you can add and manage streams. You can also top up the collection with tokens from here and withdraw tokens that haven't been transferred to the recipients, yet.
For each individual payment stream you need to define:
Recipient address: this is the address that will receive the tokens from this stream
Payment start time: from this moment onward the payment stream will be calculated. This can also be in the past. Let's assume an employee started on October 1st and you only create the stream on October 20th, you can date it back to October 1st. That way the employee will receive the full payment for October.
Payment rate per average month: this is the amount of tokens that is streamed per month. Note that this amount is broken down in the background into a payment per second. Therefore smaller rounding errors on daily / weekly / monthly values may occur.
It's important to note that for the token recipients to actually get their tokens someone needs to click one of the two options:
Transfer tokens to recipients: this will transfer all the tokens that have been streamed to this moment to the respective recipients. All tokens for all streams of this collection will be transferred.
Transfer: this will only initiate the transfer of tokens for all streams of the particular recipient that you clicked on.
Anybody can click the transfer buttons. Note that when you do that, you will also pay the gas fees for the respective transactions.
If the stream collection doesn't have enough tokens, the transfers will not happen. You will need to add a sufficient amount of tokens to the collection and initiate the transfer again.
The streaming will however continue even if there isn't a sufficient balance. This means you can always catch up with the transfer after you topped up tokens.