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

# Generating Validator Keys

The ZugChain Deposit CLI is a secure, offline tool used to generate your cryptographic validator keys and deposit data. This step is required before you can run a node.

{% hint style="danger" %}
Keep Your Mnemonic Safe: Always generate your keys on a secure machine. NEVER share your 24-word mnemonic phrase with anyone. Official Deposit Contract: The ONLY official ZugChain Beacon Deposit Contract address is <kbd>0x00000000219ab540356cBB839Cbe05303d7705Fa</kbd>. Always verify this exact address before making your validator deposit!
{% endhint %}

{% tabs %}
{% tab title="Linux" %}

1. #### <mark style="color:$primary;">Download & Extract</mark>

Download the latest Linux binary (<kbd>zugchain-deposit-cli-linux-amd64.tar.gz</kbd>) from the [Official Releases Page](https://github.com/ZugChainLabs/zugchain-deposit-cli/releases). Open your terminal and extract it:

```bash
wget https://github.com/ZugChainLabs/zugchain-deposit-cli/releases/download/v1.1.0/zugchain-deposit-cli-v1.1.0-linux-amd64.tar.gz
```

```bash
tar -xzf zugchain-deposit-cli-linux-amd64.tar.gz
```

```bash
cd zugchain-deposit-cli-linux-amd64
```

2. #### <mark style="color:$primary;">Run the Generator</mark>

*Execute the generation wizard:*

```bash
./deposit new-mnemonic --num_validators=1 --chain=zugchain
```

Follow the interactive prompts to create your password and write down your 24-word seed phrase safely.
{% endtab %}

{% tab title="Windows" %}

1. #### <mark style="color:$primary;">Download & Extract</mark>

Download the latest Windows executable (`zugchain-deposit-cli-windows-amd64.zip`) from the [Official Releases Page](https://github.com/ZugChainLabs/zugchain-deposit-cli/releases). Extract the `.zip` file to a folder on your computer.

2. #### <mark style="color:$primary;">Run the Generator</mark>

*Open PowerShell inside that extracted folder and run the generation wizard:*

```bash
.\deposit.exe new-mnemonic --num_validators=1 --chain=zugchain
```

Follow the interactive prompts to create your password and write down your 24-word seed phrase safely.
{% endtab %}

{% tab title="macOS" %}

1. #### <mark style="color:$primary;">Prepare Ubuntu Environment</mark>

Native macOS binaries are coming soon. For now, we will securely generate the keys using the Linux binary inside an Ubuntu Virtual Machine. Paste this command into your Mac Terminal to check if Ubuntu is installed, install it if missing, and log in:

{% code title="# Check if Multipass is installed, install if not" %}

```bash
if ! command -v multipass &> /dev/null; then
    echo "Multipass not found. Installing via Homebrew..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    brew install multipass
fi
```

{% endcode %}

{% code title="# Check if our ZugChain VM exists, launch if not" %}

```bash
if ! multipass info zugchain-node &> /dev/null; then
    echo "Launching Ubuntu VM..."
    multipass launch ubuntu --name zugchain-node
fi
```

{% endcode %}

{% code title="# Enter the Ubuntu environment" %}

```bash
multipass shell zugchain-node
```

{% endcode %}

2. #### <mark style="color:$primary;">Download & Run the Generator</mark>

*Now that you are inside Ubuntu, download the Linux binary and run the wizard:*

```bash
wget https://github.com/ZugChainLabs/zugchain-deposit-cli/releases/download/v1.1.0/zugchain-deposit-cli-v1.1.0-linux-amd64.tar.gz
```

```bash
tar -xzf zugchain-deposit-cli-linux-amd64.tar.gz
```

```bash
cd zugchain-deposit-cli-linux-amd64
```

```bash
./deposit new-mnemonic --num_validators=1 --chain=zugchain
```

{% endtab %}
{% endtabs %}

#### <mark style="color:$primary;">📂 Output Files</mark>

After successfully running the wizard, a `validator_keys` directory will be created containing two distinct file types:

<table data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><mark style="color:$primary;">deposit_data-[timestamp].json</mark></td><td>Upload this file to the ZugChain Launchpad to register your validator and securely make your 32,000 ZUG deposit.</td></tr><tr><td><mark style="color:$primary;">keystore-m_...json</mark></td><td>Import this file into your server's Validator Client. Keep it extremely safe, as it authorizes your node to participate in consensus.</td></tr></tbody></table>


---

# 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://zugchain.gitbook.io/zugchain/validator-operations/generating-validator-keys.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.
