Ethereum 2: Adding a second deposit on the Beacon Chain
This article is intended as a secondary guide after someone has already done an initial deposit into ETH 2’s Beacon Chain. There are some great references and documentation on the initial setup including:
https://newsletter.banklesshq.com/p/-guide-how-to-become-a-validator
But, I found it hard to find information on how to add a second deposit and subsequent validator after a period of time. Here is my quick tutorial on the subject. I’ll be referencing Pyrmont instead of Mainnet as it’s always best to test before going to Prod! Also note, I’ll show prysm as the ETH2 client, but I think it works the same for other clients.
Last note, I am only providing this as a guide — do your own homework! There is always a risk that something goes wrong which is why testing and taking a lot of care in doing this is extremely important.
If you follow instructions provided by Prysm — provided here: https://docs.prylabs.network/docs/testnet/pyrmont, you should be successful in setting up your first validator. Assuming that all went fine, a few weeks or months later as you watch the [testnet] ETH roll in, you’ll probably want to another bite of the apple! The process is similar as in the initial deposit, but for two key aspects.
- Obtaining your deposit_data
- Importing the new wallet (this is sort of the same, but you should see more accounts now)
Let’s start with the deposit_data. You’ll already have the deposit cli installed, so you navigate to that directory and type in the following command:
./deposit existing-mnemonic
From there you’ll get asked to input your mnemonic you received when first creating your wallet. Hopefully you wrote that down somewhere…
If you entered this phrase in successfully you’ll be met with this response:
Enter the index (key number) you wish to start generating more keys from. For example, if you've generated 4 keys in the past, you'd enter 4 here, [0]:
Sort of self explanatory, but just incase 0 is the first wallet, 1 is the second and so forth. So if this is the second deposit, you’ll want to use 1 here. Next, you’ll get:
Please choose how many validators you wish to run:
That’s up to you, but remember that each validator is 32 ETH and you’ll need this to match what you put in the launchpad: https://pyrmont.launchpad.ethereum.org/
Please choose the (mainnet or testnet) network/chain name (mainnet, witti, altona, medalla, spadina, zinken, pyrmont) [mainnet]:
You could have skipped the above if you put in -chain pyrmont and/or -num_validators 1), but I like to go through these steps to get added confirmation. Last, you’ll have to enter in your keystore password.
If successful, within the cli folder you should now have two new files: a new deposit_data file and a new keystore file (or more than based on the number of validators). The keystore file will have the same name as the others with the exception of an index (which should be 1 if this is the second account).
This newly created deposit_data file is the one we need to place into the launchpad here:

Go through this process to the end and get your confirmation that the ETH has been deposited into the ETH2 contract.
Now, since you’re probably running your validator, you’ll need to shut that down for a bit while you import this new account (Note: there may be a better way to do this without shutting down the validator, but it doesn’t take long so I just did it). Once in the prysm directory, you now run this command:
./prysm.sh validator accounts import --keys-dir=/path/to/validator_keys --pyrmont
It may ask you for your wallet directory as well if you’re not using the default location. Every time I’ve done this it will always generate a new wallet, which has been fine — you just replace the existing one with the new one. Maybe someone knows a better way. In any case, you need to put in the password of the keystore. Hopefully you should see this:
Successfully imported {n} accounts, view all of them by running accounts list
Here is where I replace the existing wallet with the newly created one and run:
./prysm.sh validator accounts list --wallet-dir=/path/to/wallet
And the response should be something like this:
Showing {n} validator accountsView the eth1 deposit transaction data for your accounts by running `validator accounts list --show-deposit-dataAccount 0 | easily-relative-lemur[validating public key] 0xa531....Account 1 | clearly-selected-chimp[validating public key] 0x99c...
Go ahead and fire up the validator again and you should be good to go!
./prysm.sh validator --wallet-dir=/path/to/wallet --pyrmont
If the deposit hasn’t been reflected in ETH2 you’ll have to wait for that, and if there is a queue for validators (900 /day) you’ll have to wait some more. But you can always check https://pyrmont.beaconcha.in/validator/ and paste in the public keys to see where you sit.
Happy validating!
Join Coinmonks Telegram group and learn about crypto trading and investing
Also, Read
- Learn Ethereum and Web3 development
- The Best Crypto Trading Bot
- 3Commas Review
- Pionex Review
- AAX Exchange Review | Referral Code, Trading Fee, Pros and Cons
- Deribit Review | Options, Fees, APIs and Testnet
- FTX Crypto Exchange Review
- NGRAVE ZERO review
- Bybit Exchange Review
- 3Commas vs Cryptohopper
- The Best Bitcoin Hardware wallet
- Crypto Copy Trading Platforms
- ledger nano s vs x
- Vauld Review
- The Best Crypto Tax Software
- Best Crypto Trading Platforms
- Best Crypto Lending Platforms
- Ledger Nano S vs Trezor one vs Trezor T vs Ledger Nano X
- BlockFi vs Celsius vs Hodlnaut
- Bitsgap review — A Crypto Trading Bot That Makes Easy Money
- Quadency Review- A Crypto Trading Bot Made For Professionals
- CoinTracking Review
- YouHodler Review
- Ellipal Titan Review
- SecuX Stone Review
- BlockFi Review | Earn up to 8.6% interests on your Crypto
- Coinrule review
- Best Blockchain Analysis Tools
- Crypto arbitrage guide: How to make money as a beginner
- Best Crypto Charting Tool
- What are the best books to learn about Bitcoin?
