Files
documentation/website/docs/wallet/nondeterministic.md
2021-10-04 13:26:54 -04:00

5.6 KiB

id, title, sidebar_label
id title sidebar_label
nondeterministic Imported wallet Imported wallet

Background

An imported wallet provides the ability to import existing EIP-2335 keystore files into Prysm, such as those generated by the eth2.0-deposit-cli. If you created a deposit using the official Ethereum launchpad and want to run Prysm using it, see our dedicated instructions here.

:::tip Pro-Tip This is one of the safest ways of running Prysm, because you can generate your wallet using any other software you prefer such as the official eth2.0-deposit-cli and simply import the validating keys you need. You can then keep your mnemonic and all other sensitive information secure and away from your validator. :::

Validator private keys are encrypted with a password using the EIP-2335 keystore.json standard for storing BLS12-381 private keys.

Validating keys are stored in the wallet's directory under a single all-accounts.keystore.json file which is encrypted with a strong wallet password.

wallet-dir/
	accounts/
		all-accounts.keystore.json

Your password to unlock this file is not stored on disk by Prysm. You will need to provide it anytime you run the validator or provide it via your own file using the --wallet-password-file flag.

Usage

Wallet creation

A non-HD wallet is the most basic sort of wallet, storing all information on-disk. This approach makes it trivial to import, export and list all associated accounts within the wallet. To start using the non-HD wallet, you can create a new wallet using:

./prysm.sh validator wallet create

Then select non-HD wallet when prompted. You can also create a wallet non-interactively by using the following command line flags, which are also viewable by typing `./prysm.sh validator wallet create --help.

:::info You'll need to set a strong password for your wallet, containing at least 1 uppercase letter, 1 number, a special character, and be at least 8 characters long. Any unicode characters can be used for passwords. :::

Flag Usage
--wallet-dir Path to a wallet directory (default: "$HOME/Eth2Validators/prysm-wallet-v2")
--wallet-password-file Path to a file containing your wallet's password for automatic unlocking
--keymanager-kind Type of wallet to create, either "imported", "derived, or "remote" (default "derived")

Here's a full example on how to create a non-HD wallet at $HOME/mynonhdwallet.

./prysm.sh validator wallet create --wallet-dir=$HOME/nonhdwallet --wallet-password-file=/path/to/password.txt --keymanager-kind=imported

Import validator accounts

You can import validator keystores from a separate folder into your wallet with the following command

./prysm.sh validator accounts import --keys-dir=/path/to/keystores

This will import all files that are valid EIP-2335 keystores, such as those generated by the official eth2 deposit launchpad's command-line tool. For more information on how to run Prysm when coming from launchpad, read our eth2 launchpad onboarding documentation. The files you are importing must have the prefix keystore-.

List validator accounts

You can list all validator accounts in your non-HD wallet using the following command

./prysm.sh validator accounts list

Where you'll see the following output

INFO accounts: (wallet path) /Users/johndoe/Library/Eth2Validators/prysm-wallet-v2

Showing **1** validator account

personally-conscious-echidna
[public key] 0x971d780edfe98743f41cdcdba8521548fc343ffcd958e90968c4f1cc5a2e9b6ea11a984397c34c6cc13e9d4e8d14ce1e
[created at] 16 minutes ago

You can also run the accounts list command non-interactively by using the following command line flags, which are also viewable by typing `./prysm.sh validator accounts list --help.

Flag Usage
--wallet-dir Path to a wallet directory (default: "$HOME/Eth2Validators/prysm-wallet-v2")
--wallet-password-file Path to a plain-text file containing your wallet password

Backup validator accounts

:::danger Be very careful using validator account backups! If you have made a validator account backup and plan to use it on a different instance, please confirm that you do not run multiple instances of the same validator twice. This will result in slashing and major loss of user funds. :::

You can backup validator accounts from your imported wallet using the following command.

./prysm.sh validator accounts backup

You can also run the accounts backup command non-interactively by using the following command line flags, which are also viewable by typing `./prysm.sh validator accounts backup --help.

Flag Usage
--wallet-dir Path to a wallet directory on-disk for Prysm validator accounts. (default: $HOME/Eth2Validators/prysm-wallet-v2)
--wallet-password-file Path to a plain-text, .txt file containing your wallet password.
--backup-dir Path to a directory where accounts will be backed up into a zip file. (default: $HOME/Eth2Validators/)
--backup-public-keys Comma-separated list of public key hex strings to specify which validator accounts to backup.
--backup-password-file Path to a plain-text, .txt file containing the desired password for your backed up accounts.