# "Lazy" exits (TESTNET ONLY)

{% hint style="info" %}
This page is only used for Lido CSM testnet participants who want to rapidly exit their validator keys so that they can shut down their testnet services and transition onto Mainnet. For Mainnet exits, please follow all OpSec SOPs in the main **"Existing CSM validators"** section.
{% endhint %}

## Video guide

{% embed url="<https://www.youtube.com/watch?v=fuAI4aXDhyg>" %}

## Preparing to exit

**On your validator node:**

Download the latest version of the `ethdo` tool [here](https://github.com/wealdtech/ethdo/releases).

<pre class="language-sh"><code class="lang-sh"><strong>cd
</strong><strong>wget https://github.com/wealdtech/ethdo/releases/download/v1.35.2/ethdo-1.35.2-linux-amd64.tar.gz
</strong>wget https://github.com/wealdtech/ethdo/releases/download/v1.35.2/ethdo-1.35.2-linux-amd64.tar.gz.sha256
</code></pre>

Verify the checksums by ensuring the outputs of the following 2 commands are the same.

```sh
sha256sum ethdo-1.35.2-linux-amd64.tar.gz
cat ethdo-1.35.2-linux-amd64.tar.gz.sha256
```

Extract the `ethdo` executable file.

```sh
tar xvf ethdo-1.35.2-linux-amd64.tar.gz
```

Download the latest Offline Preparation file from the [Ethstaker github subpage](https://github.com/eth-educators/ethstaker-guides/blob/main/docs/voluntary-exit.md). These are regenerated every day at 0:00 UTC

```sh
wget https://files.ethstaker.cc/offline-preparation-hoodi.tar.gz
wget https://files.ethstaker.cc/offline-preparation-hoodi.tar.gz.sha256
```

Verify the checksums by ensuring the outputs of the following 2 commands are the same.

```sh
sha256sum offline-preparation-hoodi.tar.gz
cat offline-preparation-hoodi.tar.gz.sha256 
```

Extract the `offline-preparation.json` file.

```sh
tar xvf offline-preparation-hoodi.tar.gz
```

Find your validator keystores on your machine.

```sh
sudo find /var/lib -name "keystore*.json"
```

**Example output:**

<figure><img src="https://1628445806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoML8XLjdWBoYbtGBoQ9R%2Fuploads%2FQWUrBtKpxZo0iYQAErfw%2Fimage.png?alt=media&#x26;token=f36d9285-5412-47d3-a425-eecf76e0d84c" alt=""><figcaption></figcaption></figure>

Copy the keystores you want to exit into the $HOME folder. The exact command will depend on your actual file paths.

**Example:**

```
sudo cp -r /var/lib/nimbus_validator/validators $HOME
```

Then change the owner of this copied `validators`folder to your current user.

```sh
sudo chown -R $USER:$USER validators
```

Copy the offline-preparation.json and ethdo files into each validator keystore folders in $HOME.

```sh
cd

for folder in validators/0x*; do
    cp offline-preparation.json ethdo "$folder"
done
```

## Generate exit message

### Method 1: Using validator keystores + password

List all your validator keys.

```sh
ls validators
```

Change directory into the validator key you want to exit.

**Example:**

```sh
cd ~/validators/0x807b70918fe987bf5bde5ac0fb7c5620bbe9aad6a4754a17db52c73ed7208a5ffb9f5fa78d1b7c11e827d71b3ccc03ce 
```

List the actual file name of your validator key.

```sh
ls
```

**Example:**

<figure><img src="https://1628445806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoML8XLjdWBoYbtGBoQ9R%2Fuploads%2FR1aCiNpUb9txqqt3K39g%2Fimage.png?alt=media&#x26;token=6ef54446-8b42-4b83-a5ab-92057cf06a21" alt=""><figcaption></figcaption></figure>

Generate the validator exit message for each of that key.

```sh
./ethdo validator exit --validator="KEYSTORE_FILENAME" --passphrase='KEYSTORE_PASSWORD' --json --offline > exit_message.json
```

**Note:** Replace `KEYSTORE_FILENAME` and `KEYSTORE_PASSWORD` with actual values without removing the quotation marks.

If successful, no output will be generated by the terminal.

### Method 2: Using validator mnemonic

Prepare your 24-word mnemonic and identify your validator index on hoodi.beaconcha.in using the validator public keys found in the **"Preparing to Exit"** section earlier.

Run the following replacing VALIDATOR\_INDEX and MNEMONIC with your actual values.

```sh
./ethdo validator exit --validator=VALIDATOR_INDEX --json --offline --mnemonic="MNEMONIC" > exit_message.json
```

## Broadcast exit message

Print out the exit message.

```sh
cat exit_message.json
```

**Example:**

<figure><img src="https://1628445806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoML8XLjdWBoYbtGBoQ9R%2Fuploads%2F3eDM8jEOl4mw2qX17TeJ%2Fimage.png?alt=media&#x26;token=09a5ec95-481e-440e-ab20-5f3d41b9d17d" alt=""><figcaption></figcaption></figure>

Copy the entire output and go to the [message broadcasting tool of hoodi.beaconcha.in](https://hoodi.beaconcha.in/tools/broadcast) to broadcast your exit message.

Paste your exit message in the text field and hit submit.

<figure><img src="https://1628445806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoML8XLjdWBoYbtGBoQ9R%2Fuploads%2FUBwaYE7NbfTw5q71f3Vb%2Fimage.png?alt=media&#x26;token=53accc53-4cf1-4f7d-8b5e-c9233dda6e89" alt=""><figcaption></figcaption></figure>

Congratulations! Your validator key will be exited soon but in the meantime, you will have to keep your validator node running until your key is fully exited.&#x20;

Repeat the **"Generate Exit Message"** section for all other keys you want to exit.&#x20;

## Feedback & Support

{% embed url="<https://t.me/stakesaurus>" %}

## Supporting Stakesaurus

#### If you found this helpful, consider following me below!

* [Twitter](https://twitter.com/stakesaurus)
* [Newsletter](https://stakesaurus.beehiiv.com/)
