Roles And Permissions

Roles define the permissions and access levels across different contracts and modules. This page outlines the structure of roles, their functions, and the path toward full decentralization.

To maintain a secure and flexible smart contract system, we leverage roles to manage administrative tasks and define who has the authority to perform specific actions. These roles control everything from minting tokens to upgrading contracts, pausing operations, and setting governance parameters.

The central goal of this structure is to gradually decentralize power from individual wallets to the DAO (the B3TRGovernor governance contract).

Roles

This document categorizes roles and outlines their functionalities, detailing what permissions each role grants. Here's a quick summary of some common roles and what they do:

  • DEFAULT_ADMIN_ROLE: The superuser role with the ability to grant, revoke, and renounce roles.

  • PAUSER_ROLE: Controls the ability to pause and unpause contract functionality.

  • MINTER_ROLE: Allows for token minting.

  • UPGRADER_ROLE: Permits contract upgrades and modifications.

  • CONTRACTS_ADDRESS_MANAGER_ROLE: Manages critical contract addresses.

  • DECAY_SETTINGS_MANAGER_ROLE: Manages parameters surrounding cycle lengths, allocation percentages and decay rates in the Emission contract.

  • GOVERNANCE_ROLE: Involved in governance decisions, proposal management, and voting.

All roles have in common the following functionality: they can renounce that role.

Once there isn’t any address that has the DEFAULT_ADMIN_ROLE then it won’t be possible to grant or revoke any role. If some contract is upgradeable and the DAO has the UPGRADER_ROLE then the DAO could decide to upgrade the contract and assign the role to whoever they want.

Permissions

The ultimate aim is to create a self-governing system where no single entity holds absolute control. This section of the page provides a detailed plan for achieving this goal, outlining the steps for transitioning roles to the B3TRGovernor contract, removing direct admin control, and enabling decentralized governance.

Follow the outlined steps to understand the current state of role assignments and the specific actions required to achieve a more autonomous system. Through this journey, we aim to establish a resilient and community-driven ecosystem where the power of decision-making rests in the hands of the DAO and its stakeholders.

Contract: B3TR

Steps for full decentralization:

Contract: B3TRGovernor

Steps for full decentralization:

Contract: Emissions

Steps for full decentralization:

Contract: GalaxyMember

Steps for full decentralization:

Contract: Timelock

Steps for full decentralization:

Contract: Treasury

Steps for full decentralization:

Contract: VOT3

Steps for full decentralization:

Contract: VoterRewards

Steps for full decentralization:

Contract: X2EarnApps

Steps for full decentralization:

NB: This contract will be upgraded to handle app endorsement, so the “Add app” functionality triggered by a GOVERNANCE_ROLE could be removed in a future release

Contract: X2EarnRewardsPool

Steps for full decentralization:

Contract: XAllocationPool

Steps for full decentralization:

Contract: XAllocationVoting

Steps for full decentralization:

Last updated