Opting-in as a Validator

Participation of L1 validators in the mev-commit protocol is crucial as it enhances the integrity of commitments and ensures their enforcement. This document details the steps required to join the mev-commit testnet as a Holesky validator. Future updates will introduce a restaking feature via Eigenlayer.

Prerequisites:

  1. An operational Holesky validator node.
  2. An operational mev-boost sidecar or equivalent.
  3. Associated validator key(s).
As a Holesky validator opting into the mev-commit protocol, ensure your mev-boost client connects only to mev-commit relays to avoid slashing for proposing blocks without delivering commitments.

Supporting Relays

RelayDocs
Titandocs.titanrelay.xyz
Currently, the Titan Holesky relay is the only supporting relay. The list will be updated as more relays join. Relays interested in joining the mev-commit network can visit our Relays page for more information.

Staking

Contract0xF263483500e849Bd8d452c9A0F075B606ee64087
Minimum Stake3 ETH
Unstaking Period7000 blocks
Approx. Unstake Time23.3 mins*
*Assumes 200ms block time on the mev-commit chain.

The validator registry contract is deployed on the mev-commit chain at the address 0xF263483500e849Bd8d452c9A0F075B606ee64087. It requires a minimum stake of 3 ETH and enforces a 7000 block unstaking period. This period, which translates to approximately 23.3 minutes assuming a 200ms block time on the mev-commit chain, is designed to cover two L1 epochs (L1 finalization period) plus a settlement buffer. This ensures a safe transition period between the initiation of an unstake and the actual withdrawal.

The registry exclusively uses BLS public keys as identifiers for validator opt-in. Any externally owned account (EOA) can stake on behalf of a validator’s public key, but only the staking EOA can initiate withdrawals in the future.

To begin staking, first obtain funds from the testnet faucet to use on the mev-commit chain.

The stake function in the contract allows for multiple validator BLS public keys to be staked in one transaction. Ether sent with the transaction is evenly distributed among the provided validator public keys:

function stake(bytes[] calldata validatorBLSPubKeys) external payable {
    uint256 splitAmount = msg.value / validatorBLSPubKeys.length;
    for (uint256 i = 0; i < validatorBLSPubKeys.length; i++) {
        stakedBalances[validatorBLSPubKeys[i]] += splitAmount;
    }
}
Due to gas limitations, it is recommended to stake in batches of 10-20 public keys at a time to ensure transaction success without hitting gas limits.

Validator Dashboard

We have developed a comprehensive Validator Dashboard UI that allows validators to easily manage their stakes. This user-friendly interface provides functionalities to stake new validator BLS public keys, unstake keys, and withdraw staked keys. Additionally, validators can track their rewards directly through the dashboard. This tool is designed to simplify the management of your commitments and rewards on the mev-commit chain.

For access and more detailed instructions on how to use the Validator Dashboard, please visit the following link: Validator Dashboard.

The Validator Dashboard is an essential tool for anyone participating as a validator on the mev-commit chain. It not only simplifies the staking and unstaking process but also provides real-time insights into your staking rewards.

Staking Your Validator Keys

1

Visit the Validator Dashboard

  • Navigate to mev-commit Validator Dashboard.
  • Press the “Opt-in to mev-commit” button to connect your wallet.
2

Acquire Testnet ETH

  • Ensure that you have at least 3 ETH on Holestky Testnet per key to stake.
  • If you don’t have sufficient ETH, visit our Testnet Faucet to obtain the necessary ETH. The faucet can dispense up to 10 ETH at a time.
  • For larger amounts, contact the Primev team for faster allocation.
3

Stake Your Validator Keys

  • Click the Stake(lock icon) button on the top right of the dashboard to initiate staking.
  • You can either upload a .txt file containing your keys separated by commas or line breaks, or you can copy and right-click paste the keys directly into the field provided.
4

Enter Stake Amounts

  • Enter the amount of ETH you wish to stake for each key.
  • Press “Stake” and confirm the transaction on your wallet to finalize the staking of your keys.
5

Manage Your Staked Keys

  • After staking, you can view your staked keys by clicking on “Manage Stake”.
  • To unstake your keys, you can multi-select the keys or use the 3-dot menu to unstake them.
  • After unstaking, you will need to wait a 7000 blocks of unstaking period before you can withdraw your ETH. The required waiting period will be displayed for each key on the “Withdraw” column.

If you want to stake your keys manually, please visit Stake Validators Keys Manually section.