> For the complete documentation index, see [llms.txt](https://dvt-homestaker.stakesaurus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dvt-homestaker.stakesaurus.com/replacement-steps-mainnet/replacements.md).

# Replacements

## Clean-up testnet data

First, stop all existing clients running on the Holesky testnet.

```sh
sudo systemctl stop "execution_client.service"
sudo systemctl stop "consensus_client.service"
sudo systemctl stop "validator_client.service"
```

Additionally, for Lodestar users:

```sh
cd ~/lodestar_beacon
docker compose down
```

```sh
cd ~/validator
docker compose down
```

Then remove all existing data from client data directories. Select the ones relevant to your setup:

```sh
#Nethermind
sudo rm -r /var/lib/nethermind/*
#Besu
sudo rm -r /var/lib/besu/*
#Teku consensus
sudo rm -r /var/lib/teku_beacon/*
#Nimbus consensus
sudo rm -r /var/lib/nimbus_beacon/*
#Lodestar consensus
sudo rm -r /var/lib/lodestar_beacon/*
#Teku validator
sudo rm -r /var/lib/teku_validator/*
#Nimbus validator
sudo rm -r /var/lib/nimbus_validator/*
#Lodestar validator
sudo rm -r /var/lib/lodestar_validator/*
```

## Execution clients

1. Optionally, change the `Description` to Mainnet in the systemd configuration or docker-compose.yml for clarity - e.g.
   * Description=Nethermind/Besu Execution Client (Mainnet)
2. Set the network parameter in the systemd configuration files from `holesky` to `mainnet` - e.g.

   ```sh
   sudo nano /etc/systemd/system/"execution_client.service"
   ```

   * **Nethermind:** `--config mainnet`
   * **Besu:** `--network=holesky`

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/fFMPQr8NuJnyMjNpSSqb" %}
[Set up and configure execution layer client](/installing-and-configuring-your-el+cl-clients/set-up-and-configure-execution-layer-client.md)
{% endcontent-ref %}

## Consensus clients

1. Optionally, change the `Description` to Mainnet in the systemd configuration or docker-compose.yml for clarity - e.g.
   * Description=Teku/Nimbus/Lodestar Consensus Client (Mainnet)
2. Set the network parameter in the systemd configuration or docker-compose.yml files from `holesky` to `mainnet` - e.g.

   ```sh
   sudo nano /etc/systemd/system/"consensus_client.service"
   ```

   * **Teku** (systemd): `--network=holesky`
   * **Nimbus** (systemd): `--network=holesky`
   * **Lodestar** (docker-compose.yml):&#x20;

     ```sh
     sudo nano ~/lodestar_beacon/docker-compose.yml
     ```

     * Amend `--network` flag

       ```
             - --network
             - mainnet
       ```
3. Set the checkpoint sync parameter in the systemd configuration or docker-compose.yml files from a `holesky` endpoint to `mainnet` - e.g.
   * **Teku** (systemd): `--initial-state=`
   * **Nimbus:** Re-run the checkpoint sync process on the mainnet separately.

     ```sh
     sudo /usr/local/bin/nimbus_beacon_node trustedNodeSync --network=mainnet --data-dir=/var/lib/nimbus_beacon --trusted-node-url=https://beaconstate.ethstaker.cc/ --backfill=false
     ```
   * **Lodestar** (docker-compose.yml):&#x20;

     ```
           - --checkpointSyncUrl
           - https://beaconstate.ethstaker.cc
     ```

{% hint style="info" %}
Choose one of the mainnet checkpoint sync URLs here - <https://eth-clients.github.io/checkpoint-sync-endpoints/>
{% endhint %}

Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/WUnWqfxwlYe5PL9Rg7T6" %}
[Set up and configure consensus layer client](/installing-and-configuring-your-el+cl-clients/set-up-and-configure-consensus-layer-client.md)
{% endcontent-ref %}

## MEV-Boost

1. Remove the `-holesky` flag in the systemd configuration file
2. Replace the URLs for your relays (`-relay` flag) with Mainnet ones.

```sh
sudo nano /etc/systemd/system/mevboost.service
```

Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/Y2PN1jhI4eawhg4g3ze2" %}
[Set up and configure MEV-boost](/keystore-generation-and-mev-boost/set-up-and-configure-mev-boost.md)
{% endcontent-ref %}

## Validator clients

1. Optionally, change the `Description` to Mainnet in the systemd configuration or docker-compose.yml for clarity - e.g.
   * Description=Teku/Nimbus/Lodestar Validator Client (Mainnet)
2. Set the network parameter in the systemd configuration or docker-compose.yml files from `holesky` to `mainnet` - e.g.

   ```sh
   sudo nano /etc/systemd/system/"validator_client.service"
   ```

   * **Teku** (systemd): `--network=holesky`
   * **Nimbus** (systemd): No changes required
   * **Lodestar** (docker-compose.yml):&#x20;

     ```sh
     sudo nano ~/lodestar_validator/docker-compose.yml
     ```

     * Amend `--network` flag

       ```
             - --network
             - mainnet
       ```

Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/yoh6eFpvKGFo82aqayhf" %}
[Validator client setup](/native-solo-staking-setup/validator-client-setup.md)
{% endcontent-ref %}

## Validator key generation

Generate a new validator signing keystore and deposit data set for mainnet use.

After following all prior steps, re-run the deposit key generation process while setting the `--chain` flag to `mainnet`.

#### Build from source method

```sh
python3 ./staking_deposit/deposit.py new-mnemonic --num_validators <number> --chain mainnet --eth1_withdrawal_address <YourWithdrawalAaddress>
```

#### Executable binaries method

```sh
./deposit new-mnemonic --num_validators <number> --chain mainnet --eth1_withdrawal_address <YourWithdrawalAaddress>
```

Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/xKRzukcuy2WXF2GE7amh" %}
[Validator key generation](/keystore-generation-and-mev-boost/validator-key-generation.md)
{% endcontent-ref %}

## Depositing 32 ETH

Go to [https://launchpad.ethereum.org](https://launchpad.ethereum.org/) to complete the deposit process. Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/Vpm9jyJ0G3V1FF2vmIFt" %}
[Depositing 32 ETH into your validator](/native-solo-staking-setup/depositing-32-eth-into-your-validator.md)
{% endcontent-ref %}

{% hint style="info" %}
Triple check that the launch pad URL is pointing to the Mainnet and not the Holesky testnet.
{% endhint %}

## Monitoring

#### Beaconcha.in app

Go to <https://beaconcha.in> instead and repeat all steps. Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/XrqiBwzsBRl9jD8nZFcU" %}
[Beaconcha.in App API](/monitoring-maintenance-and-updates/set-up-monitoring-suite/beaconcha.in-app-api.md)
{% endcontent-ref %}

## Diva Staking Setup

{% hint style="info" %}
Coming soon!
{% endhint %}

Jump to section for reference below.

{% content-ref url="/spaces/oML8XLjdWBoYbtGBoQ9R/pages/4QB2MghOxYLnSva5TUNZ" %}
[DVT Setup](/dvt-setup/diva-staking.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dvt-homestaker.stakesaurus.com/replacement-steps-mainnet/replacements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
