# Governance

Governance is managed by a multisig requiring a 60% signer threshold.

Some governance actions have a timelock: a period of time after the approval of a governance proposal during which the proposal cannot be executed, giving users a buffer period to review the governance proposal and react accordingly. Actions that update governance or protocol variables are time locked so that users may withdraw funds before the action is executed, if desired. The timelock period is set to 24 hours.

Governance can perform the following actions:

<table><thead><tr><th width="244.77734375">Action</th><th width="390.9140625">Description</th><th>Timelock</th></tr></thead><tbody><tr><td>update-governance</td><td>Update governance contract used by the State Contract</td><td>Time locked</td></tr><tr><td>freeze-upgrades</td><td>Freeze contract upgrades - enabling this means that no contracts can be upgraded, the protocol is fully immutable</td><td>Time locked</td></tr><tr><td>set-deposit-asset-flag</td><td>Disable/enable depositing market assets by the LPs</td><td>N/A</td></tr><tr><td>set-withdraw-asset-flag</td><td>Disable/enable withdrawing market assets by the LPs<br><br>Used to selectively restart market functions (if necessary) after a pause</td><td>N/A</td></tr><tr><td>set-add-collateral-flag</td><td>Action to disable adding collateral to market by the borrowers<br><br>Used to selectively restart market functions (if necessary) after a pause</td><td>N/A</td></tr><tr><td>set-remove-collateral-flag</td><td>Action to disable/enable removing collateral from market. by the borrowers<br><br>Used to selectively restart market functions (if necessary) after a pause</td><td>N/A</td></tr><tr><td>set-borrow-flag</td><td>Action to disable/enable Borrow</td><td>N/A</td></tr><tr><td>set-repay-flag</td><td>Action to disable/enable Repay</td><td>N/A</td></tr><tr><td>set-liquidation-flag</td><td>Action to disable/enable Liquidation</td><td>N/A</td></tr><tr><td>pause-market</td><td>Action to pause market</td><td>N/A</td></tr><tr><td>unpause-market</td><td>Action to unpause market</td><td>N/A</td></tr><tr><td>update-collateral-settings</td><td>Action to update collateral settings or add new collateral to market.<br><br>Collateral setting include max-ltv, liquidation-ltv, liquidation-premium</td><td>Time locked</td></tr><tr><td>deposit-to-reserve</td><td>Action to deposit funds from Governance contract into Market reserve balance in the State contract</td><td>N/A</td></tr><tr><td>withdraw-from-reserve</td><td>Action to withdraw from Market reserve balance in the State contract. Withdrawal would withdraw into the governance contract; would be used in conjunction with <code>transfer-funds</code>.</td><td>Time locked</td></tr><tr><td>set-allowed-contract</td><td>Action to update Allowed contract list</td><td>Time locked</td></tr><tr><td>remove-allowed-contract</td><td>Action to remove allowed contract list</td><td>Time locked</td></tr><tr><td>add-guardians</td><td>Action to add guardians</td><td>Time locked</td></tr><tr><td>remove-guardians</td><td>Action to remove guardians</td><td>N/A</td></tr><tr><td>update-interest-rate-params</td><td>Action to update interest rate params</td><td>Time locked</td></tr><tr><td>update-protocol-reserve-percentage</td><td>Action to update protocol reserve percentage</td><td>Time locked</td></tr><tr><td>update-asset-cap</td><td>Action to update asset cap on market</td><td>N/A</td></tr><tr><td>transfer-funds</td><td>Action transfer funds from the governance contract to a specific recipient; would be used in conjunction with <code>withdraw-from-reserve</code>.</td><td>N/A</td></tr><tr><td>remove-collateral</td><td>Action to remove collateral from protocol. Removing a collateral means borrowers cannot interact with the collateral and liquidations would be stopped, and collateral value would not be counted in position value.<br><br>This would be used after a <code>pause()</code> if there is an oracle price attack, to protect against invalid withdraws or deposits<br><br>Can re-enable using <code>update-collateral</code> later</td><td>Time locked</td></tr><tr><td>set-interest-accrual-flag</td><td>Action to enable/disable interest accrual</td><td>N/A</td></tr><tr><td>update-reward-rate-params</td><td>Action to update staking reward rate params</td><td>Time locked</td></tr><tr><td>update-withdrawal-finalization-period</td><td>Action to update withdrawal finalization period</td><td>Time locked</td></tr><tr><td>update-pyth-token-feed</td><td>Action to update pyth token feed</td><td>N/A</td></tr><tr><td>reconcile-staking-lp-balance</td><td>Action to reconcile staking lp balance<br><br>In case somebody transfers lp tokens to the staking contract without actually staking them - this would stake these LP tokens as a donation to the current stakers</td><td>N/A</td></tr><tr><td>set-staking flag</td><td>Action to enable or disable staking</td><td>N/A</td></tr><tr><td>update-pyth-time-delta</td><td>Action to update pyth time delta</td><td>N/A</td></tr><tr><td>set-lp-cap</td><td>Action to set lp cap</td><td>Time locked</td></tr><tr><td>set-debt-cap</td><td>Action to set debt cap</td><td>Time locked</td></tr><tr><td>set-collateral-cap</td><td>Action to set collateral cap</td><td>Time locked</td></tr><tr><td>set-cap-time-window</td><td>Action to set withdrawal caps time window</td><td>Time locked</td></tr></tbody></table>
