Why use this method?
Pros:- Simple staking (aka vanilla staking) is the most straightforward method for validators to opt-in to mev-commit.
- Vanilla staking requires minimal setup and is permissionless. The vanilla registry allows validators to be opted-in directly by staking native ETH.
- Vanilla staking is not as capital efficient as using Symbiotic or Eigenlayer, as restaking isn’t possible. The ETH used to vanilla stake validators is completely separate from a validator’s 32 ETH already staked with the beacon chain.
- Vanilla staking does not support the use of ERC20 collateral.
Getting Started
Validators are able to opt-in to mev-commit by vanilla staking ETH directly with thevanillaRegistry contract.
This action adds those pubkeys to the mev-commit validator coalition. Any mev-boost relay set is fine.
The vanilla registry strictly accepts BLS public keys as the validator opt-in identifier. Any account can stake on behalf of validator pubkey(s), and only that account has the ability to unstake in the future.
How staking works during registration
When registering validators, ETH must be sent as collateral with the registration transaction. That stake is evenly distributed across all validators included in that registration. TheVanillaRegistry.minStake parameter represents how much ETH must be staked per validator pubkey to define that validator as opted-in to mev-commit. The minStake is .0001 ETH on both mainnet and Hoodi.
Clarification: Over collateralizing a registration does not pre-fund future registrations. If more ETH than minstake * n keys is sent during a registration, that extra ETH is simply spread across the validators registered in that tx (this can be used as a slash buffer).
For large groups of validators, it is recommended to stake in batches of 40-60 public keys at a time to ensure transaction success without hitting gas limits. This process can be tested on Hoodi.
Staking validator keys
*Whitelisting is now required on Hoodi, and will soon be added to mainnet. If registering on Hoodi, please reach out to our team with your operator address to enable registration!The validator dashboard is deprecated. Vanilla opt-in is done with the mev-commit-opt-in skill. Any mev-boost relay set is fine.
VanillaRegistry.stake(bytes[]) on your RPC, then verifies ValidatorOptInHub. You can still send the same function yourself with cast if you prefer.