Roles and Permissions

Four key roles govern permissions within the contract.

Admin Role (DEFAULT_ADMIN_ROLE)

Purpose: The Admin role has full authority over the contract’s access control, responsible for assigning and revoking other roles.
Permissions: Holds administrative rights to the contract. More specifically, Default Admins can grant and revoke any role, including the Default Admin role, stake, create validators, and withdraw ETH from dedicated smart contracts.
Special Note: The Admin role inherently holds all permissions and does not require approval from any role to operate the contract. It should be managed with caution due to its critical role within the system.

Depositor Role (DEPOSITOR_ROLE)

Purpose: Manages the staking operations in the dedicated smart contract.
Permissions: Can deposit ETH for staking, withdraw ETH from the contract, collect staking rewards, and accept validator exits - wallets with the Depositor Role are used for the day-to-day staking operations.

Operator Role (OPERATOR_ROLE)

Purpose: Creates validators, and proposes validator exits to be accepted by Depositors/Default Admins.
Permissions: Can sign staking transactions to create validators and propose validator exits.

Northstake retains the Operator Role.

Oracle Role (ORACLE_ROLE)

Purpose: Enables the synchronization between the Beacon Chain and Ethereum Mainnet, ensuring that full validator withdrawals are allocated to the correct beneficiary in the dedicated contract.
Permissions: Grants the ability to process withdrawals from the Beacon Chain, updating the necessary information.

Northstake retains the Oracle Role.