Role permissions matrix

This is a denormalized lookup table. The conceptual explanation lives at Roles and permissions; the mechanics of granting and revoking them are in Assign and revoke roles.

Dashboard contract (vault-level)

RoleAuthorizes
DEFAULT_ADMIN_ROLEGrant and revoke any role; act as Admin
FUND_ROLEFund the vault with ETH
WITHDRAW_ROLEWithdraw ETH from the vault
MINT_ROLEMint stETH against the vault's stake
BURN_ROLEBurn stETH to reduce obligations
REBALANCE_ROLERebalance liquid vs bonded ETH
COLLECT_VAULT_ERC20_ROLESweep stray ERC-20s
PAUSE_BEACON_CHAIN_DEPOSITS_ROLEHalt new beacon-chain deposits
RESUME_BEACON_CHAIN_DEPOSITS_ROLEResume beacon-chain deposits
REQUEST_VALIDATOR_EXIT_ROLESubmit voluntary validator exits
TRIGGER_VALIDATOR_WITHDRAWAL_ROLETrigger withdrawal sweep on an exited validator
NODE_OPERATOR_MANAGER_ROLEPrimary node-operator role; manage validators, disburse fees
NODE_OPERATOR_FEE_EXEMPT_ROLEExempt the holder's stake increases from the node-operator fee
NODE_OPERATOR_PROVE_UNKNOWN_VALIDATOR_ROLEProve a validator that wasn't pre-registered
NODE_OPERATOR_UNGUARANTEED_DEPOSIT_ROLEDeposit without going through PDG

Pool contract (pool vaults only)

RoleAuthorizes
DEPOSIT_ROLEDeposit into the pool (= "on the allowlist")
DEPOSITS_PAUSE_ROLEHalt pool deposits
DEPOSITS_RESUME_ROLEResume pool deposits
ALLOW_LIST_MANAGER_ROLEAdd and remove allowlist members
LOSS_SOCIALIZER_ROLESocialize a loss across pool participants
MINTING_PAUSE_ROLEHalt LP-token minting
MINTING_RESUME_ROLEResume LP-token minting

Withdrawal Queue contract

RoleAuthorizes
WITHDRAWALS_PAUSE_ROLEHalt new withdrawal requests
WITHDRAWALS_RESUME_ROLEResume withdrawal requests
FINALIZE_ROLEFinalize batched withdrawals
FINALIZE_PAUSE_ROLEHalt finalization
FINALIZE_RESUME_ROLEResume finalization

Action → required role

The inverse view: pick an operation and find the role(s) needed.

Vault administration

OperationRequired role
Grant or revoke any roleDEFAULT_ADMIN_ROLE
Change ownershipOwner
Update fee rate (Pro)DEFAULT_ADMIN_ROLE or delegated
Change tier / share limit (Pro)DEFAULT_ADMIN_ROLE or delegated
Sync tier (Pro)DEFAULT_ADMIN_ROLE or delegated

Validator operations

OperationRequired role
Create validatorNODE_OPERATOR_MANAGER_ROLE (operator side)
Activate (Pro)NODE_OPERATOR_MANAGER_ROLE
Prove unknown validator (Pro)NODE_OPERATOR_PROVE_UNKNOWN_VALIDATOR_ROLE
Top-up active validatorFUND_ROLE
Consolidate validatorsNODE_OPERATOR_MANAGER_ROLE
Unstake (partial reward withdrawal)TRIGGER_VALIDATOR_WITHDRAWAL_ROLE
Request exitREQUEST_VALIDATOR_EXIT_ROLE
Trigger withdrawal sweepTRIGGER_VALIDATOR_WITHDRAWAL_ROLE

Fee settlement

OperationRequired role
Settle Lido protocol feesDEFAULT_ADMIN_ROLE (owner side)
Disburse node-operator feesNODE_OPERATOR_MANAGER_ROLE (operator side)
Set node-operator fee rate (Pro)DEFAULT_ADMIN_ROLE

Pool operations (pool vaults only)

OperationRequired role
Pause pool depositsDEPOSITS_PAUSE_ROLE
Resume pool depositsDEPOSITS_RESUME_ROLE
Add to allowlistALLOW_LIST_MANAGER_ROLE
Remove from allowlistALLOW_LIST_MANAGER_ROLE
Pause mintingMINTING_PAUSE_ROLE
Resume mintingMINTING_RESUME_ROLE

Withdrawal queue

OperationRequired role
Request withdrawalVault owner (dedicated) / DEPOSIT_ROLE member (pool)
Finalize withdrawalsFINALIZE_ROLE
Claim withdrawalsRecipient address
Pause / resume withdrawalsWITHDRAWALS_*_ROLE
Pause / resume finalizeFINALIZE_*_ROLE