Opting-in as a Validator
L1 validator participation in the mev-commit protocol adds ultimate credibility to commitments and enforces their delivery. This guide walks through the process of opting-in to the mev-commit testnet as a Holesky validator. A restaking version will also be enabled in the future through Eigenlayer. Prerequisites:- An operational Holesky validator node.
- An operational mev-boost sidecar or equivalent.
- Associated validator key(s).
Requirements
By opting-in to the mev-commit protocol as a Holesky validator, you agree to the following:- Your mev-boost client should ONLY connect to mev-commit opted in relays to avoid being slashed by proposing a block that doesn’t deliver commitments. The Titan Holesky relay is the only supporting relay at this time as shown in the list below. This list will be updated as more relays support the network.
Relay Name | Docs Link |
---|---|
Titan | https://docs.titanrelay.xyz/ |
- 3 ETH must be staked with the registry contract on the mev-commit chain for the validator account, which you can obtain from our Testnet Faucet.
Staking with registry
Validator Registry Contract The validator registry contract is deployed to the mev-commit chain at address0xF263483500e849Bd8d452c9A0F075B606ee64087
, with a minimum stake requirement of 3 ETH, and a 7000 block unstaking period. This unstaking period corresponds to 23.3 minutes, assuming a 200ms mev-commit chain block time. This period allows two L1 epochs (L1 finalization period) plus a settlement buffer, to pass between validator unstake initiation and withdrawal.
The registry strictly accepts BLS public keys as the validator opt-in identifier. Any EOA can stake on behalf of a validator pub key, and only that EOA has the ability to withdraw in the future.
To stake with the mev-commit validator registry, first use the testnet faucet to fund an account on the mev-commit chain.
To stake
with the contract, see the following function signature, where ether sent with the transaction is split evenly among the specified validator pub keys:
stake
function accepts multiple validator BLS pub keys. There are inherent gas limitations to the number of validators that can be staked in a single transaction, it’s recommended to stake in batches of 10-20 pub keys at a time.
Golang example
We’re working on a UI to stake with the validator registry. In the meantime you can programmatically interact with the registry via golang scripts. For example, to stake any number of validator BLS public keys with the registry, use this example script as described below. First clone the validator-registry repo:keys_example.txt
with your validator BLS public keys.
cmd/stake
directory and run the script with the private key that was funded above.
keys_example.txt
.
Withdrawing staked ether
If you wish to withdraw your staked ether, you can do so via the previously mentioned validator registry page, or using a golang script similar to what’s provided. Note an unstaking period is enforced, meaning you must first submit anunstake
transaction, wait an appropriate amount of blocks, then submit a withdraw
transaction, transferring funds to your account.