Skip to main content
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.
Opt L1 validator BLS pubkeys into the mev-commit validator coalition from Claude, ChatGPT, or Grok. The skill uses your RPC and wallet, verifies on the ValidatorOptInHub, computes real on-chain ETH stake, and can opt out. Membership is a single on-chain signal across many keys. It is not extra yield from a live bid market. No fees are enabled at this stage. There is no fee switch without your approval. When a fee is approved and enabled, it funds AI research. Why join. Homepage: primev.xyz/ai (also mev-commit.xyz, which redirects here). Any mev-boost relay set is fine. There is no relay configuration step.

Install the skill

Source: github.com/primev/claude-plugin

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.
  1. Pick one method. Vanilla, EigenLayer, or Symbiotic. One pubkey, one method. Do not double-register.
  2. Parse keys. Accept .txt, .csv, paste, commas, or newlines. Normalize to 0x + 96 hex. Confirm count and first/last pubkey with the operator.
  3. Confirm signer and RPC. Use their ETH_RPC_URL (mainnet chain id 1, or Hoodi 560048). Wallet is Foundry keystore, hardware, or PRIVATE_KEY only 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.
  4. Prerequisites.
    • Vanilla: read minStake(). msg.value is 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.
  5. Simulate, then send. Batch 40 to 60 keys. Wait for the receipt. A receipt is not opted in.
  6. Verify on the Hub. ValidatorOptInHub.areValidatorsOptedIn(bytes[]) at 0x1059155bD5854224bF58e43CD3EEC6B07b4F30Ad. Every key must be true.
  7. 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.
If a write reverts, name the contract, function, revert, and the address or pubkey that failed. If the vault or operator is missing, tell them to ping Primev with that address.

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.”
Upload a .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.
  1. Choose a method: vanilla, EigenLayer, or Symbiotic.
  2. Parse your key file.
  3. Simulate, then send on your Ethereum RPC and wallet (Foundry keystore, hardware, or PRIVATE_KEY in the environment). If the signer is a Safe, encode the call and propose it in Safe instead. See Safe / multi-sig.
  4. Wait for the receipt (EOA) or Safe execution, then verify ValidatorOptInHub.areValidatorsOptedIn. Hub true is done. A receipt or Safe “Success” is not.
Mainnet Hub: 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 with cast send. The registry records msg.sender. That must be the Safe, not one owner. The skill hand-holds this:
  1. Simulate the call --from the Safe. If it reverts, stop.
  2. Encode calldata (cast calldata).
  3. 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.
  4. Propose. Owners sign to threshold. Execute.
  5. Paste the L1 hash back, or say it executed.
How the agent knows it is complete: it reads ValidatorOptInHub (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, wait unstakePeriodBlocks, then withdraw
  • EigenLayer: requestValidatorsDeregistration, wait, then deregisterValidators
  • Symbiotic: requestValDeregistrations, wait, then deregisterValidators

On-chain stake

Ask the skill for your total ETH stake. It sums beacon effective balances (beacon node or beaconcha.in; a BEACONCHAIN_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 document cast / Foundry for operators who do not want an agent: