Governance
Used for governance actions on the FRAX, FXS, staking, and pool contracts.

Deployment

The AlphaGovernor contract is deployed at 0xd74034C6109A23B6c7657144cAcBbBB82BDCB00E
The Timelock contract is deployed at 0x8412ebf45bAC1B340BbE8F318b928C466c4E39CA

Description

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 FXS in favor, the change is queued into the Timelock where it can be implemented after 2 days.

Access Control

Frax uses OpenZepplin's Access Control module for certain permissions. Each role in Frax that is permission through hasRole may also be decentralized by a proposal in the governance module, which can then callgrantRole on other addresses.

Timelock

The Timelock contract is responsible for executing proposals that have succeeded in their voting phase, and has permissions over the other system contracts like FRAXStablecoin, FRAXShares, and FRAXPool through 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.

Contracts

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.
Last modified 10mo ago