# Access Control

| **Access**     | **Role**              | **Function Name**        | **Description**                                                  |
| -------------- | --------------------- | ------------------------ | ---------------------------------------------------------------- |
| Protocol Owner | Default\_Owner        | upgradeTo                | Upgrades keeper contract implementation.                         |
| Governor       | GOVERNOR\_ROLE        | setMintFee               | Updates the mint fee on pool.                                    |
| Guardian       | GUARDIAN\_ROLE        | pause                    | Pause mint/swap/redeem actions                                   |
| Protocol Owner | PROTOCOL\_OWNER\_ROLE | unpause                  | Unpause mint/swap/redeem actions                                 |
| Governor       | GOVERNOR\_ROLE        | setRedeemFee             | Updates the redeem fee on pool.                                  |
| Governor       | GOVERNOR\_ROLE        | setOffPegFeeMultiplier   | Updates the off peg fee multiplier of pool.                      |
| Governor       | GOVERNOR\_ROLE        | setExchangeRateFeeFactor | Updates the exchange rate fee factor of pool.                    |
| Governor       | GOVERNOR\_ROLE        | setBufferPercent         | Updates the buffer percent                                       |
| Governor       | GOVERNOR\_ROLE        | setTokenSymbol           | Updates the token symbol                                         |
| Governor       | GOVERNOR\_ROLE        | setDecayPeriod           | Updates the decay period                                         |
| Governor       | GOVERNOR\_ROLE        | setRateChangeSkipPeriod  | Updates the rate change skip period of pool.                     |
| Governor       | GOVERNOR\_ROLE        | updateFeeErrorMargin     | Updates the fee error margin of pool.                            |
| Governor       | GOVERNOR\_ROLE        | updateYieldErrorMargin   | Updates yield error margin of pool.                              |
| Governor       | GOVERNOR\_ROLE        | distributeLoss           | Distribute losses by rebasing negatively                         |
| Governor       | GOVERNOR\_ROLE        | setTreasury              | Set treasury address for accumulated fees.                       |
| Governor       | GOVERNOR\_ROLE        | withdrawAdminFee         | Send newly-minted SPA tokens to Treasury                         |
| Curator        | CURATOR\_ROLE         | rampA                    | Allows to gradually ramp the A coefficient within allowed bounds |
| Governor       | GOVERNOR\_ROLE        | setMinRampTime           | Allows to set MinRampTime                                        |
| Governor       | GOVERNOR\_ROLE        | setSwapFee               | Allows governor to set the swap fee within allowed bounds        |
| Guardian       | GUARDIAN\_ROLE        | cancelRamp               | Allows guardians to cancel an ongoing A ramp in emergencies      |
| Protocol Owner | PROTOCOL\_OWNER\_ROLE | grantGovernorRole        | Grant Govenor role to address on Keeper.                         |
| Protocol Owner | PROTOCOL\_OWNER\_ROLE | revokeGovernorRole       | Revoke Govenor role for an address on Keeper.                    |
| Governor       | GOVERNOR\_ROLE        | grantCuratorRole         | Grant Curator role to address on Keeper.                         |
| Governor       | GOVERNOR\_ROLE        | revokeCuratorRole        | Revoke Curator role for an address on Keeper.                    |
| Governor       | GOVERNOR\_ROLE        | grantGuardianRole        | Grant Guardian role to address on Keeper.                        |
| Governor       | GOVERNOR\_ROLE        | revokeGuardianRole       | Revoke Guardian role for an address on Keeper.                   |
