# Generate Validators Keys

## Generate Withdrawal Credential

Before you begin the staking process, you'll need to generate a new withdrawal credential. And we can easily do this with the official tools created by the Ethereum foundation.

{% hint style="success" %}
<https://launchpad.ethereum.org/en/generate-keys>
{% endhint %}

### **Download CLI app**

#### Step 1: Download the deposit command line interface app for your operating system

{% hint style="success" %}
Please make sure that you are downloading from the Ethereum Foundation's official GitHub account - <https://github.com/ethereum/staking-deposit-cli/releases/>
{% endhint %}

<figure><img src="https://3851559242-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdWnQXn9w0LzfZSfrH31H%2Fuploads%2FhOCF6SL8xWXHAlBVB8kK%2Fimage.png?alt=media&#x26;token=130848b6-3501-4e2d-b68c-727ab4d82613" alt=""><figcaption></figcaption></figure>

#### Step 2: Generate deposit keys using the Ethereum Foundation deposit tool

{% hint style="info" %} <mark style="color:blue;">For security, we recommend you disconnect from the internet to complete this step.</mark>
{% endhint %}

* Decompress the file you just downloaded
* Use the terminal to move into the directory that contains the `deposit` executable
* Run the following command to launch the app

```
./deposit new-mnemonic --chain mainnet
```

{% hint style="warning" %}
Please make sure you have set <mark style="color:red;">--chain mainnet</mark> for Mainnet, otherwise the deposit will be invalid.
{% endhint %}

* Now follow the instructions presented to you in the terminal window to generate your keys.

### **Download Key Gen GUI app**

#### Step 1: Download the Wagyu Key Gen app for your operating system

{% hint style="success" %}
Please make sure that you are downloading from the official StakeHouse GitHub account by verifying the url: <https://github.com/stake-house/wagyu-key-gen/releases>
{% endhint %}

<figure><img src="https://3851559242-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdWnQXn9w0LzfZSfrH31H%2Fuploads%2FsVsvL3wajcm4gzVwW2Xf%2Fimage.png?alt=media&#x26;token=906d5c04-5f59-424b-be94-20b6d742434e" alt=""><figcaption></figcaption></figure>

#### Step 2: Generate deposit keys using the Ethereum Foundation deposit tool

{% hint style="info" %} <mark style="color:blue;">For security, we recommend you disconnect from the internet to complete this step.</mark>
{% endhint %}

* Make the file you just downloaded executable.
* Launch the app from your desktop environment by double clicking on it.

{% hint style="warning" %}
Please make sure you select Mainnet when prompted for a network, otherwise the deposit will be invalid.
{% endhint %}

* Follow the instructions presented to you in the application to generate your keys.

### **Build from source**

Choose the OS of the computer you're currently using. This will be the computer you use to generate your keys. It doesn't need to be the OS you want to use for your node.

