English
Guide | MEV-boost for Ethereum Staking
Quickstart guide to setting up MEV-boost for your ETH validator.
The following steps align with our mainnet guide. You may need to adjust file names and directory locations where appropriate. The core concepts remain the same.

  • Enables solo and home stakers access to MEV, Maximal Extractible Value.
  • Enables validators to earn higher block rewards.
  • Optional and not required for ETH staking.
  • Open source middleware run by validators to access a competitive block-building market.
  • Built by Flashbots as an implementation of proposer-builder separation (PBS) for proof-of-stake (PoS) Ethereum.
tldr: MEV is estimated be 11% of a validator rewards. Other estimates suggest it can boost staking rewards by over 60%.
Estimated earnings per validator. Source: https://ultrasound.money

Prerequisite: You run a full Ethereum node (Execution Layer client [e.g. geth/besu/nethermind/erigon] + Consensus Layer client [e.g. prysm/lighthouse/teku/lodestar/nimbus]) and a validator.

First start by installing Go and removing any previous Go installations.
cd $HOME
wget https://go.dev/dl/go1.19.1.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
rm go1.19.1.linux-amd64.tar.gz
Add /usr/local/go/bin to the PATH environment variable.
export PATH=$PATH:/usr/local/go/bin
echo 'PATH="$PATH:/usr/local/go/bin"' >> ~/.profile
Verify that you've installed Go 1.18+ by printing the version information.
go version

The systemd service will run under this account, mevboost
sudo useradd --no-create-home --shell /bin/false mevboost

