# User Instructions

**Note: In this video, we have taken the example of a validator from ethereum testnet to demonstrate the script. Due to security reasons, we can't demonstrate mainnet activity here. Make sure you also follow best security practices while performing the steps and do not share your mnemonic or other sensitive information related to your validator.**

{% embed url="<https://drive.google.com/file/d/1MIfoiRSx12QPawJr8YZOr94PtxK9j45B/view?usp=share_link>" %}
Video Guide For Windows
{% endembed %}

{% embed url="<https://drive.google.com/file/d/1tH8NV2MhYDQ5NxFUk9YWysXMG14QKG_v/view?usp=share_link>" %}
Video Guide For Mac/Linux
{% endembed %}

1. Open your terminal/powershell and navigate to the folder that has your Key.pem file.

Note: “Key.pem” is your ec2 instance key that was generated during validator creation. To navigate into the folder, type in the following command:

```sh
cd </Path/to/Key.pem>
#Example: cd /Users/Downloads
```

2. Login to your AWS console, and search for EC2.
3. Open the EC2 dashboard and click on Instances.
4. Select the validator instance and click on Connect (top right).
5. Under SSH Client, you will find a command. For example,

ssh -i "Key.pem" <ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com>

6. Copy the command and paste it into your terminal/powershell and click enter.
7. Now, move into your validator keys folder. You can do that by simply using the following command.

```sh
cd validator_keys
```

8. Type in the following command and click enter. You should see the contents inside your validator\_keys folder.

```sh
ls
```

9. Now, move back to your home directory by simply typing the following and clicking enter.

```sh
cd
```

10. Copy and paste the following command

```bash
bash <(curl -s https://raw.githubusercontent.com/launchnodes/ValidatorNodeProduct/main/Withdrawal_Scripts/BLS_to_Execution.sh)
```

11. Enter the name of your deposit-data.json file. This file lies in your validator\_keys folder that you created while setting up your validator.
12. Enter your 24 words validator mnemonic phrase that was generated during key generation for your nodes. Make sure you are not sharing your screen with anyone while performing this because the mnemonic phrase sensitive information.
13. Enter the start validator index. Validator start index is 0 if you want to set up withdrawal address for all your validators.
14. Enter a wallet address of yours to which you have full access, which could be your Ethereum wallet address, that you deployed your node from, For example, your metamask wallet address or any other Ethereum address of your ownership.

<mark style="color:red;">Note: Once the execution address is provided, it cannot be changed. Make sure you have full access to the wallet address. All the rewards will be deposited to that address. If you lose access to the wallet address, you will lose your funds.</mark>

15. Once this step has been successful, the terminal will prompt you to enter your chosen wallet address one more time.&#x20;
16. This will create a folder “bls\_to\_execution\_changes” in which you can find the file “bls\_to\_execution\_changes.json” which needs to be broadcasted onto the blockchain. Below is a video for your reference.

{% embed url="<https://drive.google.com/file/d/1uUtZQpVgHPgl155uS6fhIbB_dIKaI6d5/view?usp=share_link>" %}
Broadcasting video guide For Windows
{% endembed %}

{% embed url="<https://drive.google.com/file/d/1ElYSIfm3z5wnjVMVFQ-sHnL9T_NTcRg8/view?usp=share_link>" %}
Broadcasting video guide For Mac/Linux
{% endembed %}

Before broadcasting, your beaconcha validator would look like the below shown image:

<figure><img src="https://3568239132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsvX7yPIcOJWsmSMfxRHD%2Fuploads%2FoLbN2ocHTbDNzxiwQF1t%2Fimageedit_8_7070601499.png?alt=media&#x26;token=ec9f41f9-6be7-4ffc-a747-59d2ed21d846" alt=""><figcaption><p>Before Broadcasting</p></figcaption></figure>

17. To broadcast the file, enter the following command&#x20;

```bash
bash <(curl -s https://raw.githubusercontent.com/launchnodes/ValidatorNodeProduct/main/Withdrawal_Scripts/Broadcast.sh)
```

18. Enter your bls\_to\_execution\_change.json file location here.&#x20;
19. Enter the following command to find the location of your bls\_to\_execution\_change.json file, if you are having any trouble to do so.

```sh
pwd
#It will display the path. For example: /home/ec2-user/bls_to_execution_changes.json
```

<mark style="color:blue;">Note: The location will be displayed in the terminal/powershell as well, once the file is created. For example, /home/ec2-user/bls\_to\_execution\_changes.json.</mark>

20. &#x20;It should display “Broadcasting…” once completed successfully.
21. &#x20;Now, go to the [www.beaconcha.in](https://www.beaconcha.in) dashboard and search for your validator, the change would be reflected here. You can see that your withdrawals are enabled.&#x20;

<figure><img src="https://3568239132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsvX7yPIcOJWsmSMfxRHD%2Fuploads%2FeCN3O67Y07KsrajL1EIH%2Fimageedit_9_2135999260.png?alt=media&#x26;token=7a0b9b6c-1369-4e79-af4d-7cbece2db109" alt=""><figcaption><p>After Broadcasting</p></figcaption></figure>


---

# Agent Instructions: 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://launchnodes.gitbook.io/ethereum-validator-withdrawal-instructions/user-instructions.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.
