Installing Prysm from source with Bazel

Prysm can be installed on GNU/Linux, MacOS, and Arm64 using our build tool, Bazel. This page includes instructions for performing this method.


NOTICE: The Prysm installation script is the easiest and most efficient way of installing the latest binaries. Instructions for using it can be found here.

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 GNU/Linux, MacOS
  • 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


  • A modern UNIX operating system
  • The latest release of Bazel installed
  • The cmake package installed
  • The git package installed
  • libssl-dev installed
  • libgmp-dev installed
  • libtinfo5 installed

Why Bazel?

Instead of using the Go tool to build Prysm, our team relies on the Bazel build system used by major companies to manage monorepositories. Bazel provides reproducible builds and a sandboxed environment that ensures everyone building Prysm has the same experience and can build our entire project from a single command. For more detailed rationale on why Bazel, how it works in Prysm, and all important information about how exactly building from source works, read our rationale here

Installing Prysm

  1. Open a terminal window. Ensure you are running the most recent version of Bazel by issuing the command:
bazel version
  1. Clone Prysm's main repository, make sure you switch to the latest version (the latest version number can be found from the releases page), and enter the directory:
git clone
git checkout <version>
cd prysm
  1. Build both the beacon chain node and the validator client:
bazel build //beacon-chain:beacon-chain --config=release
bazel build //validator:validator --config=release

Bazel will automatically pull and install any dependencies as well, including Go and necessary compilers. Now that your installation is done, you can then read joining eth2.