Beginner's Guide – A Comprehensive Guide to Staking Ethereum with Rocket Pool

In this beginner's guide series, we explore RocketPool, a liquid staking solution for Ethereum.

Beginner's Guide – A Comprehensive Guide to Staking Ethereum with Rocket Pool

What is Rocket Pool?

Rocket Pool is a decentralized Ethereum staking platform that allows users to stake their ETH and earn rewards while contributing to the security and stability of the Ethereum network.

Built with the aim of democratizing access to staking, Rocket Pool offers a simple and user-friendly solution for both large-scale and small-scale investors. By employing a decentralized architecture, the platform ensures transparency and trust for its users.

There are two main ways to stake ETH with Rocket Pool – stake through liquid staking via rETH or alternatively, operate minipools by being a Rocket Pool node operator.

Staking with Rocket Pool. Source: Messari.

How to stake with Rocket Pool directly

Staking with Rocket Pool is simple through its web interface, offering rETH at the best possible value without extra fees or liquidity issues.

You can deposit as little as 0.01 ETH and receive the rETH liquid staking token which accrues staking rewards over time – there is a 0.05% deposit fee when minting rETH through the protocol, which prevents attacks around rate updates.

rETH represents both how much ETH you deposited, and when you deposited it. It includes rewards that Rocket Pool node operators earn from:

  • The Beacon Chain itself
  • Priority fees from block proposals
  • MEV rewards from block proposals
💡
rETH's value always increases relative to ETH and the exchange rate is updated approximately every 24 hours

On the back, your ETH is staked with a decentralised network of node operators which earn ETH rewards which fully accrue to rETH holders. Node operators do not handle funds and any penalties incurred by node operators are taken from their earnings.

Alternatively, you can simply swap your ETH for rETH with a DEX like Balancer and Uniswap or DEX aggregator. rETH is available for swapping on both Ethereum and Layer 2 networks like Optimism, which may potentially offer improved rates with lower slippage and fees.

How to Stake with Rocket Pool as a node operator

The other more complicated way to stake with Rocket Pool is by running a Rocket Pool node, which has more benefits than staking directly, although it is far more complicated.

Node operators put ETH from the staking pool to work by running minipools with it, i.e. run validators with the highest quality possible, and maximize staking rewards. This involves setting up physical or virtual computers, configuring them, installing Rocket Pool client, setting up minipools, securing it and maintaining them.

In return for doing so, node operators earn rewards a pro-rated share of the validator's total ETH rewards, plus an extra 14% commission paid by the pool stakers' share. In addition, they also interest on the RPL staked as supplemental insurance.

Node Operator requirements

To run a Rocket Pool node, you must first choose a platform: a local node or a virtual private server (VPS) on the cloud.

Local node requirements

Running a local node provides complete control, no monthly fees, and contributes to decentralization but requires stable, uncapped internet and electricity, and involves responsibility for network and computer security.

You may use a PC, mini-PC or NUC device for a local node, as long as they meet the minimum requirements for running a node.

Hardware Requirements:

  1. CPU: A modern CPU with at least 4 threads is recommended. Intel NUC devices are popular, but ensure they're recent (e.g., 11th generation i5 unit). ARM-based CPUs like Mac M1 or M2 don't require the BMI2 extension.
  2. RAM: 8 GB of RAM is the minimum, but more RAM offers headroom and support for RAM-heavy clients. The RAM type (DDR3 or DDR4) isn't critical, as DDR3 is usually sufficient.

Ethereum validators aren't computationally expensive, so most setups, including mini-PCs and NUCs, can run an unlimited number of validators.

CPU usage is most significant during initial blockchain sync and isn't heavily used afterward. A stable Internet connection is essential, and a stable electricity supply is preferred, although it can be mitigated with a large UPS (backup battery).

VPS node requirements

Running a Rocket Pool node using a virtual private server (VPS) can be done through traditional VPS hosting or cloud hosting.

Traditional VPS hosting is cheaper and more decentralized, but with limited high-availability support and fixed resources. Notable VPS providers include OVH, Leaseweb, Contabo, and Netcup.

Cloud hosting, on the other hand, offers high availability and flexibility in resource allocation but is more expensive and less decentralized. The top three cloud providers are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).

