Used for governance actions on the FRAX, FXS, staking, and pool contracts.
The AlphaGovernor contract is deployed at
The Timelock contract is deployed at
The Frax governance module is forked from Compound, with FXS acting as the voting token in the system.
Users may propose new changes to the protocol if they are holding a certain threshold of FXS (1% of the total votes, equivalent to
1,000,000 FXS), or may combine their votes together to submit a proposal.
Once a proposal has been submitted, it begins an active voting period of
3 days, where it may be voted for or against. If a majority is in support of the proposal at the end of the period, and the proposal has a minimum of
4,000,000 FXSin favor, the change is queued into the Timelock where it can be implemented after
Frax uses OpenZepplin's Access Control module for certain permissions. Each role in Frax that is permission through
hasRolemay also be decentralized by a proposal in the governance module, which can then call
grantRoleon other addresses.
The Timelock contract is responsible for executing proposals that have succeeded in their voting phase, and has permissions over the other system contracts like
FRAXPoolthrough Access Control. The Timelock contract provides transparency to changes that will affect the Frax protocol, as the queued proposals may only be activated after the waiting period is satisfied within the contract logic.
The Frax governance contract controls the Timelock contract, which receives accepted proposals and uses its authority over the system contracts to update them as needed. The Frax admin address is the initial governor of the system to which roles are granted to upon deployment. Over time, the roles will be granted to the Timelock contract which gives governance control to the community.