Install build dependencies.
sudo apt -y install build-essential
Install mev-boost with go install
CGO_CFLAGS="-O -D__BLST_PORTABLE__" go install github.com/flashbots/[email protected]
Install binaries to /usr/local/bin and update ownership permissions.
sudo cp $HOME/go/bin/mev-boost /usr/local/bin
sudo chown mevboost:mevboost /usr/local/bin/mev-boost
Create the mevboost systemd unit file.
sudo nano /etc/systemd/system/mevboost.service
The ExecStart line lists two relays, Manifold and bloXroute Ethical. Remove or add other relays according to your ethical preferences.
Find relay endpoints at:
Multiple relays can be specified by separating each relay endpoint with a comma.
Example:
-relays https://RELAY1.COM,https://RELAY2.COM,https://RELAY3.COM
Paste the following into your mevboost.service file. To exit and save from the nano editor, press Ctrl + X, then Y, thenEnter.
[Unit]
Description=mev-boost ethereum mainnet
Wants=network-online.target
After=network-online.target
[Service]
User=mevboost
Group=mevboost
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/mev-boost \
-mainnet \
-relay-check \
-relays https://0x98650451ba02064f7b000f5768cf0cf4d[email protected]mainnet-relay.securerpc.com,https://0xad0a8bb54565c2211cee576363f3a3470[email protected]bloxroute.ethical.blxrbdn.com
[Install]
WantedBy=multi-user.target
Reload systemctl to pickup the new service file.
sudo systemctl daemon-reload
Good to know: If you add or remove relay endpoints, you'll need to re-run this systemctldaemon-reload command and restart the mevboost services.
Enable mevboost to automatically startup at system reboots and start the service.
sudo systemctl enable mevboost
sudo systemctl start mevboost
Check that the service started successfully.
sudo systemctl status mevboost
Sample of systemd logs showing mevboost running nominally.
● mevboost.service - mev-boost ethereum mainnet
Loaded: loaded (/etc/systemd/system/mevboost.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-09-17 23:32:00; 10s ago
Main PID: 12321 (mev-boost)
Tasks: 11 (limit: 34236)
Memory: 15.4M
CGroup: /system.slice/mevboost.service
└─12321 /usr/local/bin/mev-boost -mainnet -relay-check -relays https://0xac6e77dfe25ecd6110b8e780608cce0da[email protected]boost-relay.flashbots.net,https://0xad0a8bb54565c2211cee576363f3>
View Logs with the following command:
sudo journalctl -fu mevboost
Sample of logs showing mevboost running nominally.
Sep 17 23:32:23 ethstaker systemd[1]: Started MEV-Boost Relay.
Sep 17 23:32:23 ethstaker mev-boost[12321]: time="2022-09-17T23:32:32-00:00" level=info msg="mev-boost v1.3.1" module=cli
Sep 17 23:32:23 ethstaker mev-boost[12321]: time="2022-09-17T23:32:32-00:00" level=info msg="Using genesis fork version: 0x00000000" module=cli
Sep 17 23:32:23 ethstaker mev-boost[12321]: time="2022-09-17T23:32:32-00:00" level=info msg="using 2 relays" module=cli relays="[{0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae https://0xac6e77dfe25ecd6110b8e780608cce0da[email protected]boost-relay.flashbots.net} {0xad0a8bb54565c2211cee576363f3a347089d2f07cf72679d16911d740262694cadb62d7fd7483f27afd714ca0f1b9118 https://0xad0a8bb54565c2211cee576363f3a3470[email protected]bloxroute.ethical.blxrbdn.com}]"
Sep 17 23:32:23 ethstaker mev-boost[12321]: time="2022-09-17T23:32:32-00:00" level=info msg="Checking relay" module=service relay="https://0xac6e77dfe25ecd6110b8e780608cce0da[email protected]boost-relay.flashbots.net"
Sep 17 23:32:23 ethstaker mev-boost[12321]: time="2022-09-17T23:32:32-00:00" level=info msg="Checking relay" module=service relay="https://0xad0a8bb54565c2211cee576363f3a3470[email protected]bloxroute.ethical.blxrbdn.com"
Sep 17 23:32:23 ethstaker mev-boost[12321]: time="2022-09-17T23:32:32-00:00" level=info msg="listening on localhost:18550" module=cli

Both the consensus layer client and validator will require additional Builder API flags.
Consensus Client Layer Changes (beacon chain)
Add the appropriate flag to the ExecStart line of your consensus client service file. To exit and save from the nano editor, press Ctrl + X, then Y, thenEnter.
sudo nano /etc/systemd/system/beacon-chain.service
Lighthouse
Teku
Lodestar
Nimbus
Prysm
--builder http://127.0.0.1:18550
If your Teku client is configured by passing in a TOML file (i.e. teku.yaml), edit teku.yaml with nano.
sudo nano /etc/teku/teku.yaml
Add the following lines to the yaml file:
# mevboost
validators-builder-registration-default-enabled: true
builder-endpoint: "http://127.0.0.1:18550"
Alternatively, if your Teku client is configured by --parameters in the systemd service file, add the following changes.
--validators-builder-registration-default-enabled=true --builder-endpoint=http://127.0.0.1:18550
Use one configuration or the other but not both!
--builder --builder.urls http://127.0.0.1:18550
--payload-builder=true --payload-builder-url=http://127.0.0.1:18550
--http-mev-relay=http://127.0.0.1:18550
Validator Client Changes
If required, add the appropriate flag to the ExecStart line of your validator client service file. To exit and save from the nano editor, press Ctrl + X, then Y, thenEnter.
sudo nano /etc/systemd/system/validator.service
Lighthouse
Teku
Lodestar
Nimbus
Prysm
--builder-proposals
WARNING: Only do the following if running Teku validator in a separate client. Most common setups do not use this configuration.
--validators-builder-registration-default-enabled=true
--validators-proposer-config="/etc/teku/proposerConfig.json"
Create a proposerConfig.json file with the following:
sudo nano /etc/teku/proposerConfig.json
For example, enable MEV by default, and keep it disabled for a specific key.
{
"proposer_config": {
"0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": {
"fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3",
"builder": {
"enabled": false
}
}
},
"default_config": {
"fee_recipient": "0x6e35733c5af9B61374A128e6F85f553aF09ff89A",
"builder": {
"enabled": true
}
}
}
Update file ownership permissions.
sudo chown mevboost:mevboost /etc/teku/proposerConfig.json
--builder
Runs in consensus client, not needed.
--enable-builder
After configuring your consensus client and validator to enable mevboost, reload and restart your services.
sudo systemctl daemon-reload
sudo systemctl restart beacon-chain validator
Verify your logs look error-free and show use of the new MEV configurations.
journalctl -fu beacon-chain
journalctl -fu validator
Congrats! Your validator with mev-boost will earn more rewards when proposing a block.

Update to the latest release with the following commands.
Review the latest MEV-boost release notes for new requirements or breaking changes.
Compile new binaries and stop the service.
CGO_CFLAGS="-O -D__BLST_PORTABLE__" go install github.com/flashbots/[email protected]
sudo systemctl stop mevboost
Install new binaries to /usr/local/bin and start the service.
sudo cp ~/go/bin/mev-boost /usr/local/bin
sudo chown mevboost:mevboost /usr/local/bin/mev-boost
sudo systemctl start mevboost

How do I verify I'm registered with my relays?
Where will I get MEV-boost payments?
Why run MEV-boost?
How does MEV-boost work?
What are the risks of running MEV-boost?
What's the real-time status of MEV?
I'm using multiple relays. Which one is chosen?
What's makes a MEV relay ethical or not?

Copy link
Edit on GitHub
On this page
What is mev-boost?
How to MEV?
1) Install Go 1.18+
2) Create mevboost service account
3) Install mevboost
4) Update consensus client and validator
How to Update MEV-boost
FAQ
Next Steps
References
Credits