> For a complete index of Agora Finance documentation, fetch https://docs.agora.finance/llms.txt

# Role Based Access Control

> RBAC system for the AUSD contract — Admin, Pauser, Freezer, Minter, and Burner roles and permissions

The AUSD contract implements a simple Role-Based Access Control (RBAC) system. This system ensures that only authorized accounts can perform certain actions, enhancing security and operational integrity. The roles and their associated capabilities are outlined below:

#### User Roles and Permissions

1. **Any User**
   * **Transfer Tokens**: Users can transfer tokens directly to other accounts.
   * **Delegate Transfers**: Users can transfer tokens on behalf of other users using signed messages, adhering to ERC-2612 or ERC-3009 standards.
2. **Admin**
   * **Upgrade Contract Implementation**: Admins can upgrade the contract implementation, ensuring the contract remains up-to-date with the latest features and security improvements.
   * **Role Management**: Admins can assign or revoke roles for other users, maintaining the integrity of the RBAC system.
3. **Pauser**
   * **Pause/Unpause Contract**: Pausers can halt or resume contract functionalities, providing a mechanism to address emergencies or security threats promptly.
4. **Freezer**
   * **Freeze Assets**: Freezers can freeze tokens in instances of financial crime or misuse, ensuring regulatory compliance and mitigating risks of fraudulent activities.
5. **Minter**
   * **Mint Tokens**: Minters have the authority to generate new tokens, allowing for controlled inflation and supply adjustments.
6. **Burner**
   * **Burn Tokens**: Burners can destroy tokens, typically used for redeeming AUSD for other assets, thereby reducing the total supply of tokens.