* [Linux ](#linux)
* [Windows ](#windows)
* [Mac](#mac)

#### Linux&#x20;

**Install python3.7+**

The python3 install process may differ depending on your linux build.If you need help, check out the Python documentation.

[Python installation instructions](https://python.org/about/gettingstarted)

{% hint style="info" %}
You can check your Python version by typing <mark style="color:red;">python3 -V</mark> in your terminal.
{% endhint %}

**Install pip3**

You can install pip using a Linux Package Manager like <mark style="color:red;">apt</mark> or <mark style="color:red;">yum</mark>.[More on installing pip](https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers)

**Install virtualenv**

virtualenv would help you to create an isolated Python environment for deposit-cli tool.[More on virtualenv](https://virtualenv.pypa.io/en/latest/installation.html)

**Install deposit-cli tool**

Download and uncompress the master branch source code from GitHub.

[DOWNLOAD MASTER BRANCH SOURCE CODE](https://github.com/ethereum/staking-deposit-cli/archive/master.zip)

{% hint style="info" %}
If you’re a git user, you can run git clone -b master --single-branch <https://github.com/ethereum/staking-deposit-cli.git> to download the master branch.
{% endhint %}

First, create a venv virtualenv under repository directory:

```
virtualenv venv
source venv/bin/activate
```

Second, install the dependency packages:

```
python3 setup.py install
pip3 install -r requirements.txt
```

**Generate deposit keys using the Ethereum Foundation deposit tool**

{% hint style="info" %}
For security, we recommend you disconnect from the internet to complete this step.
{% endhint %}

Type the following lines into the terminal window:

```
python3 ./staking_deposit/deposit.py new-mnemonic --chain mainnet
```

{% hint style="warning" %}
Make sure you have set --chain mainnet for Mainnet, otherwise the deposit will be invalid.
{% endhint %}

{% hint style="danger" %}
If you have questions about deposit-cli, please visit the GitHub repository.<https://github.com/ethereum/staking-deposit-cli>
{% endhint %}

#### Windows&#x20;

**Install python3.7+**

Download python3 and follow the installation instructions.

* [python.org](https://docs.python.org/3/using/windows.html)
* [Chocolatey](https://chocolatey.org/packages/python)

If you need help, check out the Python documentation.[Python installation instructions](https://python.org/about/gettingstarted)

{% hint style="info" %}
You can check your Python version by typing <mark style="color:red;">python -V</mark> in your terminal.
{% endhint %}

**Install pip3**

The latest version of pip should have been installed with python 3.x.x. For more information about installing pip on Windows, visit [pip ](https://pip.pypa.io/en/stable/installing/). Or you can install the pip package via [Chocolatey](https://chocolatey.org/packages/pip).

**Install virtualenv**

virtualenv would help you to create an isolated Python environment for deposit-cli tool.[More on virtualenv](https://virtualenv.pypa.io/en/latest/installation.html)

**Install deposit-cli tool**

Download and uncompress the master branch source code from GitHub.

[DOWNLOAD MASTER BRANCH SOURCE CODE](https://github.com/ethereum/staking-deposit-cli/archive/master.zip)

{% hint style="info" %}
If you’re a git user, you can run git clone -b master --single-branch <https://github.com/ethereum/staking-deposit-cli.git> to download the master branch.
{% endhint %}

First, create a venv virtualenv under repository directory:

```
virtualenv venv
.\venv\Scripts\activate
```

Second, install the dependency packages:

```
python setup.py install
pip3 install -r requirements.txt
```

**Generate deposit keys using the Ethereum Foundation deposit tool**

{% hint style="info" %}
For security, we recommend you disconnect from the internet to complete this step.
{% endhint %}

Type the following lines into the terminal window:

```
.\staking_deposit\deposit.py new-mnemonic --chain mainnet
```

{% hint style="warning" %}
Make sure you have set --chain mainnet for Mainnet, otherwise the deposit will be invalid.
{% endhint %}

{% hint style="danger" %}
If you have questions about deposit-cli, please visit the GitHub repository.<https://github.com/ethereum/staking-deposit-cli>
{% endhint %}

#### Mac

**Install python3.7+**

You can install python3 on your macOS device using [Homebrew](https://docs.brew.sh/Manpage)If you need help, check out the Python documentation.[Python installation instructions](https://python.org/about/gettingstarted)

{% hint style="info" %}
You can check your Python version by typing <mark style="color:red;">python3 -V</mark> in your terminal.
{% endhint %}

**Install pip3**

You can also use [homebrew](https://docs.brew.sh/Manpage) to install pip3. For the most-up-to-date instructions on installing pip3, and for a direct download link, reference the [pip documentation](https://pip.pypa.io/en/stable/installing/)

**Install virtualenv**

virtualenv would help you to create an isolated Python environment for deposit-cli tool.[More on virtualenv](https://virtualenv.pypa.io/en/latest/installation.html)

**Install deposit-cli tool**

Download and uncompress the master branch source code from GitHub.

[DOWNLOAD MASTER BRANCH SOURCE CODE](https://github.com/ethereum/staking-deposit-cli/archive/master.zip)

{% hint style="info" %}
If you’re a git user, you can run git clone -b master --single-branch <https://github.com/ethereum/staking-deposit-cli.git> to download the master branch.
{% endhint %}

First, create a venv virtualenv under repository directory:

```
virtualenv venv
source venv/bin/activate
```

Second, install the dependency packages:

```
python3 setup.py install
pip3 install -r requirements.txt
```

**Generate deposit keys using the Ethereum Foundation deposit tool**

{% hint style="info" %}
For security, we recommend you disconnect from the internet to complete this step.
{% endhint %}

Type the following lines into the terminal window:

```
python3 ./staking_deposit/deposit.py new-mnemonic --chain mainnet
```

{% hint style="warning" %}
Make sure you have set --chain mainnet for Mainnet, otherwise the deposit will be invalid.
{% endhint %}

{% hint style="danger" %}
If you have questions about deposit-cli, please visit the GitHub repository.<https://github.com/ethereum/staking-deposit-cli>
{% endhint %}

####
