A Superfluid powered ERC777 token distributor to help easily collect & distribute donations/earnings at scale!
This project is about creating the simplest way to receive recurring payments and automate the distribution of them to a large number of stakeholders at the lowest possible cost. The goal of the project was to provide the user with a way to do this with only the knowledge of how to use metamask. The app abstracts away the complex distribution and distribution logic by providing a simplified way to achieve the same. The app allows the user to easily manage the addresses that they would like to distribute the incoming tokens to along with an easy way to manage how much each of them receives. Apart from this the app also allows the user to create multiple addresses on which they could receive tokens and distribute them to a different set of addresses, with different distributions for each of them. The app automates the logic of distribution and automates it completely. So, once the user has set up the address to receive the tokens and added the addresses to whom to distribute the received tokens, they can just sit back and relax with no further actions to take. They could also easily add or remove addresses or modify how much each of them receives.
The application uses the callback functionality of the ERC777 token standard to detect the reception of tokens. Once the tokens are received the application triggers an instant distribution agreement based on the technology of Superfluid to distribute the tokens to the addresses. Using the IDA from superfluid helps easy management of holdings, allows us to distribute to a large number of addresses at a fixed cost in a single transaction. Doing so would not be possible in the absence of technology. Also, it allows the addresses to receive the token any number of times after they approve it only once. After the approval is provided the addresses receive the tokens directly and there is no need to claim again & again to receive the amount, this makes it cheaper for the addresses to receive the tokens.
We clone the base contract to deploy subsequent contracts, this allowed us to provide our users with a cheaper way to create multiple accounts to receive tokens for different projects they might create.