The validator dashboard at validators.mev-commit.xyz is deprecated. Every opt-in path (vanilla, EigenLayer, Symbiotic) lives in the mev-commit-opt-in skill. Manual contract calls on the path pages remain valid if you want them.
Install the skill
- Claude
- Grok
- ChatGPT
Complete the registry
Skill install is not registration. Walk this list to a Hub-true result. Agents should execute it in order and ask before every write.- Pick one method. Vanilla, EigenLayer, or Symbiotic. One pubkey, one method. Do not double-register.
- Parse keys. Accept
.txt,.csv, paste, commas, or newlines. Normalize to0x+ 96 hex. Confirm count and first/last pubkey with the operator. - Confirm signer and RPC. Use their
ETH_RPC_URL(mainnet chain id 1, or Hoodi 560048). Wallet is Foundry keystore, hardware, orPRIVATE_KEYonly if they insist. Never print a private key. If the signer is a Safe / multi-sig, do not send from an owner key. Follow Safe / multi-sig. - Prerequisites.
- Vanilla: read
minStake().msg.valueis split evenly. Extra ETH is a slash buffer. Hoodi vanilla is whitelisted. Mainnet whitelist is coming. - EigenLayer: caller is the pod owner or the delegated AVS operator. Function name is plural:
registerValidatorsByPodOwners. - Symbiotic: vault and operator must already be registered. If not, stop and name the gap.
- Vanilla: read
- Simulate, then send. Batch 40 to 60 keys. Wait for the receipt. A receipt is not opted in.
- Verify on the Hub.
ValidatorOptInHub.areValidatorsOptedIn(bytes[])at0x1059155bD5854224bF58e43CD3EEC6B07b4F30Ad. Every key must betrue. - Report. Method, key count, tx hash, Etherscan or Hoodi link, Hub booleans, next step. For stake, sum real on-chain balances. Never
32 ETH × key count.
What to say
After install:- “Opt these validator pubkeys into mev-commit with simple staking.”
- “Register these keys on the EigenLayer AVS as this pod owner.”
- “Check whether these pubkeys are opted in, and sum my on-chain ETH stake.”
- “Unstake these vanilla keys and withdraw when the period is done.”
- “These keys should be opted in from our Gnosis Safe, not from an owner wallet.”
.txt or .csv of BLS pubkeys (0x + 96 hex, comma or newline separated). Batch 40 to 60 keys per transaction.
How it works
The skill follows the same registry calls the old dashboard used after a wallet was connected.- Choose a method: vanilla, EigenLayer, or Symbiotic.
- Parse your key file.
- Simulate, then send on your Ethereum RPC and wallet (Foundry keystore, hardware, or
PRIVATE_KEYin the environment). If the signer is a Safe, encode the call and propose it in Safe instead. See Safe / multi-sig. - Wait for the receipt (EOA) or Safe execution, then verify
ValidatorOptInHub.areValidatorsOptedIn. Hubtrueis done. A receipt or Safe “Success” is not.
0x1059155bD5854224bF58e43CD3EEC6B07b4F30Ad
Read
minStake() on-chain before vanilla staking. Extra ETH in that tx is a slash buffer, not prepaid capacity. Hoodi vanilla is whitelisted (mainnet whitelist coming).
Prerequisites that are not the skill’s job (vault registration, AVS operator registration, EigenLayer delegation) stay on the path pages. If a revert says the vault or operator is missing, the skill names that step so you can ping Primev with the exact address.
Safe / multi-sig
A Gnosis Safe cannot sign withcast send. The registry records msg.sender. That must be the Safe, not one owner.
The skill hand-holds this:
- Simulate the call
--fromthe Safe. If it reverts, stop. - Encode calldata (
cast calldata). - You open app.safe.global on that Safe → New transaction → Transaction Builder. Paste To (registry), Value (vanilla ETH only), Data (the calldata). Operation is Call.
- Propose. Owners sign to threshold. Execute.
- Paste the L1 hash back, or say it executed.
areValidatorsOptedIn on your exact keys). That is the source of truth. If you give an L1 hash it also checks the receipt, then still checks the Hub. Safe UI “Success” or a receipt alone is not opted in.
Never give the agent every owner key.
Opt out
- Vanilla:
unstake, waitunstakePeriodBlocks, thenwithdraw - EigenLayer:
requestValidatorsDeregistration, wait, thenderegisterValidators - Symbiotic:
requestValDeregistrations, wait, thenderegisterValidators
On-chain stake
Ask the skill for your total ETH stake. It sums beacon effective balances (beacon node or beaconcha.in; aBEACONCHAIN_API_KEY is fine) plus VanillaRegistry getStakedAmount and real EigenLayer / Symbiotic collateral. It will not use 32 ETH × key count.
Manual calls
Path pages still documentcast / Foundry for operators who do not want an agent: