Skip to main content

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

Deprecated

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.