To register on the mev-commit network, providers need to stake ETH in the provider registry contract. This adds credibility to issued commitments, as stake may be slashed in the event of a broken commitment, such as committing to a preconfirmation bid and not including the relevant transaction in a block.

Once a provider is registered on the network, other nodes will connect to it, and the provider node will receive bids.

You can use the provider API to stake and check your stake balance.

1

Launch mev-commit Node

Make sure you’ve launched a mev-commit node first.

2

Fund Account

3

Check Minimum Stake Amount

Check the minimum amount that can be staked, and consider staking more than the minimum. Bidders will only connect to providers which have stake higher than this minimum. The larger a provider’s stake, the greater the credibility behind that provider’s commitments. The amount is set in wei.

> curl localhost:13523/v1/provider/get_min_stake | jq
{
  "amount": "1000000000000000000"
}
4

Register Stake with BLS PubKey

 > curl -X POST "http://localhost:13523/v1/provider/register_stake/1000000000000000000?blsPublicKey=0xpk" | jq
 {
   "amount": "10000000000000000000", 
   "blsPublicKey": "0xpk"
 }

Once staked, peer connection logs should appear within a few minutes. You can check the /topology endpoint again to verify connected peers.

Congrats, your provider node is registered on mev-commit and you’re ready to consume bids.
Rewards on mev-commit rely on the extra-data field in the block header to attribute the winning providers. Providers need to register their node’s Ethereum address and BLS public key against the unique extra-data field they use while building blocks. This registration is currently done manually by the Primev team, please contact us to register these details. Once the registration is done, the settlement chain will be able to correctly attribute the winning providers on L1. This will be automated in future.

Other commands that can be used are:

  • Check stake balance

    > curl localhost:13523/v1/provider/get_stake | jq
    {
      "amount": "0"
    }
    
  • Get the account address of your node

    > curl localhost:13523/v1/debug/topology | jq
    {
      "self": {
        "Addresses": [
          "/ip4/127.0.0.1/tcp/13522",
          "/ip4/172.29.0.4/tcp/13522"
        ],
        "Ethereum Address": "0xB9286CB4782E43A202BfD426AbB72c8cb34f886c",
        "Peer Type": "provider",
        "Underlay": "16Uiu2HAmDWZb4DxZQkS9yseXNukBFe6MhZdimSKuZcHFeJrF3jC9"
      },
      "connected_peers": null,
      "blocked_peers": null
    }
    

We recommend reading the consuming bids section next to consume bids effectively.