Node setup and configuration

You'll need to choose an execution and consensus client for your Rocket Pool node, and configure Rocket Pool to connect to them.

Rocket Pool supports three different Execution clients: Geth, Besu, and Nethermind.

Running an Execution client involves storing a copy of the Execution layer blockchain on your machine. It interacts via peer-to-peer communications with other EC nodes to record and verify new blocks and transactions. A full Execution client is required to run a validator.

You will also need to setup a Consensus client, and Rocket Pool supports up to five Consensus clients: Lighthouse, Lodestar, Nimbus, Prysm, and Teku. All five clients are relatively low-risk and low-maintenance, and will generate practically identical total rewards from validation.

By default, the Rocket Pool installer will offer to select a random consensus client for you. This will help contribute to the overall diversity of the network.

The whole process above can be configured either via Docker if you have clients you manage outside of the Smartnode for solo staking, or via native Smartnode.

Starting the node service

Once your node is fully configured, including the Smartnode stack, an Execution and an Consensus client, you're ready to create a Rocket Pool node and begin staking.

Start the stack and sync up your nodes with the state of the blockchain.

rocketpool service start
rocketpool node sync

Then create a new wallet or use an existing wallet where it will hold your node's funds - for sending ETH to your minipool, pay for gas during various transactions, and other various operations.

To create a new wallet, run the following command.

rocketpool wallet init

If you already have a wallet you'd like to use for your node, or if you're recovering a wallet you already created with the Smartnode earlier, run the following command instead.

rocketpool wallet recover

You should also finish configuring the node, including loading your Node Wallet, registering it with the Network and changing the withdrawal address.

rocketpool node register
rocketpool node set-withdrawal-address <your cold wallet address or ENS name>
💡
The withdrawal address is where all RPL checkpoint rewards, staked RPL, and your ETH will be sent to when you claim your rewards or exit your validator and withdraw from your minipool. 

Withdrawal addresses are set at a node operator level. If you create multiple minipools, they will all refer to the same withdrawal address so you only need to perform this setup once.

Creating minipools

A minipool in Rocket Pool is a smart contract instance on the Execution Layer chain managed by your node.

It combines a portion of your ETH (bond amount) and ETH from the rETH staking pool (borrowed amount) to form 32 ETH, which is then sent to the Beacon Chain deposit contract to create a new validator.

Stake RPL

To create a validator using Rocket Pool, you must first create a minipool by staking your RPL collateral, either through the website or CLI.

If you're staking via CLI, run the following command.

rocketpool node stake-rpl

The minimum and maximum amounts depend on your desired bond size, with the exact RPL amount changing based on the ETH/RPL price ratio. There is no maximum stake, but only the first 150% of your bonded ETH at each checkpoint earns rewards.

Note that the RPL stake is handled at your entire node level (not minipool level), so you only need to manage the total RPL stake for your node when running multiple minipools.

Deposit ETH and spin up a minipool

💡
Potentially arbitrage the market rETH premium with RocketArb

Once you've staked RPL, it's time to spin up a minipool using the command.

rocketpool node deposit

Note the costs for deploying a minipool. Once the transaction completes, you will be given the address of your new minipool contract.

Upon creation, your minipool will be put into the initialized state and it remain here until it's your turn in the Rocket Pool queue to be given the remaining 16/24 ETH from the staking pool so you can stake your new validator on the Beacon Chain.

Once that happens, your minipool moves to the prelaunch state for 12 hours before the staking state, where ETH from the staking pool will be sent to the deposit contract.

To check the status or view the public key of your minipool, use the following command.

rocketpool minipool status

If you wish to host more minipools, there is no need to create a new node. Just run the rocketpool node deposit command, although you need to ensure that the RPL staked is sufficient (10% of borrowed ETH).

Next steps

You're almost done with the Rocket Pool setup at this point. What's left to do is to ensure your node is healthy and running.

One key resource is beaconchain to view metrics about your validator and set up email alerts such as missed attestations, Rocket Pool reward rounds and RPL collateralisation status on your node.

You can also view metrics on Rocketscan which is a community resource for an overview of both the entire Rocket Pool network and your node performance.