6/18/25About 1 min
Action Tiering
Some actions taken by governance are much more impactful and riskier than others.
To reflect these different levels of importance, every function that can be called through governance is assigned a tier. At the moment, the tiers implemented are:
| Tier | Description |
|---|---|
| LOW | Small governance spending, fine-tuning |
| MEDIUM | Changes to parameters / system components that could have indirect safety implications |
| HIGH | Changes to parameters / system components that can have direct safety implications |
| CORE | Changes to the entire system / essentially upgrades |
| HIGH-TREASURY | Like HIGH but is not disabled when upgrades are disabled. For large treasury spending |
A tier contains the following information:
proposalThreshold: the minimum voting power required to create a proposalquorum: the quorum to be reached for the proposal to passvoteThreshold: the minimum ratio offorvotes for the vote to passtimeLockDuration: the length of the time lockproposalLength: the length of the proposalactionLevel: how "impactful" the given action is
Assigning a tier is done using an ITierStrategy implementation and varies depending on the function called.
The following strategies are implemented:
StaticTierStrategy: always returns the same tier regardless of the argumentsSimpleThresholdStrategy: returns a tier based on whether one of the parameters is above a given thresholdSetVaultFeesStrategy: Same asSimpleThresholdStrategybut compares two arguments to the thresholdSetSystemParamsStrategy: Similar toSimpleThresholdStrategybut compares a several fields of astructto multiple thresholdsSetAddressStrategy: Has a different tier per address argument. This is used for theGyroConfig.setAddressthat has the power to replace parts of the system.