Privileges
Modulus Protocol is controlled by different roles in order to avoid undesirable consequences by security breaches. Below are the main roles controlling the smart contracts
1
Owner
Allowed to change other roles' address in charge, and would be assigned to our Multisig wallet #1
2
Controller
Allowed to config pools and the router's details such as pool's decimal, main token, duration of epoches, etc., and would be assigned to Multisig wallet #2
3
Reward Distributor
Allowed to finalize epoches and send randomness request to Chainlink and inform the pools on who won the last epoch. This role would be assigned to a separate contract so-called Reward Distributor
4
Router
This is a separate contract that would act as an intermediary contract, connecting users to different pools. Please note that users are NOT allowed to directly interact with pools' addresses. To do so, they MUST interact via Router
5
Operator
This role would be assigned to our off-chain bot in order to invoke functions in the contract Reward Distributor to finalize epoches and create new ones
6
Reserve
This would be assigned to a separate contract in order to keep epoches' yield. Only valid pools allowed in the contract Router would be allowed to call this contract to transfer tokens out
7
VRF
This is an intermediary contract to interact between Modulus Protocol and Chainlink's Verifiable Randomness Function in order to randomly select the winners of each epoch. This is a separate contract and Reward Distributor is the only role allowed to invoke functions in the contract VRF
8
Role Registry
This is a separate contract, acting as the mutual point of all other contracts to get valid roles
Last updated