Prysm Documentation
Prysm is an Ethereum proof-of-stake client written in Go. You can use Prysm to participate in Ethereum's decentralized economy by running a node and, if you have 32 ETH
to stake, a validator client. If you're new to Ethereum, you may enjoy our beginner-friendly Nodes and networks explainer.
The following table of contents provides a descriptive overview of Prysm's documentation:
Quickstart: Run a node and (optionally) stake ETH
using Prysm
New Prysm users can follow this guidance to get started with Prysm.
Withdraw your earnings or fully withdraw your validator
Learn how to withdraw your validator's earnings, or entire stake, from Ethereum's Beacon Chain.
Security best practices
Learn how to minimize risk as a validator. The guidelines provided in this document are client-agnostic (they apply to Prysm and other clients, too).
Command-line options
Learn how to configure Prysm's beacon node client, validator client, and more through its command-line interface.
Troubleshooting
Review common troubleshooting scenarios and solutions.
FAQs
Review frequently asked questions and answers.
Advanced installation guides
This section contains alternatives to the script-based installation guidance provided within our Quickstart
Install using Docker
Learn how to install Prysm using preconfigured Docker images that ship with every Prysm release.
Build from source
Learn how to build Prysm from source using Bazel.
Configure MEV builder
Learn how to run your Beacon node with a MEV builder via a relay. This is an advanced option requiring some technical prowess and poses some risks as a validator.
How-tos
This section contains procedural documentation that walks you through specific tasks related to Prysm
Configure Fee Recipient
Learn how to specify a Fee Recipient wallet address that allows validators to earn transaction fee tips post-Merge.
Configure JWT authentication
Prysm needs to securely connect to a local execution node. This how-to shows you how to form this secure connection using a JWT token.
Update and downgrade Prysm
Learn how to keep Prysm updated, how to downgrade Prysm, and how to use release candidates.
Sync from a checkpoint
Syncing from a checkpoint significantly reduces the time it takes for Prysm's Beacon node to sync by piggybacking off of another fully-synced node.
Check node and validator status
Learn how to check the status of your execution node, Beacon node, and validator.
Run a slasher
Learn how to run a slasher, an optional Beacon node process that detects and reports slashable offenses on the Ethereum proof-of-stake network.
Run an archival node
Learn how to run your Beacon node as an archival node. Archival nodes are like regular Beacon nodes that are configured to store more blockchain data locally, increasing data retrieval performance in exchange for increased data storage requirements.
Backups and migrations
This section contains how-tos that will help you back up and migrate Prysm's data.
Back up & restore database
Learn how to back up and restore your Beacon node and validator databases so you can minimize downtime in the event of a system failure.
Import & export slashing protection history
Learn how to import and export your slashing protection history database, a special-purpose database that protects your validator from slashable events.
Move to a new machine
Learn how to migrate from one host system to another while minimizing risk of slashing and downtime.
Switch to a new client
Learn how to migrate from one client to another while minimizing risk of slashing and downtime.
Validator and wallet management
This section contains how-tos that help you manage your validator and associated keys/wallets.
Create a Prysm wallet
Learn how to create a wallet using Prysm.
Import keys into a Prysm wallet
Learn how to import EIP-2335 keystore files into Prysm, such as those generated by the Ethereum deposit CLI.
Maintain validator uptime with systemd
or Docker
Learn how to minimize validator downtime by running your validator as a background service through either Docker or systemd
.
Use Web3Signer
Learn how to use Web3Signer, an open-source remote signing service that allows you to store your validator keys remotely instead of locally.
Add graffiti to blocks
Learn how to configure your validator to add graffiti to the blocks that it proposes.
Exit your validator
Learn how to voluntarily exit your validator from an Ethereum Beacon Chain.
Withdraw your earnings or fully withdraw your validator
Learn how to withdraw your validator's earnings, or entire stake, from Ethereum's Beacon Chain.
Monitoring, metrics, and alerts
This subsection contains how-tos that help you configure monitoring and alerts for Prysm.
Monitor Prysm for expected behavior
Learn how to assess the health of your Prysm Beacon node and/or validator by analyzing output logs.
Monitor validators by index
Learn how to use Prysm to monitor block proposals, attestations, slashings, and more for any number of validators.
Configure dashboarding and alerts with Prometheus and Grafana
Learn how to configure dashboarding and alerts for your node, validator, and slasher using Prometheus (to aggregate data) and Grafana (to display it within a dashboard).
Collect metrics with client-stats
Learn how to collect Beacon node and validator metrics using Prysm's client-stats
utility. This can be used to relay metrics data to the Beacon Chain stats service.
Use Prysm's Web UI
This feature is marked for deprecation. Prysm's Web UI can be used to monitor and configure your Beacon node and validator on localhost
using an app-like interface.
Managing connections
This section contains how-tos that will help you manage your gRPC and P2P connectivity.
Secure gRPC connections
Learn how to create and configure TLS certificates that enable secure gRPC connections to your Beacon node.
Configure ports and firewalls for improved network connectivity
Learn how to configure ports and firewalls so your node can build stronger connections with more peers.
Concepts
This section contains beginner-friendly conceptual guidance for readers who are new to Prysm and/or Ethereum.
Nodes and networks
Learn about the various node types, networks, network layers, and how it all relates.
Keys, wallets, and accounts
Learn how keys, wallets, and accounts relate to each other within the context of Prysm and Ethereum.
Slashing
Learn about slashing, a mechanism that incentivizes Ethereum nodes to detect and punish malicious actors in the Ethereum network.
Developer wiki
This section ocntains documents targeted at developers who want to contribute to Prysm's codebase.
Contribute to Prysm's codebase
Golang principles
Golang resources
About Bazel
APIs
Beacon node API
Prysm-specific API
Keymanager API
Developer Concepts
Initial synchronization
Network design
Architecture overview
Optimistic sync
Beacon node
Validator client
Validator lifecycle
Validator deposit contract
BoltDB database
P2P networking
BLS cryptography
End-to-end tests
Misc
Security audits
Prysm license
Ethereum learning resources
Testnet postmortems
Block explorers
Glossary
File a bug report
Need assistance?
Join our Discord server - a member of the team or our community will be happy to help.