> For the complete documentation index, see [llms.txt](https://blocx.gitbook.io/blocx./llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blocx.gitbook.io/blocx./validator-node/installation-process.md).

# Installation Process

### Step 1: System Preparation

1. Update your system:

   ```bash
   sudo apt update && sudo apt upgrade -y
   ```
2. Install Docker and other dependencies:

   ```bash
   git clone https://github.com/BLOCXTECH/BLOCX-Validator-Setup.git
   cd BLOCX-Validator-Setup
   chmod +x *.sh
   ./docker-setup.sh
   ```

   This script will install Docker, Docker Compose, and other required dependencies.

### Automatic setup

* If you want to do entire thing automatically select option 1 while running

  ```bash
  ./initExecution.sh
  ```
* If you select automatic setup you can skip rest of the steps

### Step 2: Initializing the Node

1. Run the setup script with the "Initialize node only" option:

   ```bash
   ./initExecution.sh
   ```

   Choose option 2 from the menu.
2. The script will unpack the genesis data (if necessary) and initialize the execution client.
3. This process may take several minutes to complete.

### Step 3: Generating Validator Keys

1. From the setup script menu, select option 3 "Generate validator keys".
2. You will be prompted to enter your ETH/BLOCX withdrawal address. This is the address where your staking rewards will be sent if you exit the validator.

   ```bash
   [INPUT] Enter your ETH/BLOCX withdrawal address: 0xYOUR_ETHEREUM_ADDRESS
   ```

   > **CRITICAL**: Ensure this address is correct and that you have access to it. Once set, it CANNOT be changed!
3. Follow the prompts to create a new mnemonic phrase.

   > **CRITICAL**: Record your mnemonic phrase securely! This is your only recovery option if you lose your validator keys.
4. The script will generate your validator keys and move them to the appropriate location.

### Step 4: Creating Keystore Secrets

1. From the setup script menu, select option 4 "Generate keystore secrets".
2. Enter the password you used during the mnemonic generation:

   ```bash
   [INPUT] Enter password used during mnemonic generation: your_password_here
   ```

   > **Important**: This password will be required whenever you need to operate your validator. Store it securely.

### Step 5: Setting Fee Recipient

1. From the setup script menu, select option 5 "Set fee recipient address".
2. Enter your ETH/BLOCX address that will receive transaction fees:

   ```bash
   [INPUT] Enter your ETH/BLOCX fee recipient address: 0xYOUR_FEE_RECIPIENT_ADDRESS
   ```

   This address can be the same as your withdrawal address or a different one.

### Step 6: Starting the Validator Node

1. From the setup script menu, select option 6 "Start validator node".
2. You'll be prompted to enter your server's public IP address or leave it blank for auto-detection:

   ```bash
   [INPUT] Enter your server's public IP address (leave blank for auto-detect):
   ```
3. The script will start the validator node using Docker Compose.
4. Wait for the node to start syncing with the network.

### Depositing Stake

After your node is fully synced with the network, you can deposit your stake to activate your validator:<br>

1. Ensure your node is running and fully synced with the network.

   > ⚠️ **CRITICAL WARNING**: Do NOT deposit your stake before your node is fully synced! If your validator gets activated while your node is not synced, you may receive penalties.
2. Go to the staking launchpad at <https://launchpad.blocxscan.com/>.
3. Follow the instructions on the launchpad to upload your `deposit.json` file and complete your deposit.
4. Wait for your validator to be activated. This can take from several hours to several days depending on the validator activation queue.

### Video Guide: VPS & Launchpad

**Video Credits:** @D3athgr1p<br>

{% file src="/files/kIYQ1QN2jCVvoHv91g8L" %}

<br>


---

# 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, and the optional `goal` query parameter:

```
GET https://blocx.gitbook.io/blocx./validator-node/installation-process.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
