Community-driven salaries using voting and superfluid streams
The Rhada Protocol operates as an event-payment-streaming service for open-source projects, primarily DAO's. The protocol measures the contributions of members of a DAO using metrics from external API's such as GitHub and Discord. DAO's have the ability to set individual parameters on what is considered to be a "contribution" and how those tasks are valued. Each active member of a DAO is compensated via a payment streaming service with a fluctuating stream that sends a set amount of currency per second. This value is derived from the various contributions specific to each member. With the Rhada Protocol, our team hopes to provide fair rewards to developers working on open-source projects and a more efficient means of handling payouts in vote-driven entities such as DAO's. Due to time constraints for the Hackathon we focused on a simpler method to enable DAOs to split salaries between their members based on round voting. After a DAO registers for the protocol, members may apply to become contributors and input their Discord and GitHub handles into the system. Upon a DAO-specific approval method, users will then be able to participate in voting rounds, wherein users will vote on contributors based on the “contribution” (as defined by the DAO) the user made in between rounds. After a voting round is closed, by an admin or after a period of time, the salaries are given to the DAO members proportionally to the votes they received using Superfluid Payment Streams.
How it's made
he Rhada Protocol is centered around four main smart contracts. DAOReg.sol is the parent contract. This is where DAO’s will register and become eligible to use the Rhada Protocol. Upon registering, the DAO’s will deploy 3 objects, each of which has its own smart contract. ContributorRegistry.sol allows DAO’s to vote or allow in new members into the contributor circle for their organization. This contract saves important information such as user addresses, user GitHub handles, and user Discord handles. Members can apply and then will be voted into the Contributor List on an individual basis. RoundManager.sol places contributors into rounds. These rounds start and end at a schedule specified by the DAO. Users are incentivized via rewards to vote for contributors based on the work that they have provided for that DAO. At the end of each round, the DAOReg contract will take this data and pay users via a Superfluid token stream, the amount of which is designated by an initial RoundSalary input multiplied by the votes for a specific user divided by the total votes. DAOReg.sol then interacts with the fourth and final smart contract, PaymentStream.sol in order to provide these payments. PaymentStream.sol is a Superfluid Superapp that handles the payment subdivision. This contract saves all the addresses that should receive a payment and a score assigned to each user. All the payment streams that are sent to this smart contract are split to all the recipients proportionally to their assigned score. After the end of each round the streams are then updated thanks to the distributeSalaries function that can be called by any user.