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 the ability to grant and revoke any role, including itself, providing complete oversight of the permissions framework.
Special Note: The Admin role inherently holds all permissions and does not require specific action-based access. It should be managed with caution due to its comprehensive rights.

Depositor Role (DEPOSITOR_ROLE)

Purpose: Manages deposits and fund withdrawals within the vault, as well as setting the recipient address for rewards.
Permissions: Limited to depositing Ether, withdrawing funds, and managing the rewards recipient - wallets with the Depositor Role are used for the day-to-day staking operations.

Operator Role (OPERATOR_ROLE)

Purpose: Manages validators, including proposing exits and queuing validators for activation.
Permissions: Can propose validator exits and queue validator deposits, giving the Operator control only over validator operations.

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 update withdrawal information.

Northstake retains the Oracle Role.