- Pre-production warning
- Tutorial for users
- Build requirements
- For Linux or MacOS users
- For Windows users
- Development
This software is a pre-release version which has not yet been audited and therefore should not yet be trusted to generate keys with the intent of securing actual ETH.
See releases page to download and decompress the corresponding binary files.
Run the following command to enter the interactive CLI and generate keys from a new mnemonic:
./deposit new-mnemonic
or run the following command to enter the interactive CLI and generate keys from an existing:
./deposit existing-mnemonic
The CLI offers different commands depending on what you want to do with the tool.
Command | Description |
---|---|
new-mnemonic |
(Recommended) If you don't already have a mnemonic that you have securely backed up, or you want to have a separate mnemonic for your eth2 validators, use this option. |
existing-mnemonic |
If you have a mnemonic that you already use, then this option allows you to derive new keys from your existing mnemonic. Use this tool, if you have already generated keys with this CLI before, if you want to reuse your mnemonic that you know is secure that you generated elsewhere (reusing your eth1 mnemonic etc), or if you lost your keystores and need to recover your validator/withdrawal keys. |
You can use new-mnemonic --help
to see all arguments. Note that if there are missing arguments that the CLI needs, it will ask you for them.
Argument | Type | Description |
---|---|---|
--num_validators |
Non-negative integer | The number of signing keys you want to generate. Note that the child key(s) are generated via the same master key. |
--mnemonic_language |
String. Options: czech , chinese_traditional , chinese_simplified , english , spanish , italian , korean . Default to english |
The mnemonic language |
--folder |
String. Pointing to ./validator_keys by default |
The folder path for the keystore(s) and deposit(s) |
--chain |
String. mainnet by default |
The chain setting for the signing domain. |
You can use existing-mnemonic --help
to see all arguments. Note that if there are missing arguments that the CLI needs, it will ask you for them.
Argument | Type | Description |
---|---|---|
--validator_start_index |
Non-negative integer | The index of the first validator's keys you wish to generate. If this is your first time generating keys with this mnemonic, use 0. If you have generated keys using this mnemonic before, use the next index from which you want to start generating keys from (eg, if you've generated 4 keys before (keys #0, #1, #2, #3), then enter 4 here. |
--num_validators |
Non-negative integer | The number of signing keys you want to generate. Note that the child key(s) are generated via the same master key. |
--folder |
String. Pointing to ./validator_keys by default |
The folder path for the keystore(s) and deposit(s) |
--chain |
String. mainnet by default |
The chain setting for the signing domain. |
You will see the following messages after successfully generated the keystore(s) and the deposit(s):
Creating your keys.
Saving your keystore(s).
Creating your deposit(s).
Verifying your keystore(s).
Verifying your deposit(s).
Success!
Your keys can be found at: <YOUR_FOLDER_PATH>
Ensure you are using Python version >= Python3.7:
python3 -V
Install the dependencies:
pip3 install -r requirements.txt
python3 setup.py install
Or use the helper script:
./deposit.sh install
Run one of the following command to enter the interactive CLI:
./deposit.sh new-mnemonic
or
./deposit.sh existing-mnemonic
You can also run the tool with optional arguments:
./deposit.sh new-mnemonic --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
./deposit.sh existing-mnemonic --num_validators=<NUM_VALIDATORS> --validator_start_index=<START_INDEX> --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
See here
See here for new-mnemonic
arguments
See here for existing-mnemonic
arguments
See here
Ensure you are using Python version >= Python3.7:
python3 -V
For the virtualenv users, you can create a new venv:
pip3 install virtualenv
virtualenv venv
source venv/bin/activate
and install the dependencies:
python3 setup.py install
pip3 install -r requirements.txt
Run one of the following command to enter the interactive CLI:
python3 ./eth2deposit/deposit.py new-mnemonic
or
python3 ./eth2deposit/deposit.py existing-mnemonic
You can also run the tool with optional arguments:
python3 ./eth2deposit/deposit.py new-mnemonic --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
python3 ./eth2deposit/deposit.py existing-mnemonic --num_validators=<NUM_VALIDATORS> --validator_start_index=<START_INDEX> --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
See here
See here for new-mnemonic
arguments
See here for existing-mnemonic
arguments
Run the following command to locally build the docker image:
make build_docker
Run the following command to enter the interactive CLI:
docker run -it --rm -v $(pwd)/validator_keys:/app/validator_keys ethereum/eth2.0-deposit-cli
You can also run the tool with optional arguments:
docker run -it --rm -v $(pwd)/validator_keys:/app/validator_keys ethereum/eth2.0-deposit-cli --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --folder=<YOUR_FOLDER_PATH>
Example for 1 validator on the Medalla testnet using english:
docker run -it --rm -v $(pwd)/validator_keys:/app/validator_keys ethereum/eth2.0-deposit-cli --num_validators=1 --mnemonic_language=english --chain=medalla
See here
See here
See releases page to download and decompress the corresponding binary files.
Run one of the following command to enter the interactive CLI:
deposit.exe new-mnemonic
or
deposit.exe existing-mnemonic
You can also run the tool with optional arguments:
deposit.exe new-mnemonic --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
deposit.exe existing-mnemonic --num_validators=<NUM_VALIDATORS> --validator_start_index=<START_INDEX> --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
See here
See here for new-mnemonic
arguments
See here for existing-mnemonic
arguments
Ensure you are using Python version >= Python3.7 (Assume that you've installed Python 3 as the main Python):
python -V
Install the dependencies:
pip3 install -r requirements.txt
python setup.py install
Or use the helper script:
sh deposit.sh install
Run one of the following command to enter the interactive CLI:
./deposit.sh new-mnemonic
or
./deposit.sh existing-mnemonic
You can also run the tool with optional arguments:
./deposit.sh new-mnemonic --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
./deposit.sh existing-mnemonic --num_validators=<NUM_VALIDATORS> --validator_start_index=<START_INDEX> --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
See here
See here for new-mnemonic
arguments
See here for existing-mnemonic
arguments
Ensure you are using Python version >= Python3.7 (Assume that you've installed Python 3 as the main Python):
python -V
For the virtualenv users, you can create a new venv:
pip3 install virtualenv
virtualenv venv
.\venv\Scripts\activate
and install the dependencies:
python setup.py install
pip3 install -r requirements.txt
Run one of the following command to enter the interactive CLI:
``cmd python .\eth2deposit\deposit.py new-mnemonic
or
```cmd
python .\eth2deposit\deposit.py existing-mnemonic
You can also run the tool with optional arguments:
python .\eth2deposit\deposit.py new-mnemonic --num_validators=<NUM_VALIDATORS> --mnemonic_language=english --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
python .\eth2deposit\deposit.pyexisting-mnemonic --num_validators=<NUM_VALIDATORS> --validator_start_index=<START_INDEX> --chain=<CHAIN_NAME> --folder=<YOUR_FOLDER_PATH>
See here
See here for new-mnemonic
arguments
See here for existing-mnemonic
arguments
python3 -m pip install -r requirements.txt
python3 setup.py install
python3 -m pip install -r requirements_test.txt
python3 -m pytest .