Skip to main content
This guide explains how to register Rocket Pool validators with the Rocket Pool Minipool Registry for mev-commit, how freezing works, and how to deregister. This Registry is only available on Hoodi testnet at the moment, with mainnet deployment coming soon.

Why use this method?

Opting-in validators through the RocketMinipool Registry is ideal for validators that already exist through Rocket Pool and want to earn additional rewards.

How the Registry integrates with Rocket Pool

The registry relies on Rocket Pool’s contracts to check for each validator’s associated minipool, confirm whether the minipool is active (Staking), and determine the authorized operators (the node operator and the withdrawal address). The registry itself does not remap keys to minipools and operators; Rocket Pool contract data is checked at the time of the relevant call.

Registering validators

Registration can currently be done on Hoodi etherscan using the “Write as Proxy” tab on the RocketMinipoolRegistry contract (address ). Mainnet deployment is planned in the near future. Call:
registerValidators(bytes[] valPubKeys)
Requirements per key:
  • The pubkey must be associated with an active Rocket Pool minipool.
  • The validator must not already be registered.
  • The caller must be the node operator or the withdrawal address for that minipool.
⚠️ Caution: Do not use your node address in a web browser For node security, it is best practice to avoid putting node address keys into web browsers. When registering via a browser, use your withdrawal address instead, or perform the action locally via so keys never touch a website.
Etherscan input tip (bytes[]):
0xkey1, 0xkey2, 0xkey3, ...
No brackets, no quotes.

Freezing & unfreezing

  • Freeze: The freeze oracle can call freeze(bytes[] valPubKeys) for validators that violate protocol rules. Frozen validators are considered opted out.
  • Unfreeze: Anyone can call unfreeze(bytes[] valPubKeys) and pay unfreezeFee * numberOfKeys. The current fee and receiver can be checked on-chain. The owner can also override with ownerUnfreeze(bytes[] valPubKeys).

Deregistration

Deregistration is a two-step process:
  • Call requestValidatorDeregistration(bytes[] valPubKeys) to start the timer.
  • After deregistrationPeriod has passed, call deregisterValidators(bytes[] valPubKeys) to complete it. Validators must not be frozen.
Helper: getEligibleTimeForDeregistration(bytes pubkey) returns the timestamp when a validator can be deregistered. A value of 0 indicates that no deregistration request has been made for the key.

Relay Filtering

Opting in on mainnet requires agreement to only use opted-in relays, but these requirements do not exist on Hoodi at this time.
I