Select a configuration
If you're looking for the simplest configuration, select
- Operating system:
- Linux, MacOS, Arm64
Prysm is an implementation of the Ethereum proof-of-stake consensus specification. In this quickstart, you’ll use Prysm to run an Ethereum node and optionally a validator. This will let you stake 32 ETH using hardware that you manage.
This is a beginner-friendly guide. Familiarity with the command line is expected, but otherwise this guide makes no assumptions about your technical skills or prior knowledge.
At a high level, we'll walk through the following flow:
- Configure an execution node using an execution-layer client.
- Configure a beacon node using Prysm, a consensus-layer client.
- Configure a validator and stake ETH using Prysm (optional).
Not familiar with nodes, networks, and related terminology? Consider reading Nodes and networks before proceeding.
Step 1: Review prerequisites and best practices
|Execution + beacon|
|Validator||Lets you stake ETH, propose + validate blocks, earn staking rewards + transaction fee tips.|
- If you're staking ETH as a validator, try this guide on a testnet first, then mainnet.
- Keep things simple. This guidance assumes all client software will run on a single machine.
- Review the latest advisories for the network(s) that you're using: Goerli-Prater, Mainnet.
- Review all of our published security best practices.
- Join the community - join our mailing list, the Prysm Discord server, r/ethstaker, and the EthStaker Discord server for updates and support.
Step 2: Install Prysm
Frequently asked questions
How long does it take for Geth to transition from
State heal in progress to fully synced?
This usually takes a few hours if your disk I/O is relatively slow. If it remains in this state for more than a day, your disk might not be able to write data as fast as the chain head advances. The most straightforward way to resolve this is using an SSD.
Why do you recommend putting everything on a single machine?
Keeping all of your client software on a single machine keeps things simple, which aligns with our security best practices.
Can I use Prysm on a Mac M1 ARM chip?
Yes. Choose one of the following actions to ensure that Prysm can run on your M1:
- Set an environment variable:
export PRYSM_ALLOW_UNVERIFIED_BINARIES=1. See Apple's Terminal User Guide: Use environment variables for detailed instructions.
- Run Prysm through Rosetta. See our open bug for more information.
Do I need to configure JWT if I'm using IPC instead of HTTP?
Do I need to configure my firewall?
We recommend closing TCP port
8545 to the internet and keeping TCP and UDP ports
30303 open to support other execution nodes.
Can you mix and match networks between execution layer and consensus layer?
No. See Nodes and networks for more information.
Can I stake with less than 32 ETH?
Yes! Pooled staking lets you stake with less than 32 ETH.
What should I do if I can't run a node using my own hardware?
You can delegate hardware management to staking as a service providers.
Can I use a light node with Prysm, or do I need to run a full execution node?
No - at this time, a full node is required.
Can I use an external SSD connected via USB?
Yes, but your USB connection introduces a possible point of failure. If you do this, avoid connecting your SSD to your computer through a USB hub - instead, connect it directly.
Can I use a light client as my local execution client so I don't have to download so much data?
No, a full execution node is needed.
Why do I need to run my own execution client?
The Merge introduced a new Engine API that allows consensus-layer clients to communicate with execution-layer clients. Teku docs contain a great explainer here: The Merge.
What happens if my execution client goes down? Will I be penalized?
Yes. Downtime penalties are minimal but we recommend having uptime and downtime alerts configured for your execution node, beacon node, and validator if possible.
My beacon node is taking a long time to sync. Is there any way I can speed it up?
Yes - you can use checkpoint sync to start your beacon node's synchronization from a checkpoint rather than from genesis. This is actually a more secure way to run your beacon node.
My proposals aren't working, but my attestations are. What's going on?
This is usually an indication that your validator isn't able to communicate with your beacon node, or your beacon node isn't able to connect to your execution node.
How long does it take for my validator to be selected to propose a new block?
At the time of this writing, a ballpark estimate is around a week. Every 12 seconds a new block is proposed, and your validator has a one in [total number of active validators] chance of being chosen, so this duration can vary significantly from one validator to the next.