Intro | Architecture | Setup | Tasks | Local development | Roles | Operator owners
The operator lifecycle remains a core part of the SSV Network, but in v2.0.0 operators now participate in both legacy SSV accounting and the new ETH fee model depending on cluster type and migration state.
Operators are registered through SSVNetwork.registerOperator(...).
At registration time, the operator owner chooses:
- the operator public key
- the initial fee
- whether the operator starts as private or public
For the precise fee constraints and execution behavior, use SPEC.md and FLOWS.md.
Operators can be public or private:
- Public operators can be used by any eligible caller
- Private operators can only be used by addresses authorized through the protocol whitelist mechanisms
Whitelisting can be managed through:
- direct address-based whitelists
- an external whitelisting contract implementing
ISSVWhitelistingContract
This design lets operator owners keep policy on-chain while still supporting custom authorization logic when needed.
Relevant functions include:
setOperatorsWhitelistsremoveOperatorsWhitelistssetOperatorsWhitelistingContractremoveOperatorsWhitelistingContractsetOperatorsPrivateUncheckedsetOperatorsPublicUnchecked
When a validator is registered against a private operator, the protocol checks whether the caller is authorized for that operator. Existing validators are not retroactively removed if whitelist settings later change.
In the upgraded system, ETH is the fee asset for new clusters. Operator owners should understand:
- ETH fee changes follow a declare/execute or immediate-reduce model
- earnings may exist on both ETH and legacy SSV branches depending on operator history
- legacy operators can transition into ETH flows as clusters migrate or register under the new model
Detailed fee-settlement rules, default ETH fee behavior, and earnings accounting are defined in SPEC.md.
Operator owners can withdraw:
- ETH earnings through the ETH withdrawal functions
- legacy SSV earnings through the SSV withdrawal functions where applicable
The repo keeps both branches because the system must support pre-upgrade state while moving the active network model toward ETH.
- Removing an operator does not erase the historical owner address used for read-side visibility.
- Removed operators may still matter to cluster history and migration logic, so operator removal should be treated as a protocol event, not just a UI cleanup action.
- Private operator policy affects future validator registration attempts, not historical validator membership.