Skip to main content
Version: Next

Installing Prysm with prysm.sh

Prysm can be installed on Windows, GNU/Linux, MacOS, or ARM64 systems using the Prysm installation script which downloads signed binaries from our latest release. This page includes instructions for performing this process.

Have questions? Stop by the #documentation channel on Discord and let us know.

System requirements#

Minimum specifications#

These specifications must be met in order to successfully run the Prysm client.

  • Operating System: 64-bit Linux, Mac OS X 10.14+, Windows 64-bit
  • Processor: Intel Core i5โ€“760 or AMD FX-8100 or better
  • Memory: 8GB RAM
  • Storage: 20GB available space SSD
  • Internet: Broadband connection

Recommended specifications#

These hardware specifications are recommended, but not required to run the Prysm client.

  • Processor: Intel Core i7โ€“4770 or AMD FX-8310 or better
  • Memory: 16GB RAM
  • Storage: 100GB available space SSD
  • Internet: Broadband connection

Installing Prysm#

The easiest way to install Prysm is by running the prysm.sh script found in the main directory of the Prysm repository. This script will download and start up the latest release of Prysm binaries compatible with the host system.

Downloading the Prysm startup script#

  1. Open a terminal in the desired directory for Prysm. Then create a working directory and enter it:
mkdir prysm && cd prysm
  1. Fetch the prysm.sh script from Github and make it executable:
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh

Now that you downloaded the .sh file, you can proceed to joining eth2.

Running a Beacon Node#

Before you begin: pick your network#

When running Prysm, you can choose to run in the main network which has real assets at stake, or in a test network which is used by developers and stakers that might want to gain some confidence before depositing 32 ETH to validate. The currently supported networks in Prysm are

  • Mainnet which is the current, live version of Ethereum proof-of-stake with billions of dollars worth of real ETH
  • Prater testnet which is a useful staging testnet for development and users that want to try things out before hopping into the real mainnet

Mainnet is enabled by default in all Prysm commands. If you want to use the Prater testnet, just add --prater to all your Prysm commands.

Make sure you are running on the main network (mainnet) if using real money!

Do not use --prater if you are using real funds and staking your ETH on mainnet. Testnets use testnet ETH to run the network and do not represent real value.

Step 1: Set up an Eth1 Endpoint#

First, let's run a beacon node connected to the main eth2 network. To run a beacon node, you will need access to an eth1 node. We have dedicated instructions for this here.

Step 2: Sync your beacon node#

Note: <YOUR_ETH1_NODE_ENDPOINT> is in the format of an http endpoint such as http://host:port (ex: http://localhost:8545 for geth) or an IPC path such as /path/to/geth.ipc.

Mainnet

./prysm.sh beacon-chain --http-web3provider=<YOUR_ETH1_NODE_ENDPOINT>

Prater

Download the genesis state from github.com/eth2-clients/eth2-networks/blob/master/shared/prater/genesis.ssz to a local file, then run

./prysm.sh beacon-chain --http-web3provider=<YOUR_ETH1_NODE_ENDPOINT> --prater --genesis-state=/path/to/genesis.ssz

Running a Validator#

A validator is an optional process that can be attached to a running beacon node to stake your ETH and participate in the chain's consensus. It is the analogue of a miner from proof-of-work-based systems.

Before you begin: pick your network#

When running Prysm, you can choose to run in the main network which has real assets at stake, or in a test network which is used by developers and stakers that might want to gain some confidence before depositing 32 ETH to validate. The currently supported networks in Prysm are

  • Mainnet which is the current, live version of Ethereum proof-of-stake with billions of dollars worth of real ETH
  • Prater testnet which is a useful staging testnet for development and users that want to try things out before hopping into the real mainnet

Mainnet is enabled by default in all Prysm commands. If you want to use the Prater testnet, just add --prater to all your Prysm commands.

Step 1: Ensure your beacon node is synced#

An important step in the process is ensuring your beacon node is all set up before trying to run a validator. This is because after your validator is inducted into the participating validator set, it is expected to begin performing its duties almost right away. It is important to run a validator with a node that is synchronized to the chain head so you can start earning ETH instead of losing it.

Syncing your node

The beacon-chain node you are using should be completely synced before submitting your deposit. You may incur minor inactivity balance penalties if the validator is unable to perform its duties by the time the deposit is processed and activated by the beacon chain network.

You can check the sync status of your node with the following command on most systems:

curl http://localhost:3500/eth/v1alpha1/node/syncing

If your node is done synchronizing, you will see the response:

{"syncing":false}%

Step 2: Send your validator deposit via the Ethereum validator launchpad#

Ensure You Are Not Being Scammed

The correct address for the mainnet launchpad is https://launchpad.ethereum.org and the only, official validator deposit contract is 0x00000000219ab540356cbb839cbe05303d7705fa. Do not send ETH directly to the contract, and only join by using the eth2 launchpad.

The Mainnet Eth2 Launchpad is the easiest way to go through a step-by-step process to deposit your 32 ETH to become a validator. If you want to participate in the testnet, you can navigte to the Prater Eth2 Launchpad instead.

Throughout the process, you'll be asked to generate new validator credentials using the official Ethereum deposit command-line-tool here. Make sure you use the mainnet option when generating keys with the deposit CLI. During the process, you will have generated a validator_keys folder under the eth2.0-deposit-cli directory. You can import all of your validator keys into Prysm from that folder in the next step.

Step 3: Import keystores into Prysm#

For this step, you'll need to copy the path to the validator_keys folder under the eth2.0-deposit-cli directory you created during the launchpad process. For example, if your eth2.0-deposit-cli installation is in your $HOME (or %LOCALAPPDATA% on Windows) directory, you can then run the following commands for your operating system

Note: You will be asked to do a one time acknowledgement of our Terms of Use. You can also read the legal terms first, then confirm them via a flag using --accept-terms-of-use in both your beacon node and validator.

./prysm.sh validator accounts import --keys-dir=$HOME/eth2.0-deposit-cli/validator_keys

Step 4: Run your Prysm validator#

Open a second terminal window. Depending on your platform, issue the appropriate command from the examples below to start the validator.

./prysm.sh validator

Step 6: Wait for your validator assignment#

Please note it will take time for nodes in the network to process a deposit. To understand the timeline of becoming a validator and how long it takes on average, please read this knowledge base. In the meantime, leave both terminal windows open and running; once the validator is activated by the ETH2 network, it will immediately begin receiving tasks and performing its responsibilities. If the eth2 chain has not yet started, the validator will be ready to start proposing blocks and signing votes as soon as the genesis time is reached.

To check on the status of your validator, we recommend checking out the popular block explorers: beaconcha.in by Bitfly and beacon.etherscan.io by the Etherscan team.

image

Advanced Configuration and Key Management#

For running an advanced wallet setups, our documentation includes comprehensive guides as to how to use the wallet built into Prysm to recover another wallet, use a remote signing server, and more. You can read more about it here.

Congratulations, you are now fully participating in Ethereum proof-of-stake

Still have questions? Stop by our Discord for further assistance!