# Access Manager



Spectra uses the [OpenZeppelin Access Manager](https://docs.openzeppelin.com/contracts/5.x/access-control#using_accessmanager) contract to manage access to restricted protocol functions. Roles are assigned to function selectors on each target contract; integrations should check the target contract's authority configuration.

<Callout type="info">
  See the [OpenZeppelin Access Manager documentation](https://docs.openzeppelin.com/contracts/5.x/access-control#using_accessmanager) for role assignment and execution delays.
</Callout>

## Roles [#roles]

| Role Name                                | ID | Description                                                                                                   |
| ---------------------------------------- | -- | ------------------------------------------------------------------------------------------------------------- |
| ADMIN\_ROLE                              | 0  | The default admin role of the Access Manager. This role allows to create new roles and assign users to roles. |
| UPGRADE\_ROLE                            | 1  | Grant the permission to upgrade the protocol contract implementations                                         |
| PAUSER\_ROLE                             | 2  | Grant the permission to pause the PT and LP Vault  in case of emergency                                       |
| FEE\_SETTER\_ROLE                        | 3  | Grant the permission to change the fees of the protocol in the registry contract.                             |
| REGISTRY\_ROLE                           | 4  | Grant the permission to change the addresses in the registry contracts.                                       |
| REWARDS\_HARVESTER\_ROLE                 | 5  | Grant the permission to claim rewards on a PT rewards proxy.                                                  |
| REWARDS\_PROXY\_SETTER\_ROLE             | 6  | Grant the permission to add a rewards proxy on a PT.                                                          |
| VOTER\_GOVERNOR\_ROLE                    | 7  | Manage the maximum number of pool votes, reward-token and NFT whitelists, and forced vote resets.             |
| VOTER\_EMERGENCY\_COUNCIL\_ROLE          | 8  | Grant the permission to ban and reauthorise voting for specific pools.                                        |
| VOTER\_ROLE                              | 9  | Authorize the Voter to create pool voting rewards and update reward balances.                                 |
| FEES\_VOTING\_REWARDS\_DISTRIBUTOR\_ROLE | 10 | Authorize `FeesVotingReward.notifyRewardAmount` to fund pool fee rewards.                                     |
| MINTER\_ROLE                             | 11 | Authorize `RewardsDistributor.checkpointToken` to record tokens for rebase distribution.                      |
| MANAGED\_DEPOSITS\_ROLE                  | 12 | Authorize deposits and withdrawals in managed reward contracts.                                               |
| VOTING\_ESCROW\_MANAGER\_ROLE            | 13 | Create managed locks, enable or disable managed locks, set the NFT art proxy, and configure lock splitting.   |
