Guides Overview

Welcome to the Guides section of the Rocket Pool documentation! Here you will find various guides that walk you through every step of the various Rocket Pool processes.
If you're looking to stake your ETH with Rocket Pool and receive rETH in return, please visit the Staking Guide. Staking is a very simple process, and this guide is filled with step-by-step instructions (including screenshots) that show you how it's done.
If you're interested in running a Rocket Pool node to create your own Ethereum validators, take a look at our Node Operator's guide. This is a very comprehensive guide that goes over all of the considerations involved in node operation, including:
Deciding to run a node locally at home, or remotely on the cloudSelecting the hardware for a local machine, or selecting a remote hosting providerPreparing and securing the operating system of your nodeSelecting your Execution (ETH1) and Consensus (ETH2) clientsInstalling Rocket Pool's Smartnode stackCreating a new ETH2 validator using the Rocket Pool networkMaintaining and updating your node
Both guides will show you how to practice for free on the Rocket Pool testnet so you can get a feel for everything without risking any of your real-life ETH, and how to stake your real ETH on the Ethereum mainnet once you're comfortable with the process.
When you're ready, select a guide from the options above based on your interests. You are also free to explore the various pages using the sidebar to the left.


The Atlas Update

This page describes the major changes that Rocket Pool's next major update, titled Atlas, brings to the protocol including updates to both the Smartnode stack and to the Rocket Pool protocol in general.
Please read through this page thoroughly to understand all of the differences between the previous version of Rocket Pool (Redstone) and Atlas.


New Protocol Features

Atlas brings about some exciting new features that are based on both community feedback and changes to the Ethereum protocol itself. Below is a brief list of these changes - click on any of them to learn more about it.


Shapella and Withdrawals

The Ethereum protocol is preparing to undergo its next major upgrade: Shanghai on the Execution layer, and Capella on the Consensus layer - since these are now interconnected, both will occur at the same time. Ethereum users have affectionately come to call the combined upgrade "Shapella" accordingly.
Shapella introduces withdrawals to the Beacon Chain, meaning node operators are now able to access the ETH that is currently locked on the Beacon Chain. This comes in two flavors:
Partial withdrawals (skimming), where your rewards (your excess Beacon Chain balance over 32 ETH) are sent to your minipool on the Execution Layer. This is done automatically by the protocol itself every so often (about once every four or five days on Mainnet).Full withdrawals, where you exit your validator from the Beacon Chain and its entire balance is sent to your minipool on the Execution Layer. This is done automatically by the protocol itself once your validator has been exited from the chain long enough.
Atlas introduces a new delegate contract for minipools that allows node operators to distribute the minipool's ETH balance, splitting it evenly between the node operator and the rETH holders (plus commission, of course) at any time. This gives node operators immediate access to their Beacon Chain rewards! It also puts the rETH holders's share back into the deposit pool, so it can be used to unstake rETH for ETH at the protocol's exchange rate (or to create new minipools).


8-ETH Bonded Minipools

One of the most anticipated changes made in Atlas is the introduction of the ability to only provide 8 ETH to make a minipool instead of 16 ETH. Minipools with only 8 ETH bonded by their owning node operator are matched with 24 ETH from the staking pool (provided by rETH holders) in order to make a validator. This significantly reduces the capital requirement for running your own validator and results in greater returns for both the node operator and the rETH stakers! In fact, running two 8-ETH minipool instead of one 16-ETH minipool will provide over 18% more rewards - even if the 16-ETH minipool has a commission rate of 20%.
Creating an 8 ETH minipool requires that you stake a minimum of 2.4 ETH worth of RPL and a maximum of 12 ETH worth of RPL. These represent 10% of the amount you're borrowing from the protocol, and 150% of the amount you're bonding (staking) yourself.
New minipools can be created with either 8 ETH or 16 ETH. 16 ETH minipools are unchanged from how they work today, and are available for users that want to minimize their exposure to the RPL token.
To learn how to make new minipools using an 8 ETH bond, please visit the minipool creation guide.
Also, once Atlas has been applied, node operators can migrate existing 16-ETH minipools directly into 8-ETH minipool without needing to exit. This will give them 8 ETH back in deposit credit, which can be used to create a new 8-ETH minipool for free!
To learn more about 8-ETH bond minipools, please visit the bond reduction guide.


Solo Validator Conversion

Part of the Shapella upgrade involves the ability for solo validators to change their validators' withdrawal credentials from the original (now unused) BLS-based withdrawal key to an address on the Execution layer. This address will be the recipient for all of that validator's rewards and its full ETH balance once it exits the Beacon Chain.
Regular Rocket Pool node operators don't need to worry about any of this, as the protocol automatically set this up for your minipools when you created them. However, as part of this new requirement for solo validators, Atlas brings an exciting opportunity: the ability to create a special minipool that will become the withdrawal address for your existing solo validator.
In other words, this will allow you to directly convert a solo validator into a Rocket Pool minipool without needing to exit it!
This means you will get all the benefits of Rocket Pool minipools, including:
The ability to convert your one validator (with a 32 ETH bond) into four minipools (each with an 8 ETH bond), effectively quadrupling your presence on the Beacon ChainCommission on the portion of those minipools provided by rETH stakersAccess to Rocket Pool's Smoothing Pool to pool and evenly distribute rewards from block proposals and MEV
To learn more about converting a solo validator into a minipool, please visit the Converting a Solo Validator into a Minipool guide.


New Smartnode Features

In addition to core changes to the Rocket Pool protocol, Atlas also brings some exciting upgrades to the Smartnode stack itself which are present in v1.9.0.


Automatic Rewards Distributions

If you're already an active Rocket Pool node operator, you may be familiar with the rocketpool_node process that handles certain automated processes. For example, it ensures you have the correct fee recipient and automatically runs the second stake transaction for you after prelaunch minipools pass the 12-hour scrub check.
Starting with Atlas, the node has a new duty: automatic distribution of minipool rewards! This is due to the way the Shapella upgrade works, by skimming your rewards from the Beacon Chain into your minipool every few days.
Whenever one of your minipools reaches a balance larger than a user-specified threshold (default of 1 ETH), the node will automatically run distribute-balance on it. This will send your portion of the rewards to your withdrawal address, and the pool staker's portion back to the deposit pool.
Changing the threshold can be done in the Smartnode and TX Fees section of the service config TUI, under the Auto-Distribute Threshold setting.


Unified Grafana Dashboard

By popular demand, we have created a new Grafana dashboard to help node operators track and assess the status, progress, and overall health of their nodes:

It comes with the following highly requested features:
Support for all Execution and Consensus clients in a single dashboard - no more changing dashboards based on which clients you're using!Execution client stats, including CPU and RAM usage, and peer countAttestation accuracy tracking which follows how "correct" your attestations were for the previous epoch, so you know how far off from optimal rewards you're gettingTracking of the Smoothing Pool's balanceTracking of claimed and unclaimed rewards, now including ETH from the Smoothing PoolStats about Rocket Pool's Snapshot-based governance votesRoom for tracking a second SSD's used space and temperature if you have one for your OS and a different one for your chain dataAnd more!
You can import the new dashboard from the official Grafana service using ID 18391 by following our Grafana guide.
This new dashboard was a labor of love that involved extensive help from community member 0xFornax - thank you for all of your hard work!


Nimbus Changes

Smartnode v1.9.0 introduces split mode support for Nimbus! Instead of running the Beacon Node and Validator Client inside a single process / container, the Smartnode will now run them in separate containers like the other clients. This has the following benefits:
Nimbus now supports fallback clients (a secondary Execution client and Beacon Node that Nimbus's Validator Client can connect to when your primary clients are down for maintenance, such as resyncing).Nimbus is now supported in Externally-Managed (Hybrid) Mode, so you can couple the Validator Client that the Smartnode manages to an external Beacon Node that you maintain on your own.The Beacon Node no longer needs to be restarted after the addition of new minipools, meaning you don't lose attestations while it reconnects to its peers.


Lodestar Support

Lodestar is now supported as an option for your Consensus Client of choice! This is the newest addition to be officially accepted onto Ethereum's Launchpad, and it's ready for validation. Lodestar supports many of the great features you've come to love from the other clients, including Doppelganger Detection, MEV-Boost, externally-managed clients (Hybrid Mode), and more!


New Network Snapshot System

On a slightly more technical note, v1.9.0 introduces a brand new system for quickly capturing a snapshot the state of everything about your node on both the Execution and the Consensus layers. Under the hood, this system leverages MakerDAO's multicall contract and Will O'Beirne's Ethereum Balance Checker contract to batch thousands of individual Execution client queries up into a single request.
This makes the node process much less taxing on the Execution client for node operators with a large number of validators, and should significantly reduce its CPU load which will improve attestations and overall rewards.
This new system hasn't made its way into the CLI itself yet, so any commands you run there (such as rocketpool minipool status) will still use the old single-query setup. Over time we'll introduce it into the CLI too, which will make all of its commands lightning fast (except for waiting for transactions to be validated, that still takes a while).


Staking Overview

This guide will introduce you to how staking with Rocket Pool works (how your ETH is put to work and your rewards are generated) and summarize the ways in which you can stake.
NOTEIf you're not interested in how staking works and just want to learn how to stake, click here to skip to that section.


How Ethereum Staking Works

Before getting into Rocket Pool, let's talk about staking on Ethereum in general. Since the Merge on September 15th, 2022, Ethereum now comprises two blockchains in parallel: the Execution layer (formerly ETH1), which contains all of Ethereum's transaction data, and the Consensus layer (also known as the Beacon Chain, formerly ETH2) which consists of a network of validators that collectively determine the validity of each transaction and each block broadcast to the network.
Staking is the process of creating and maintaining one (or more) of these validators on the Beacon Chain to help the network maintain the consistency and security of the Ethereum blockchain. Validators do this by listening for transactions and new block proposals, and attesting that the proposed block contains legal, valid transactions by doing some number crunching and verification behind the scenes. Occasionally, they get to propose new blocks themselves.
To ensure that the network is resilient against malicious validators that lie about the current state of the chain, each validator is required to lock exactly 32 ETH up as a "stake" in the networks. Performing their duties correctly and agreeing with the majority of the other validators will earn them rewards; performing incorrectly and attacking the chain will cost them some of their locked 32 ETH balance. The amount taken depends on the severity of the attack and the number of validators that participated in it.
Validators in Ethereum are assigned attestations and block proposals on a schedule. This is very different from the old Proof of Work (PoW) system, where everyone is constantly trying to race each other and come up with the next block before everyone else. This means that unlike PoW where a miner isn't guaranteed to earn a block reward unless they find the next block, Proof of Stake validators are guaranteed to have slow, steady income as long as they perform their duties.
Initially, validator rewards simply accrued on the Beacon Chain against each validator and were inaccessible by their operator. As of the "Shapella" hard fork, validator rewards are routinely "skimmed" to the Execution Layer address defined by the validator's withdrawal credentials.
Additionally, now that the Execution and Consensus layers have merged, validators are also awarded with priority fees for transactions included in blocks they propose. These priority fees are paid directly on the Execution layer according the "Fee Recipient" set by the block proposer. If the validator is participating in a MEV network to propose a block built by someone else, that builder will provide a supplemental tip to the validator known as a MEV reward. This is also available directly on the Execution layer and is provided at the same time as priority fees.


How Rocket Pool Works

Unlike solo stakers, who are required to put 32 ETH up for deposit to create a new validator, Rocket Pool nodes only need to deposit 16 ETH per validator. This will be coupled with 16 ETH from the staking pool (which stakers deposited in exchange for rETH) to create a new Ethereum validator. This new validator is called a minipool.
To the Beacon chain, a minipool looks exactly the same as a normal validator. It has the same responsibilities, same rules it must follow, same rewards, and so on. The only difference is in how the minipool was created and how withdrawals work when the node operator decides to voluntarily exit the minipool or gets slashed. All of the creation, withdrawing, and rewards delegation is handled by Rocket Pool's smart contracts on the Execution layer. This makes it completely decentralized.


The rETH Token

As a Rocket Pool staker, your role is to deposit ETH into the deposit pool which will enable a node operator to create a new Beacon Chain validator. You can stake as little as 0.01 ETH.
In doing so, you will be given a token called rETH. rETH represents both how much ETH you deposited, and when you deposited it. The ratio includes rewards that Rocket Pool node operators earn from:
The Beacon Chain itselfPriority fees from block proposalsMEV rewards from block proposals
More specifically, the value of rETH is determined by the following ratio:
rETH:ETH ratio = (total rETH supply) / (total ETH staked + total rETH contract balance + total rETH share of priority fees + total rETH share of MEV rewards)
Since the Beacon Chain rewards, priority fees, and MEV rewards will constantly accumulate, this means that rETH's value effectively always increases relative to ETH. The rETH/ETH exchange rate is updated approximately every 24 hours based on the Beacon Chain rewards earned by Rocket Pool node operators.
To illustrate this point, here is a chart of rETH's value (relative to ETH) over time - as expected, it demonstrates slow but steady growth:

Let's do a simple example as a demonstration.
Say you stake at the very beginning when 1 ETH = 1 rETH. You deposit 10 ETH and receive 10 rETH back.
After a few years, the balances on the Beacon Chain grow due to validator rewards. Say 128 ETH had been staked with Rocket Pool and the sum of all validator balances on ETH2 was 160 ETH. Then 1 ETH would be worth (128/160) = 0.8 rETH; conversely, 1 rETH would be worth (160/128) = 1.25 ETH.
At this point, you could trade your 10 rETH back to Rocket Pool's smart contracts and receive 12.5 ETH in return.
This means as long as you are holding rETH, you are staking with Rocket Pool! You do not need to get it from Rocket Pool directly. For example, you can purchase rETH on an exchange; as every rETH token is exactly the same, you will automatically receive the benefits of staking just by holding the token!
NOTETrading rETH back for ETH directly with Rocket Pool is only possible when the staking pool has enough ETH in it to handle your trade. ETH in this pool comes from two sources:ETH that other stakers have deposited, which hasn't been used by a node operator to create a new validator yetETH that was returned by a node operator after they exited one of their validators and received their rewards from the Beacon Chain (note that this is not possible until after the ETH1-ETH2 Merge occurs and withdrawals are enabled)It's possible that if node operators have put all of the staking pool to work on the Beacon chain, then the liquidity pool won't have enough balance to cover your unstaking. In this scenario, you may find other ways to trade your rETH back to ETH (such as a decentralized exchange like Uniswap) - though they will likely come with a small premium.
As an alternative to holding onto and eventually returning your rETH to the Rocket Pool, you are also free to use it in DeFi applications. You can trade it, lend it, use it as collateral... as rETH is a standard ERC20 token, you can use it in any way you could use any other token.


Tax Implications

Each country has its own tax laws, and it would be impossible to document them all here. In some countries, depositing ETH for rETH may be considered a taxable event. However, because rETH inherently accumulates value while the actual amount of the token you hold remains constant, simply holding it usually does not generate any taxable events.
This may make rETH a preferable staking token for long-term holding if your country separates short-term and long-term capital gains taxes.
Tax laws related to cryptocurrencies are in their infancy; each user should do their own research and consider speaking with a tax professional.
Below are some helpful sites that offer tax assistance to users related to Ethereum. This is not an official endorsement - users are advised to do their own research regarding tax implications and strategies:
https://koinly.io/https://cryptotaxcalculator.io/https://rotki.com/


How to Stake with Rocket Pool

As described above, as long as you are holding the rETH token, you are a Rocket Pool Staker. We will summarize several common ways to acquire it here.
NOTEAll of the methods described here rely on the usage of an Ethereum wallet such as MetaMask. If you have never used an Ethereum wallet before, we strongly encourage you to learn more about them and practice using them before staking with Rocket Pool. The sections below include some steps that are demonstrated with MetaMask as an example; they should translate to your wallet of choice easily enough for you to follow along.


Via Rocket Pool Directly

With this method, you will use a web3 wallet (such as MetaMask) and interact with Rocket Pool's website to swap ETH for rETH and vice-versa. This method is guaranteed to provide you with the exact amount of rETH that your ETH is worth, since it's coming directly from Rocket Pool's smart contracts, but it can be somewhat expensive if the network's gas prices are high and you're staking a relatively small amount of ETH.
NOTEIf you are practicing staking on the Prater Testnet, the direct method above is the only option currently supported.
Click here to learn how to stake via Rocket Pool directly.


Via a Decentralized Exchange on Ethereum (Layer 1)

With this method, you will access a decentralized exchange such as Balancer or Uniswap and purchase rETH using your token of choice, just like you would do any other token swap.
Rocket Pool has officially created a Balancer composable stable pool. Composable stable pools are ideal for tokens like rETH, because they honor the true exchange rate reported by the Oracle DAO - this means exchanging with it will have much lower slippage and lower fees than a conventional decentralized exchange, so you get a much better deal when buying or selling rETH.
Because of this, and because it has a smaller transaction fee than swapping directly via Rocket Pool's website, we strongly recommended using Balancer if you want to stake via this route.
If Balancer doesn't work for you, there is also an ETH-rETH liquidity pool on Uniswap. Note that this is a conventional pool, so you will be affected by slippage and higher fees if you use it, but the gas fee will still be lower than staking directly via Rocket Pool's website.
Click here to learn how to swap ETH for rETH via a decentralized exchange on Layer 1.


Via a Decentralized Exchange on a Layer 2 Network

With this method, you will start by bridging your existing ETH (or other tokens of choice) onto an Ethereum Layer 2 network such as Optimism or Arbitrum and then use a decentralized exchange on the network to purchase rETH. If you already have tokens on a Layer 2 network, this method is compelling because the transaction fees are ~10x smaller than on the Ethereum mainnet. However, if you have not used a Layer 2 network before, it does require a few additional steps to get set up.
Click here to learn how to swap ETH for rETH via a decentralized exchange on a Layer 2 network.


Video Demonstration

Community member Kevster has put together a helpful video that demonstrates each of these options step-by-step:
For a more detailed writeup, select which method you would like to use from the links above and follow the guide for that section.


Staking Directly via Rocket Pool

The easiest way to stake with Rocket Pool is done via its web interface to the underlying smart contracts.
The advantage is that you will always get exactly as much rETH as your ETH is worth, since Rocket Pool's contracts will directly mint the rETH that you receive. No extra fees, no slippage, no liquidity issues, no sandwiching or front running... you just get the best possible deal for rETH.
The disadvantage is that the gas fee might be quite expensive if you are staking a small amount of ETH - we strongly recommend you check this before approving the transaction. Also, there is a limit to the amount of ETH that can be in the pool at any given time, so it's possible that the pool could be full until Node Operators pull ETH from it and stake that ETH on the Beacon Chain.
The process is slightly different for the Prater Testnet and Mainnet, so choose the network you are interested in from the tabs below.
Preparing on the Prater TestnetPreparing on the Ethereum MainnetWARNINGWhen practicing staking on the test network, you do not need to provide any of your real ETH during this process. You will be given fake test ETH to use instead.Do not attempt to move your real ETH on mainnet to the testnet or you will lose it permanently!Start by installing MetaMask if you haven't already. Follow the instructions on their site to install the extension, create an account, and sign in.Next, open the MetaMask panel using its icon in your browser toolbar. Click on the network dropdown in the toolbar at the top and select Goerli Test Network:Finally, add the rETH token to MetaMask so you can see your balance and access it for trading. Click the Assets tab, then click Add Token:Ensure that Custom Token is selected in this dialog. In the Token Contract Address box, put the following value:0x178e141a0e3b34152f73ff610437a7bf9b83267aThe Token Symbol should automatically be populated with rETH, and the Decimals of Precision should automatically be populated with 18.Accept the rest of the prompts, and then you will see the rETH token appear in your list.Now that you have a wallet address in MetaMask, you need to fill it with some test ETH. Head over to the Practicing with the Test Network page for a quick guide on how to use a testnet faucet to get some test ETH on Goerli.Once you have some Goerli ETH to test with, head to https://testnet.rocketpool.net/.The page should look like this:If you see a notice about a web3 browser being required, or the current network ID being unsupported, make sure you’ve completed the previous steps correctly before continuing.
Once you're at the site, click on the connect wallet button. Please read through and accept the Terms of Service & Privacy Policy, this will enable different ways to connect, then click connect metamask.
MetaMask will prompt you to select an account to connect to the website. Choose one, confirm a few permissions, and you’ll see your balances update in the UI. You can also see an overview of your balances by clicking the wallet icon located at the top right of the window.

Now, all that's left to do is deposit your ETH and receive some rETH back!
Enter the amount of ETH you want to deposit in the Stake ETH input field on the screen, then click the Stake button.

MetaMask will pop up with a window asking you to confirm your transaction.
Check the total gas cost of the transaction before you approve it - if it is very expensive relative to your transaction, you may want to consider acquiring rETH via another method!
Once you confirm it, the transaction will begin. When it's been mined and added to the chain, you'll see your balances update!
NOTEAs described in the previous page, it's completely normal to receive less rETH than the amount of ETH you put in. rETH and ETH have a dynamic exchange rate: as the Rocket Pool network earns rewards, 1 rETH will become worth more than 1 ETH, which in turn means 1 ETH will buy less than 1 rETH.
That's it! You're now staking with Rocket Pool. All you need to do is hold onto your rETH, and you'll automatically gain your staking rewards as the value of the rETH token increases.


Unstaking

When you're ready to unstake and trade your rETH back for ETH, head back to the staking website and click on the double arrow button in the middle of the trade amounts dialog to switch to rETH mode:

As with staking, enter an amount of rETH to unstake and click the Unstake button. Once again, a confirmation dialog will appear in MetaMask. Confirm the transaction, and once it's been mined, you will see the proper balances in your wallet.
NOTETrading rETH back for ETH is only possible when the staking liquidity pool has enough ETH in it to handle your trade. This is Rocket Pool's pool of ETH that comes from two sources:ETH that other stakers have deposited, which hasn't been used by a Node Operator to create a new validator yetETH that was returned by a Node Operator after they exited one of their validators and received their rewards from the Beacon Chain (note that this is not possible until after the ETH1-ETH2 Merge occurs and withdrawals are enabled)During the period before the Merge, it's possible that the liquidity pool won't have enough balance to cover your unstaking. In this scenario, you may find other ways to trade your rETH back to ETH (such as a decentralized exchange like Uniswap) - though they will likely come with a small premium.
That's all there is to staking with Rocket Pool! We hope that you found the process quick and easy.
Feel free to swing by our Discord server to let us know what you thought of it and keep tabs on the project as it evolves.


Staking via a Decentralized Exchange on the Ethereum Network (Layer 1)

As a reminder, you do not have to swap ETH for rETH directly via Rocket Pool in order to enjoy the benefits of decentralized staking. All you need to do is hold rETH as it inherently grows in value - how you get it doesn't matter!
rETH is available for trade on several decentralized exchanges, such as Balancer and Uniswap.
The Balancer pool is a special kind of pool known as a metastable pool. Metastable pools are ideal for tokens like rETH, because they honor the true exchange rate reported by the Oracle DAO.
This means exchanging with this pool will have much lower slippage and lower fees than a conventional decentralized exchange, so you get a much better deal when buying or selling rETH. Other decentralized exchanges don't have this property, so you may find that their exchange rate is slightly lower.
Regardless of which pool you use, they all tend to have lower gas fees than staking via the official Rocket Pool website. This makes them a great choice for users that want to stake a small amount of ETH, though it's always a good idea to compare the rate you would receive on an exchange with the exchange rate according to Rocket Pool.
In the following examples, we will show how to swap ETH for rETH using both Balancer and Uniswap.
NOTECurrently this method is only available on Mainnet. If you want to practice on the Prater Testnet, you must swap with Rocket Pool directly.The rest of this guide will assume you are on Mainnet.
This process can be completed with any web3-compatible wallet. For demonstration purposes, we're going to use MetaMask as it is one of the more popular wallet choices.
You should be able to follow along using similar steps with a different wallet if you choose - just find the comparable function in your wallet for each step.


Setting up MetaMask

Start by installing MetaMask if you haven't already. Follow the instructions on their site to install the extension, create an account, and sign in.
Next, open the MetaMask panel using its icon in your browser toolbar. Click on the network dropdown in the toolbar at the top and ensure that Ethereum Mainnet is selected:

Finally, add the rETH token to MetaMask so you can see your balance and access it for trading. Click the Assets tab, then click Add Token:

Ensure that Custom Token is selected in this dialog. In the Token Contract Address box, put the following value:
0xae78736Cd615f374D3085123A210448E74Fc6393
The Token Symbol should automatically be populated with rETH, and the Decimals of Precision should automatically be populated with 18.
Accept the rest of the prompts, and then you will see the rETH token appear in your list.
Now that you have a wallet address in MetaMask, you need to transfer some ETH into it. You will need to supply this from an existing wallet or buy ETH on an exchange.


Swapping for rETH via Balancer

Now that your wallet is set up and funded, head to this URL which will open Balancer and automatically show swapping ETH for rETH:
https://app.balancer.fi/#/trade/ether/0xae78736Cd615f374D3085123A210448E74Fc6393
The page will look like this initially:

Click on the Connect wallet button in the top-right corner. You will be prompted with a screen that asks you which wallet provider you want to use. For this example, select MetaMask.
NOTEIf you're not using MetaMask, one of the other providers such as WalletConnect will likely be compatible with your wallet.
Upon clicking that button, MetaMask will pop up with a prompt asking you to select which accounts you want to use. Assuming you only have one, your account should already be selected. Click Next.
It will then ask if you would like to give Balancer access to view the addresses of your accounts:

Click Connect and after a brief pause window, your wallet will be connected to Balancer. You should now see its ETH balance in the top left side of the screen.
Now, enter the amount of ETH you want to swap and Balancer's UI will show you the amount of rETH you will receive in return:

NOTENotice that the amount of rETH you receive will be less than the amount of ETH you put in. This is normal, because rETH is worth more than ETH and continuously appreciates over time. You can see this in the exchange rate highlighted at the right of the screenshot.
Click Preview to see the details of the trade, including the minimum amount you could receive due to slippage. If you're satisfied, click Confirm trade. This will send the request to MetaMask, where you can review the total transaction cost before confirming it:

NOTEPay close attention to the estimated gas fee here, highlighted in red. If it's a significant amount of your overall transaction (here it's over 17%), then it will take a very long time before you break even on staking rewards.If this is the case, you should either wait for the network's average gas price to drop, or consider using a Layer 2 solution instead.
If you are happy with the gas fees relative to the total amount of rETH you'll be receiving, click Confirm to submit the transaction. After a short period, you should see a notification from MetaMask that it completed successfully, and you will now see the rETH token in your wallet.
That's it! You're now staking with Rocket Pool. All you need to do is hold onto your rETH, and you'll automatically gain your staking rewards as the value of the rETH token increases.


Swapping for rETH via Uniswap

While we recommend you stake through Balancer because it has lower fees and a more accurate ETH-rETH rate, you can also swap for rETH via Uniswap if the need arises. Head to this URL which will open Uniswap and automatically show swapping ETH for rETH:
https://app.uniswap.org/#/swap?inputCurrency=eth&outputCurrency=0xae78736cd615f374d3085123a210448e74fc6393
NOTEYou may initially be prompted with a warning that looks like this:This is just a temporary warning until Uniswap adds rETH to its canonical token list. As long as the token address is 0xae78736cd615f374d3085123a210448e74fc6393, you can add it safely.
The page will look like this initially:

Click on one of the Connect Wallet buttons such as the highlighted one in the top-right corner. You will be prompted with a screen that asks you which wallet provider you want to use. For this example, select MetaMask.
NOTEIf you're not using MetaMask, one of the other providers such as WalletConnect will likely be compatible with your wallet.
Upon clicking that button, MetaMask will pop up with a prompt asking you to select which accounts you want to use. Assuming you only have one, your account should already be selected. Click Next.
It will then ask if you would like to give Uniswap access to view the addresses of your accounts:

Click Connect and after a brief pause window, your wallet will be connected to Uniswap. You should now see its ETH balance in the top right corner of the screen.
Now, enter the amount of ETH you want to swap and Uniswap's UI will show you the amount of rETH you will receive in return:

NOTENotice that the amount of rETH you receive will be less than the amount of ETH you put in. This is normal, because rETH is worth more than ETH and continuously appreciates over time. You can see this in the exchange rate highlighted at the bottom of the screenshot.
Click Swap to see the details of the trade, including the minimum amount you could receive due to slippage. If you're satisfied, click Confirm Swap. This will send the request to MetaMask, where you can review the total transaction cost before confirming it:

NOTEPay close attention to the estimated gas fee here, highlighted in red. If it's a significant amount of your overall transaction (here it's over 17%), then it will take a very long time before you break even on staking rewards.If this is the case, you should either wait for the network's average gas price to drop, or consider using a Layer 2 solution instead.
If you are happy with the gas fees relative to the total amount of rETH you'll be receiving, click Confirm to submit the transaction. After a short period, you should see a notification from MetaMask that it completed successfully, and you will now see the rETH token in your wallet.
That's it! You're now staking with Rocket Pool. All you need to do is hold onto your rETH, and you'll automatically gain your staking rewards as the value of the rETH token increases.


Staking via a Decentralized Exchange on Layer 2

As a reminder, you do not have to swap ETH for rETH directly via Rocket Pool in order to enjoy the benefits of decentralized staking. All you need to do is hold rETH as it inherently grows in value - how you get it doesn't matter!
That being said, one of the main concerns (especially in recent times) is the cost of gas associated with staking or swapping ETH for rETH.
To help reduce this, the Ethereum network has started adopting the use of rollups - also known as Layer 2.
Layer 2 comprises several separate networks that live underneath Ethereum, executing lots of transactions like Ethereum normally would, but rolling all of them up into one single "mega" transaction and posting that to the main Ethereum chain instead. Ideally, this means you'd get all of the security benefits associated with Ethereum's decentralized nature, but enjoy much lower gas fees for your transactions since execution and storage costs on Layer 2s can be much lower and only a portion of your transactions must be stored on Layer 1 where state is much more expensive.
Rocket Pool currently supports two Layer 2 networks: Optimism and Arbitrum. Both of them have running versions of Uniswap, the most widely-used decentralized exchange protocol. With Uniswap, you can quickly and easily exchange ETH for rETH.
The advantage of using this approach is that gas fees will be substantially lower than with other methods. If this is important to you because you want to stake a small amount of ETH, then using a Layer 2 network is likely going to be your option of choice.
The disadvantage is that you might not get the best deal on rETH. Uniswap requires a small fee that's given to its liquidity providers, and large transactions will require large liquidity pools in order to get good deals without too much price impact. Layer 2 networks tend to have lower rETH liquidity than the main Ethereum network.
Therefore, we recommend you compare the total rETH you would get on a Layer 2 network with what you'd get via the other methods to determine if it makes sense for you to pursue this path.
You can view the current ETH and rETH balances of the Optimism pool and the Arbitrum pool to determine if they have enough rETH to cover your swap.
In the following example, we will demonstrate how to interact with Layer 2 networks and use Uniswap to swap ETH for rETH.
NOTECurrently this method is only available on Mainnet. If you want to practice on the Prater Testnet, you must swap with Rocket Pool directly.The rest of this guide will assume you are on Mainnet.
This process can be completed with any web3-compatible wallet. For demonstration purposes, we're going to use MetaMask as it is one of the more popular wallet choices.
You should be able to follow along using similar steps with a different wallet if you choose - just find the comparable function in your wallet for each step.


Setting up MetaMask on Mainnet

Start by installing MetaMask if you haven't already. Follow the instructions on their site to install the extension, create an account, and sign in.
Next, open the MetaMask panel using its icon in your browser toolbar. Click on the network dropdown in the toolbar at the top and ensure that Ethereum Mainnet is selected:

The address directly below that is your Ethereum wallet address.
Before going any further, you will need to supply this wallet with ETH. If you don't already have ETH in the account from prior usage, you can do this by transferring ETH from an existing account to this wallet address.


Transferring ETH from Layer 1 to Layer 2 via Hop

There are several ways to bridge ETH from the Ethereum Mainnet to a Layer 2 network. In this demonstration, we're going to use the Hop protocol - a simple and reliable way to move ETH (and a few other coins) from Layer 1 to several Layer 2 networks, or between Layer 2 networks.
Navigate to the Hop exchange website here:
https://app.hop.exchange/send?token=ETH
The home screen should look like this:

Start by clicking on the Connect a Wallet button in the top right corner. You will be prompted with a screen that asks you which wallet provider you want to use. For this example, select MetaMask.
NOTEIf you're not using MetaMask, one of the other providers such as WalletConnect will likely be compatible with your wallet.
Upon clicking that button, MetaMask will pop up with a prompt asking you to select which accounts you want to use. Assuming you only have one, your account should already be selected. Click Next.
It will then ask if you would like to give Hop access to view the addresses of your accounts:

Click Connect and after a brief pause, your wallet will be connected to Hop. You should now see its ETH balance in the top right corner of the screen.
Now, you can use the two dropdowns in the From and To (estimated) boxes to select your networks, and enter the amount of ETH you want to send in the From box.
For example, this is what it would look like to send 0.1 ETH from Layer 1 to Arbitrum:

NOTEAs a reminder, Uniswap (and thus Rocket Pool staking) is currently only supported on Optimism and Arbitrum. You must select one of those networks.
When you're ready, click the Send button. Metamask will pop up with a confirmation dialog that shows you the gas fee associated with the transaction:

If you are comfortable with those gas fees, click Confirm to begin the transaction. After a few moments, MetaMask will pop up with a successful transaction confirmation message, and your ETH will now be available on your Layer 2 network of choice!


Connecting to Uniswap on Layer 2

Now that your wallet is set up and funded, head to this URL which will open Uniswap and automatically show swapping ETH for rETH:
https://app.uniswap.org/#/swap?inputCurrency=eth
The page will look like this initially:

Click on one of the Connect Wallet buttons such as the highlighted one in the top-right corner. You will be prompted with a screen that asks you which wallet provider you want to use. For this example, select MetaMask.
NOTEIf you're not using MetaMask, one of the other providers such as WalletConnect will likely be compatible with your wallet.
Upon clicking that button, MetaMask will pop up with another prompt asking you to select which accounts you want to use, just like it did with Hop. Leave your account selected, click Next, and then click Connect as you did with Hop before. After a brief pause, your wallet will be connected to Uniswap. You should now see its ETH balance in the top right corner of the screen.
The first thing to do is change your network from the Ethereum mainnet to the Layer 2 you just swapped to. Click on the network dropdown at the top right of the screen (highlighted in red here):

Once you do, MetaMask will prompt you to confirm that you want to add a custom network:

Click Approve and then click Switch Network. This will change MetaMask to use the new Layer 2 network instead of Ethereum's mainnet for transactions.
NOTEBefore you do any transactions with MetaMask, always verify which network it's currently using by opening MetaMask and looking at the network dropdown on the top! It's easy to accidentally switch to a different network and forget!


Adding rETH to MetaMask

The next step is to add the rETH token to MetaMask so you can see your balance and access it for trading. Click the Assets tab, then click Add Token:

Ensure that Custom Token is selected in this dialog, and select the appropriate tab for the Layer 2 network you chose below:
OptimismArbitrumIn the Token Contract Address box, put the following value:0x9bcef72be871e61ed4fbbc7630889bee758eb81dThe Token Symbol should automatically be populated with rETH, and the Decimals of Precision should automatically be populated with 18.Accept the rest of the prompts, and then you will see the rETH token appear in your list.


Swapping ETH for rETH with Uniswap

The final step of the process is to do the swap!
Click on the Select a token dropdown and enter the address for rETH that you just added to MetaMask (you can also just type rETH, but make sure it is the correct token and not an impostor or scam token by verifying its address first).
NOTEYou may initially be prompted with a warning that looks like this:This is just a temporary warning until Uniswap adds rETH to its canonical token list on the Layer you're using. As long as the token address is 0x9bcef72be871e61ed4fbbc7630889bee758eb81d on Optimism or 0xec70dcb4a1efa46b8f2d97c310c9c4790ba5ffa8 on Arbitrum, you can add it safely.
Next, enter the amount of ETH you want to swap and Uniswap's UI will show you the amount of rETH you will receive in return:

NOTENotice that the amount of rETH you receive will be less than the amount of ETH you put in. This is normal, because rETH is worth more than ETH and continuously appreciates over time. You can see this in the exchange rate highlighted at the bottom of the screenshot.
Now click Swap to see the details of the trade, including the minimum amount you could receive due to slippage. If you're satisfied, click Confirm Swap. This will send the request to MetaMask, where you can review the total transaction cost before confirming it:

NOTEPay close attention to the estimated gas fee here. You will likely notice that it is approximately 10x cheaper in terms of gas fees to do this swap on a Layer 2 network than it is on the Ethereum Mainnet!
If you are happy with the gas fees relative to the total amount of rETH you'll be receiving, click Confirm to submit the transaction. After a short period, you should see a notification from MetaMask that it completed successfully, and you will now see the rETH token in your wallet.
That's it! You're now staking with Rocket Pool. All you need to do is hold onto your rETH, and you'll automatically gain your staking rewards as the value of the rETH token increases.


A Node Operator's Responsibilities


How Ethereum Staking Works

As a reminder, staking in Proof of Stake is done via validators. A validator is essentially a single Beacon Chain address to which 32 ETH was deposited on the Execution layer. Validators are responsible for maintaining the consistency and security of the Beacon Chain. They do this by listening for transactions and new block proposals and attesting that the proposed block contains legal, valid transactions by doing some number crunching and verification behind the scenes. Occasionally, they get to propose new blocks themselves.
Validators are assigned attestations and block proposals on a randomized schedule. This is very different from the old Proof of Work system, where everyone was constantly trying to race each other and come up with the next block before everyone else. This means that unlike Proof of Work where miners weren't guaranteed to earn a block reward unless they found the next block, Proof of Stake validators are guaranteed to have slow, steady income as long as they perform their duties. If a validator is offline and misses an attestation or a block proposal, it will be slightly penalized. The penalties are quite small though; as a rule of thumb, if a validator is offline for X hours, it will make all of its lost ETH back after the same X hours of being back online.


Rewards

Now that the Execution and Consensus layers have merged, validators are able to earn five different types of rewards:
TypeLayerFrequencyAmountAttestationConsensusOnce per Epoch (every 6.4 minutes on average)0.000014 ETH*Block ProposalConsensusEvery 2 months on average**0.02403 ETH*Sync CommitteeConsensusEvery 2 years on average**0.11008 ETH*Slashing RewardConsensusVery rarely included in Block ProposalsUp to 0.0625 ETHPriority FeesExecutionIncluded in Block ProposalsTypically 0.01 to 0.1 ETH; very rarely 1+ ETHMEV RewardsExecutionAlso included in Block Proposals when using MEV-boostTypically 0.01 to 0.1 ETH; very rarely 1+ ETH
*Varies based on the total number of validators in the network. Approximated for 435,000 active validators.
**These are subject to randomness; there can be "dry spells" multiple times longer than the average without being given one.
Rewards for performing validation duties are routinely "skimmed" to minipools and can be distributed by Node Operators as desired.
Rewards provided by participating in MEV are either paid to Node Operators' fee distributor for immediate distribution or once per Rocket Pool rewards interval, if opted into the Smoothing Pool.
We will describe these rewards in more detail, including how to configure and access them, later on in the guide.


Penalties

Validators are penalized for small amounts of ETH if they are offline and fail to perform their assigned duties. This is called leaking. If a validator violates one of the core rules of the Beacon chain and appears to be attacking the network, it may get slashed. Slashing is a forceful exit of your validator without your permission, accompanied by a relatively large fine that removes some of your validator's ETH balance.
Realistically, the only condition that can cause a slashing is if you run your validator's keys on two nodes at the same time (such as a failover / redundancy setup, where your backup node accidentally turns on while your main node is still running). Don't let this happen, and you won't get slashed. Slashing cannot occur from being offline for maintenance.
Below is a table that shows the penalties that can happen to a validator:
TypeLayerAmountMissed AttestationConsensus-0.000011 ETH* per attestation (-9/10 the value of a normal attestation reward)Missed ProposalConsensus0Missed Sync CommitteeConsensus-0.00047 ETH* per epoch (-0.1 ETH total if offline for the whole sync committee)SlashingConsensusAt least 1/32 of your balance, up to your entire balance in extreme circumstances
*Varies based on the total number of validators in the network. Approximated for 435,000 active validators.
TIPAs a rule of thumb, if you're offline for X hours (and you aren't in a sync committee), then you'll make all of your leaked ETH back after X hours once you're back online and attesting.


How Rocket Pool Nodes Work

Unlike solo stakers which are required to put 32 ETH up for deposit to create a new validator, Rocket Pool nodes only need to deposit 8 or 16 ETH per validator (the "bond"). This will be coupled with 24 or 16 ETH (the "borrowed") from the staking pool (which "normal" stakers deposited in exchange for rETH) to create a new validator. This new validator is called a minipool.
To the Beacon chain, a minipool looks exactly the same as a normal validator. It has the same responsibilities, same rules it must follow, same rewards, and so on. The only difference is in how the minipool was created on the ETH1 chain, and how withdrawals work when the node operator decides to voluntarily exit the minipool. All of the creation, withdrawing, and rewards delegation is handled by Rocket Pool's smart contracts on the Ethereum chain. This makes it completely decentralized.
A Rocket Pool Node is a single computer with an Ethereum wallet that was registered with Rocket Pool's smart contracts. The node can then create as many minipools as it can afford, all running happily on the same machine together. A single Rocket Pool node can run many, many minipools. Each minipool has a negligible impact on overall system performance; some people have been able to run hundreds of them on a single node during Rocket Pool's beta tests.
A minipool's upfront cost is either 16 ETH, plus at least 1.6 ETH worth of the RPL token, or 8 ETH plus at least 2.4 ETH worth of the RPL token. The supplemental RPL collateral acts as supplemental insurance against particularly egregious slashing incidents, and lets you participate in Rocket Pool's DAO where you can vote on changes to the smart contracts.


Rocket Pool Node Operators

Node operators are the heart and soul of Rocket Pool. They are the individuals that run Rocket Pool nodes. They put ETH from the staking pool to work by running minipools with it, which earn staking rewards for the Rocket Pool protocol (and thus, increase rETH's value). Their job is straightforward, but crucially important: run validators with the highest quality possible, and maximize staking rewards.
Node operators are responsible for:
Setting up a computer (either physical or virtual)Configuring it correctly, including their home network if applicableInstalling Rocket Pool on it and setting up minipools to perform validationSecuring it, both from outside and inside threatsMaintaining it for the life of their validators
It's a big responsibility, and not a simple set-it-and-forget-it kind of job; you need to care for your node for as long as it's staking. With great responsibility, however, comes great rewards. Here are the major benefits of running a Rocket Pool node:
You earn your portion of each validator's ETH rewards, plus commission. For an 8 ETH-bonded minipool, this comes to 35.5% of the validator's rewards (an extra 10.5% over solo staking).For a 16 ETH-bonded minipool, this comes to 57.5% of the validator's rewards (an extra 7.5% over solo staking).You earn interest on the RPL you stake as supplemental insurance. At the end of a period (every 28 days), there's a snapshot of your RPL.You can earn yield on RPL up to 150% of the value of your total bonded ETH.To be eligible for these rewards, you must have at least 10% of the value of your total borrowed ETH to earn RPL rewards.You will be able to participate in the DAO and get to vote on changes to Rocket Pool's protocol or settings.
In light of gaining access to these benefits, as a node operator you are responsible for your own performance. If your node performs poorly and you actually end up losing ETH by the time you decide to exit your minipool, all of the lost ETH is coming out of your share. For example: if you exit with a balance of 30 ETH, then your minipool lost 2 ETH from its initial 32 ETH deposit. You will receive 14 or 6 ETH (depending on your bond size), and 24 or 16 ETH will be returned to the staking pool.
If you're fairly new to using the command line or computer maintenance, this can seem like a scary challenge. Luckily, one of Rocket Pool's most core principles is decentralization - the fact that anyone, anywhere, can run a node if they have the determination and knowledge. While we can't help with determination, we can help with knowledge. This section is packed with guides, walkthroughs, and information that will help you understand how to run a great Rocket Pool node.


Node Requirements and Choosing a Platform

Alright! So you've decided to try your hand at running a Rocket Pool node. The first step of the process is to decide what kind of platform you want to run your node on. If you already have one in mind, great! You can skip to the next section. If you aren't sure yet, then read on for some information about your options.


Full Node Requirements

A full node is one that runs both an Execution (ETH1) Client and Consensus (ETH2) Client along with the Rocket Pool stack. Now that the Merge has occurred, Rocket Pool nodes are required to run this configuration (though the Execution and Consensus clients can be externally managed for users already running a solo-staking setup - we'll cover this in more detail later).
NOTEAs of Smartnode v1.5.0, remote clients such as Infura, Pocket, or Alchemy are no longer supported because they are not compatible with validation duties after The Merge.
Here is a simple breakdown of what is required to run a full Rocket Pool node well:
A stable Internet connection. The longer you stay online, the better your rewards. A spotty Internet connection will hurt your returns, and by extension, the rETH ratio growth.At least 10Mbps of bandwidth both up and down. A full node usually takes around 8Mbps to 10Mbps up & down of network traffic, depending on your configuration and number of minipools.No data cap imposed by your ISP. Running a full node will take a lot of data - we have seen reports of over 2 TB per month on chain data alone. This can be mitigated somewhat with a few settings tweaks to the ETH clients, but as a rule of thumb, don't run a full node if your Internet plan comes with a monthly data cap.Stable electricity. For the same reason as needing a stable Internet connection, you also want to have reliable power. This can be mitigated with a large UPS (backup battery) to deal with short blackouts.A computer with sufficient specs. This is pretty flexible because it really depends on what Execution (ETH1) and Consensus (ETH2) client you use, and what settings you configure them with. The computer can be a local machine, or it can be a Virtual Private Server (VPS) hosted in the cloud. Read below for some more information on those two options, and how to decide which is best for you.
The following are considered minimum requirements:
Linux or macOS Operating SystemQuad core CPU (or dual-core hyperthreaded); both x64 and arm64 are supported8 GB of RAM (preferably DDR4)2 TB of free SSD Disk Space (note: this only applies to mainnet; the Prater testnet only requires about 200 GB) A spinning platter hard drive is generally not fast enough to handle the constant random reads and writes that blockchain activity requires; you MUST use a solid state drive.
Typical configurations tend to use 16 or 32 GB of RAM for future proofing, but at the time of Rocket Pool's launch, the above is sufficient to run a node.
NOTEAt this time, only Linux and macOS platforms are supported. Windows is not currently supported for Smartnode operation.


Running a Local Node

If you have reliable electricity and uncapped Internet access, and are willing to build (or buy pre-made) and maintain a computer, then running a local node might be a great choice for you. With this option, you will set up a dedicated computer as a Rocket Pool node and run it locally in your own home.
Advantages:
No monthly fees, other than utilitiesComplete control over your own machine and its data (including your wallet's key)Access to perform maintenance and upgrades whenever you wantContributes to Execution (ETH1's) and Consensus (ETH2)'s, and Rocket Pool's decentralization (and thus, their security)
Disadvantages:
Requires stable, uncapped Internet and electricity Running a node uses at least 1.5 TB of data per month. If you have a data cap below this amount, you may run into problems while running a local node!You're solely responsible for network & computer securityCan be challenging if you're not experienced with computer maintenanceVulnerable to theft
If the advantages sound like they outweigh the disadvantages for you, then take a look at our Local Node Operator's Guide.


Running a VPS on the Cloud

If you don't have a reliable uncapped Internet plan, or you just don't want to deal with building and maintaining your own physical computer, you may want to look at running a virtual private server. These are virtual servers that you rent from hosting providers, such as Amazon Web Services, Microsoft Azure, Netcup, Contabo, or other companies. Essentially, these companies will happily create and run a server for you, for a monthly fee. If you don't mind that fee and want to run a Rocket Pool node, using a VPS can be a good strategy.
Advantages:
No maintenance, support is usually available to fix issuesDoesn't affect your Internet plan or data capUsually run in a professional data center, very little down timeMay be more cost effective than buying / building your own computer
Disadvantages:
Makes Execution (ETH1) and Consensus (ETH2), and Rocket Pool somewhat more centralized, which weakens the security of the networksMonthly feesServers may come with data caps, or have expensive network I/O ratesPossible for hosts to examine your machine's contents and take your wallet's key if not secured
If those advantages sound like they outweigh the disadvantages for you, then take a look at our VPS Node Operator's Guide.


Overview

This section is aimed at helping you understand the process of preparing a local machine for use as a Rocket Pool node at home.


Guides

Selecting Staking Hardware shows a wide variety of viable hardware configurations for node operation, hopefully helping you find inspiration when picking what to get for yourself.
Preparing a PC, Mini-PC, or NUC walks you through the basic steps of installing and configuring the base Operating System on your machine to prepare it for life as a node.
Preparing a Mac is the same, but for macOS systems.
Intro to Secure Shell (SSH) shows you how to use SSH, a popular remote-access tool for working with your node machine remotely and securely from a different machine (such as a laptop or desktop) so you don't have to interact with the node directly via a monitor and keyboard connected to it.


Selecting Staking Hardware

There are no official specifications for running a Rocket Pool node. This page offers some guidelines and examples that you can use to select staking hardware.
The minimum hardware requirements of your node will depend on the Consensus and Execution clients that you choose. If, for example, you intend to run your node on a low powered device, you may be limited to using Geth as your Execution client and Nimbus as your Consensus client. If you're using a more powerful NUC with 32+ GB of RAM, all client combinations are open to you.
The guidelines below assume you want a comfortable level of hardware, meaning you have excess capacity. If you keep these guidelines in mind, your node will have plenty of resources to run any of the Rocket Pool supported client combinations. This will allow you to choose a random client pair, which is very important for client diversity on the Ethereum network.
NOTEEthereum staking is very forgiving. If your house is flooded and your staking device is fried, there is no big penalty for taking a week to get back up and running (unless you happen to be in a sync committee, which is a very rare event). Component failure might happen at some point, but don't stress about it. Downtime does not get you slashed unless you are offline during a major outage of the entire Ethereum network.


Hardware Requirements

Ethereum validators are not very computationally expensive, which is to say that once your Execution and Consensus clients are running, any additional validator will use a very small amount of additional resources. This grows up to 64 validators, at which point the resources required for adding a 65th validator and beyond are negligible.
In our experience, most setups, including mini-PCs and NUCs, are capable of running an effectively unlimited number of validators.


CPU Requirements

Running a Rocket Pool node is not very computationally intensive. The biggest impact of the CPU is how fast your node can initially sync the state of the blockchain when you first create it (or if you ever change clients later). After the initial sync, the CPU is not used as heavily.
CPU naming can be deceptive; an Intel Core i5 from 2010 is usually less powerful than a core i3 from 2022. Many community members use Intel NUC devices because of their small form factor, but an old i5 NUC may be a worse choice than a new i3. For this reason, we recommend using a "modern" CPU that is, at most, a few years old. More specifically, for x64-based CPUs, we recommend a CPU that supports the BMI2 extension - check the manufacturer's specs for your CPU to see if it is supported. Not all modern CPUs support this; for example, Celeron CPUs tend not to include it.
ARM-based CPUs (such as the Mac M1 or M2, or the Rock 5B) do not apply to the BMI2 extension above.
NOTEIf you are interested in using a NUC, you can tell how modern the NUC is by its model number. They are formatted as NUC + generation number + model + CPU type + suffix. For example, a NUC11PAHi50Z unit is a 11th generation i5 unit. You can see a list of NUCs here on the Intel website.Other mini-PCs, such as the Asus PN50 or PN51, do not follow this convention but information about which CPU is used by them should be included in their product pages.
The amount of cores on a CPU is less relevant that its number of threads. We recommend a minimum of 4 threads for Rocket Pool node operation. A 2 core CPU with 4 threads will work without issue. It is rare to find a CPU with only 2 threads.
Guideline: any modern CPU with at least 4 threads.


RAM Requirements

Rocket Pool nodes can operate with as little as 8 GB of RAM. We generally recommend having slightly more to offer some headroom and full support for RAM-heavy clients such as Teku. An added benefit of more RAM is that you can provide a larger cache size to Execution client, which tends to slow the rate of your disk space usage.
The exact type of RAM (such as DDR3 or DDR4) is not as important; generally DDR3 is fast enough to support node operation.
Guideline: at least 16 GB of RAM.


SSD Requirements

This element is more important than most people expect. The Execution client relies heavily on IOPS, or "operations per second". In practice, this means that:
HDD (spinning platter) drives will not workSATA or external USB 3.0+ SSDs can workNVMe SSD drives are preferred
If you already have an SSD you want to use and want to be sure it has sufficient performance for node operation.
NOTESSD selection can be a complex choice!The method SSDs use to store data on their flash chips has a noticeable impact on speed and longevity. When shopping for an SSD you might notice labels like QLC, TLC or SLC. These stand for the amount of data contained within a single cell of the flash chip: Q for "quad" means 4, T for "triple" means 3, M for "multi" means 2, and S for "single" means 1.We recommend TLC, MLC, or SLC drives. We do not recommend QLC drives due to their slower performance and lower total reliability.SSDs come with or without DRAM, which is a hardware element that makes accessing data on the SSD more efficient. Those with DRAM are faster but those without DRAM are cheaper. However, DRAM is quite important for providing smooth node operation.We recommend a drive with a DRAM cache. We do not recommend DRAM-less drives.
The second consideration is drive size. At the time of writing, the geth execution client database size requires about 700GB of space after it finishes its initial sync (or after you just finished pruning it). This will grow steadily over time, and while you can periodically prune the database, it is likely to cross 1 TB over the coming year(s). You will have peace of mind with a larger drive.
Guideline: a 2 TB SSD that has TLC or better, with a DRAM cache. NVMe preferred.


Common Accessories

Many node operators improve their setups beyond the minimum requirements. Some common additions include:
SSD heatsinks to extend the drive lifespanUninterruptable power supplies (UPS) in case of power outagesA fallback node to have a backup in case something fails
These are all convenient to have, but not required to run a Rocket Pool node.


Example Setups

In this section, we'll showcase a few of the varied builds that Rocket Pool's community has created for themselves. They are examples of what people are using, not recommendations for how you should run your setup.


Xer0's Server

Discord user Xer0 is among the many stakers that opted to go with a conventional PC form factor for their staking machine. They wanted to build a rig that would last for years and years to come with minimal maintenance and upgrading required, while still offering complete customization of every component. To that end, Xer0 devised and built a full ATX server - much like a traditional desktop PC, but targeted exclusively at staking on Ethereum. Their setup includes a six-core Xeon Bronze 3204 (1.9 GHz), 8 DDR4 slots, and an M.2 slot... though since this is essentially a home server build, the exact components are completely up to the end user.
Xer0's setup:
Motherboard: Supermicro X11SPI-TF ($440)CPU: Xeon Bronze 3204 ($248)RAM: NEMIX 2x32GB DDR4 ECC 2933MHz ($359)SSD: Sabrent 2TB Rocket M.2 2280 SSD ($250)Case: SilverStone HTPC ATX GD07B ($172)PSU: EVGA SuperNova 650 G3, 80+ Gold ($111)Cooler: Noctua NH-D9 DX-3647 4U ($100)Total: $1680
Here are Xer0's comments on why they chose this setup:
Obviously there is no need to build a monstrosity for simply staking on the Ethereum network, but I do have a few reasons why I built something like this.


Darcius's Shelf Rig

Rocket Pool's founder David Rugendyke (known on Discord as darcius) spent a long time perfecting his node. After some debate, he built a Mini-ITX that's small and portable, but still packs an enormous amount of processing power. His rig includes an 8-core Ryzen 7 5800x (3.8 GHz), two DDR4 slots, and two M.2 slots for NVMe SSDs. It is truly one of the most high-performance rigs of the Rocket Pool nodes, but with good reason: darcius runs a special type of Rocket Pool node called an Oracle Node, which relays information from the Beacon chain back to the Execution (ETH1) chain about all of the Rocket Pool validators. With thousands of Rocket Pool minipools active to watch, that job takes a lot of horsepower... but his shelf rig is easily up to the task.
Darcius's setup:
Motherboard: MSI MPG B550I Mini-ITX AMD ($200)CPU: AMD Ryzen 7 5800x ($490)RAM: Corsair Vengeance RGB Pro 2x16GB DDR4 3600MHz ($390)SSD: Samsung 970 EVO Plus 2TB M.2 2280 NVMe SSD ($315)Case: SilverStone SST-SG13B Mini-ITX ($52)PSU: SilverStone Strider Platinum 550W ($140)Total: $1587


Yorick's microATX Build

Veteran hardware enthusiast YorickDowne has a lot of experience building and maintaining servers. Using that knowledge, he has settled on a flexible microATX setup. His machine is considerably smaller than a typical PC, but still manages to fit in server-grade technology that maximizes resilience and uptime - key metrics when running a Rocket Pool node. He has recommendations for both Intel and AMD setups, which you can find on his website. The Intel version uses a quad core i3-9100F (3.6 GHz) or a Xeon CPU, and the AMD version suggests any Ryzen CPU that supports ECC memory. For both configurations, he suggests 16 GB of ECC RAM, and a 1 TB NVMe SSD.
Yorick's Setup:
Motherboard: SuperMicro X11SCL-F-O ($200)CPU: Intel i3-9100F ($150)RAM: Samsung 1x16GB DDR4 ECC UDIMM 2400MHz ($100)SSD: Samsung 970 EVO Plus 1TB M.2 2280 NVMe SSD ($165)Case: SilverStone Micro ATX HTPC Case ML04B-USA ($110)PSU: Any (example: Seasonic PRIME Fanless PX-500 Platinum 500W) ($161)Case fans: AnyTotal: About $886
Here are Yorick's comments on why he chose this setup:
It is at the same or lower cost as some NUCsIt has ECC RAM, which means that if memory fails - which it does now and then - I will know, because the system will tell me. I do not have to run memtest87 for 4-5 days to figure out whether my problem with instability is even memory-related. I protect my time fiercely so I can spend it bloviating on Discord instead of troubleshooting hardwareIt has IPMI, which is remote management via Ethernet/browser of the entire machine, including UEFI and power-cycle. I should be allowed to go on extended vacation and still have full remote access.If I want redundant storage so eventual SSD failure is a non-event, I can do thatIt allows for great flexibility in build choices. I can choose however much RAM and compute I want; I can choose to run a NAS with virtualization tech like TrueNAS Scale and run the node on there alongside some other home-servery stuff.


Drez's Laptop

Sometimes, shelling out for new hardware just doesn't make sense. In Discord user Drez's case, runnning a Rocket Pool node is one of those times. Drez happened to have a spare laptop lying around, and they turned it into a node with ease. Their machine comes with a quad core i7-4710HQ (2.5 GHz), two DDR3 slots, and a 2.5" SATA slot. Being a laptop, it also comes with its own battery (which offsets the need for a UPS). They added some additional upgrades over time, giving the laptop even more power for extra peace of mind.
Drez's setup:
Laptop: MSI GE70 2PE Apache Pro ($1800)RAM: 2x8GB DDR3 1333Mhz (Included)SSD: Samsung 860 EVO 1TB 2.5" SATA ($110)Total: $1910
Here are Drez's comments on why they chose this setup:
Main reason i am gonna stake on this laptop is because i already had spare one and dont need to spend extra money on a new server. I like its mobility, compactness, built-in screen for easy monitoring. In case of overheating i bought a laptop cooling pad and spare CPU cooler just in case, i also recommend to change thermal compound paste especially if you're gonna run on an older machine


NUCs (Next Unit of Computing) and Mini-PCs

Running a Rocket Pool node doesn't necessarily require a complete build-it-yourself desktop. In fact, one of the most popular setups among stakers is the illustrious NUC. A NUC (Next Unit of Computing) is essentially a small, self-contained computer that is designed around very low power usage and maximum efficiency. NUCs are great for most stakers that only run a few validators because of their low maintenance, low monthly running costs, and ease of setup. Unlike PCs, NUCs come preassembled in a case; all you need to do is add some RAM, add an SSD, and you're up and running! Below are a few examples of NUC setups that some Rocket Pool veterans use and recommend.


Ken's NUC8i5BEK

The NUC8i5BEK is one of Intel's own NUCs with an 8th-generation processor. Released in 2018, this model comes with a quad-core i5-8259U CPU (2.30 GHz), two DDR4 slots, an M.2 slot for SSDs, and USB 3.1 ports. It normally draws about 20 watts, but Discord user Ken has been able to optimize it down to 9 watts during normal validation. It is more than capable of handling any Execution (ETH1) and any Consensus (ETH2) client, making it an excellent choice for a lightweight, efficient node machine.
Ken's Setup:
Base: Intel NUC8i5BEK ($349)RAM: Dell Memory Upgrade - 1x16GB DDR4 SODIMM 3200MHz ($112)SSD: ADATA XPG S7 Series 2TB M.2 2280 NVMe SSD ($230)Fanless Case (optional): AKASA Turing Fanless case ($134)Total: $691 to $825
Here are Ken's comments on why he chose this setup:
Small size and footprint, the power supply is a brick on the power cord (like a laptop), single-board computer, x86 architecture, low purchase price point, low power consumption (~10W), 3-year warranty, and an active manufacture product line (Intel).8th generations are plenty fast and at a lower price point than the latest generation chips.I upgraded to a fan-less (passively cooled) case, so the NUC is absolutely silent (0 dB) as I’m leaving it my home office (a stock NUC is near silent already).Plus no mechanical wear on the fan bearings.Resale or re-purpose value if I decide to retire this hardware platform as my RP node - NUC’s make a great workstation computer.


GreyWizard's NUC10i7FNH

The NUC10i7FNH is another one of Intel's own NUCs. This one sports a 10th-generation processor, and was released in 2019. It comes with a six core i7-10710U CPU (1.10 GHz, boosts to 4.7 GHz), two DDR4 slots, an M.2 slot and a 2.5" slot for SSDs, and USB 3.1 ports. It draws about 20 watts of power. It is an incredibly powerful machine, given its power consumption and size. Discord user GreyWizard uses this NUC for his node - the extra power gives him peace of mind knowing that no matter what the future of the Ethereum 2.0 chain holds, his machine will be able to handle it.
GreyWizard's Setup:
Base: Intel BXNUC10I7FNH1 ($445)RAM: 2x Samsung M471A4G43MB1 32GB DDR4 SODIMM 2666 MHz ($154 ea.)SSD: Samsung 970 EVO Plus 2TB M.2 2280 NVMe SSD ($315)Total: $1068
Here are GreyWizard's comments on why he chose this setup:
I went with the i7 NUC mostly because it felt like the best combination of outstanding performance relative to overall size and overhead. I also looked at other options like building a Micro ATX-sized machine. After pricing one with the specs I was looking for, this Intel NUC ended up being about the same price, and the form factor is really tough to beat. I like having the extra headroom for performance/peace of mind, and I acknowledge that this is almost certainly way overkill. I consider staking as a serious investment and I don't want to worry if my hardware will be sufficient.
Tips for other people considering this as an option...
The NUC does run pretty warm, similar temps to a laptop. If you worry about CPU temp and you want something powerful, then you should look at small desktop setups like Micro ATX.You will want to make sure there is plenty of room around your NUC for airflow. Plan to clean the area regularly to prevent dust buildup.Make sure to check compatibility for your RAM cards. The different NUCs support varying degrees of total RAM, RAM speeds, etc.If you go with the NUC, I'd suggest you give yourself room to grow when selecting RAM... For example, spend a bit extra and get a single 32gb RAM card rather than 2x16 so you can expand later if you want (assuming your NUC will support 64gb in this example)Feel free to reach out to me on Discord if you would like to discuss.


Actioncj17's PN50

The ASUS PN50 is a mini-PC, which shares a lot in common with Intel's NUC family. It has a very small form factor but has all the components and features of a full PC. It comes with your choice of AMD CPU so you can balance between performance and cost (up to an 8-core Ryzen R7-4700U at 2.0 GHz), two DDR4 slots, an M.2 slot and a 2.5" slot for SSDs, and USB 3.1 ports. It also comes with a 90 watt power supply, though in practice it doesn't require that much power while acting as a Rocket Pool node. Discord user actioncj17 has tried several different setups, but prefers the PN50 over everything... though they happily admit that it's overkill for running a Rocket Pool node.
Actioncj17's Setup:
Base: ASUS PN50 4700u ($583)RAM: HyperX Impact 2x16GB DDR4 SODIMM 3200MHz ($220)SSD: Samsung 970 EVO Plus 2TB M.2 2280 NVMe SSD ($315)Total: $1118
Here are actioncj17's comments on why they chose this setup:
My answer to why I chose the Asus PN50 is quite simple. I wanted to see how badass AMD's Ryzen 7 4700U was. Let’s just say I’m not disappointed. I actually started with the Intel NUC10FNK. I put 32gb of ram and 1tb 970 evo plus nvme m.2 in the nuc and it blazes. I have no complaints with the nuc and it works fine but I get more out of my PN50. I’d say both setups are overkill for staking on Rocketpool but a little future proofing doesn’t hurt. They both have small footprints and the nuc is actually much quieter since it is fanless. All in all the PN50 is a better bang for your buck if you can get your hands on one.


Moralcompass's Mini-PC

Discord user moralcompass went a similar route to actioncj17 by selecting a mini-PC, but their preference is for an Intel CPU. They use a mini PC that sports a quad core i5 8250U (1.6 GHz, boost up to 3.4 GHz), one DDR4 slot, an M.2 slot and a 2.5" slot for SSDs, and USB 3.0 ports. Moralcompass claims that it only pulls about 10 watts from the wall, which demonstrates that mini PCs like this are very efficient. The interesting thing about this choice is that it is completely passively cooled - no fans to be found! While there are many variations of fanless mini PCs, moralcompass found one that worked for them and has stuck with it.
Moralcompass's Setup:
Base: Partaker Fanless Mini PC - i5 8250U ($387)RAM: Crucial 1x32GB DDR4 SODIMM 2666MHz ($153)SSD: Silicon Power 1TB M.2 2280 NVMe SSD ($115)Total: $655
Here are moralcompass's comments on why they chose this setup:
No moving parts, no noise.Dual intel NIC (in case I decide to repurpose this as my router one day)NVME + SATA slots (prefer NVME for speed and options with higher TBW endurance. SATA gives option of HDD or SSD. I avoided M.SATA interfaces because these SSDs seem to be turning legacy)USB and serial ports available for graceful shutdown signal from UPS


Preparing a PC, Mini-PC, or NUC

Before installing Rocket Pool, there are a few checks you should do to make sure your system is compatible and will work correctly.
DANGERWe strongly encourage you to create a dedicated machine for running a Rocket Pool node. Running a node on a general-use machine, such as your daily work desktop or a gaming rig, presents extra security risks that may compromise your wallet and result in the theft of your coins.For maximum safety, please build a new machine that is dedicated exclusively to running a node.


System Requirements

Below is a brief description of the software and hardware requirements that a Rocket Pool node requires. This guide assumes that you already have your machine physically built, and the operating system installed.


Supported Operating Systems

Rocket Pool's Smartnode client currently supports Linux and macOS systems.
At this time, Windows can be used to remotely manage a remote Linux or Mac machine, but the Smartnode itself cannot currently run on a Windows system. However, Rocket Pool can be run on a Linux virtual machine hosted by a Windows machine. This setup is not recommended over simply installing Linux as the host operating system, but it does work if necessary. Note that it will require extra resource overhead, and comes with its own set of security risks, so we do not advise using this setup when staking real Ether on the main network.
Rocket Pool is natively compatible with AMD64 (x64) and arm64 (aarch64) CPU architectures. For other architectures, you will need to compile the smartnode clients from source.
Note that the user must have root / Administrator access (or sudo privileges) to install the Smartnode.


Linux Support

There are many variants of the Linux OS (called distributions, or distros for short). While you can run Rocket Pool from any modern distro, Rocket Pool's installer can automatically install the entire stack on Ubuntu, Debian, CentOS, and Fedora.
NOTEIf you plan to use Ubuntu, we strongly recommend using an LTS release such as 20.04. These releases are actively maintained for longer periods of time, which helps with the security and stability of your node.
For installation on other distros, the Smartnode installer will not be able to automatically install some system dependencies (such as docker-compose). Some manual steps will be required during installation.
For arm64 systems, the Smartnode installer only natively supports Debian and Debian-based distros such as Ubuntu. For other distros, manual steps will be required during installation.


Hardware Requirements

The hardware requirements for a node depend largely on which Execution and Consensus clients you decide to run. As shown in the hardware guide, there is a wide range of possible configurations that work well. However, for the sake of completeness, we have assembled the following hardware profiles:


Low-Power Full Node

CPU: Quad-core 1.6+ GHzRAM: 8 GB DDR4 2400 MHzSSD: 2 TB, 15k Read IOPS, 5k Write IOPS*Network: 10+ Mbps, 1.5+ TB monthly data capExecution Client: Geth (in low-cache mode)Consensus Client: Nimbus


Typical Full Node

CPU: Quad-core, 2.6+ GHzRAM: 16 GB DDR4 3200 MHzSSD: 2 TB, 15k Read IOPS, 5k Write IOPS*Network: 25+ Mbps, 1.5+ TB monthly data capExecution Client: AnyConsensus Client: Any
* If you are unsure if your disk meets these performance requirements, fio is a good way to test them. See here for Linux instructions, and here for MacOS instructions.


Installing the Operating System

If you're using macOS, it's highly likely that you already have the Operating System installed and can skip this step.
If you're installing Linux from scratch, each of the distributions listed above come with helpful and detailed tutorials for installing the Operating System from scratch. As an example though, we will walk you through the process of installing and preparing Debian Server. Debian is a good choice for node operation because it focuses on maximum stability and reliability - both of which are highly desirable for node machines that must be running 24/7.
Here is a good step-by-step guide with screenshots that shows you how to install Debian on your node machine from scratch.
TIPWe have a few helpful amendments to the guide linked above, which you may want to follow:When prompted to set up a root password, we recommend leaving it blank. This will disable the root account and instead install the sudo package, allowing your user to perform root operations by re-entering its password to elevate its permissions. This is analogous to the way Ubuntu Linux is set up, which may be more familiar to users.In the Software selection screen towards the end, you may not want to have a desktop GUI installed. Desktop GUIs are largely unnecessary for a node; they add extra overhead and most of the time will not be used since you'll be remote controlling it via the terminal anyway, so we prefer to uncheck GNOME and Debian desktop environment here.If you do want a desktop UI on your node, we recommend you uncheck GNOME and check XFCE instead, as it's lighter on system resources.Uncheck web server, but leave SSH server and standard system utilities checked.If you have created a flash drive from an iso, you may need to disable the CD-ROM repository in order to run apt. You can find an explanation of how to do this here.Your system may be set up to sleep/hibernate by default. To disable these settings, you can run the following command: sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target


Installing sudo

Rocket Pool's installer requires the sudo program to acquire all of its dependencies. If you left the root user password blank in the previous step, you will already have this. If not, please install it now by running the following commands:
apt update
apt install sudo
usermod -aG sudo $USER
Then restart the machine. You should now be able to run commands via sudo such as sudo apt update.


Using SSH

Once the server is installed and you're able to log in, you need to get its IP address. An easy way to do this is with ifconfig which is built into the 'net-tools' package:
sudo apt update
sudo apt install net-tools
sudo ifconfig
You may see several entries here, but the one you want to look for is going to look something like this:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
      inet6 fe80::96f2:bf29:e269:1097  prefixlen 64  scopeid 0x20<link>
      ether <mac address>  txqueuelen 1000  (Ethernet)
      ...
The flags should say UP,BROADCAST,RUNNING,MULTICAST. The inet value (here 192.168.1.8) is your machine's local IP address.
Next, install SSH:
sudo apt install openssh-server
NOTEIf you had the SSH server box checked during Debian's installation, you should already have this installed so this command won't do anything.
Once this is done, you can log into the machine's terminal remotely from your laptop or desktop using ssh.
If you aren't familiar with ssh, take a look at the Intro to Secure Shell guide.
NOTEAt this point, you should strongly consider configuring your router to make your node's IP address static. This means that your node will have the same IP address forever, so you can always SSH into it using that IP address. Otherwise, it's possible that your node's IP could change at some point, and the above SSH command will no longer work. You'll have to enter your router's configuration to find out what your node's new IP address is.Each router is different, so you will need to consult your router's documentation to learn how to assign a static IP address.


Setting up Swap Space

In most cases, if you choose your Execution (ETH1) and Consensus (ETH2) clients and your instance type carefully, you should not run out of RAM. Then again, it never hurts to add a little more. What we're going to do now is add what's called swap space. Essentially, it means we're going to use the SSD as "backup RAM" in case something goes horribly, horribly wrong and your server runs out of regular RAM. The SSD isn't nearly as fast as the regular RAM, so if it hits the swap space it will slow things down, but it won't completely crash and break everything. Think of this as extra insurance that you'll (most likely) never need.


Creating a Swap File

The first step is to make a new file that will act as your swap space. Decide how much you want to use - a reasonable start would be 8 GB, so you have 8 GB of normal RAM and 8 GB of "backup RAM" for a total of 16 GB. To be super safe, you can make it 24 GB so your system has 8 GB of normal RAM and 24 GB of "backup RAM" for a total of 32 GB, but this is probably overkill. Luckily, since your SSD has 1 or 2 TB of space, allocating 8 to 24 GB for a swapfile is negligible.
For the sake of this walkthrough, let's pick a nice middleground - say, 16 GB of swap space for a total RAM of 24 GB. Just substitute whatever number you want in as we go.
Enter this, which will create a new file called /swapfile and fill it with 16 GB of zeros. To change the amount, just change the number in count=16 to whatever you want. Note that this is going to take a long time, but that's ok.
sudo dd if=/dev/zero of=/swapfile bs=1G count=16 status=progress
Next, set the permissions so only the root user can read or write to it (for security):
sudo chmod 600 /swapfile
Now, mark it as a swap file:
sudo mkswap /swapfile
Next, enable it:
sudo swapon /swapfile
Finally, add it to the mount table so it automatically loads when your server reboots:
sudo nano /etc/fstab
Add a new line at the end that looks like this:
/swapfile                            none            swap    sw              0       0
Press Ctrl+O and Enter to save, then Ctrl+X and Enter to exit.
To verify that it's active, run these commands:
sudo apt install htop
htop
Your output should look like this at the top:
If the second number in the last row labeled Swp (the one after the /) is non-zero, then you're all set. For example, if it shows 0K / 16.0G then your swap space was activated successfully. If it shows 0K / 0K then it did not work and you'll have to confirm that you entered the previous steps properly.
Press q or F10 to quit out of htop and get back to the terminal.


Configuring Swappiness and Cache Pressure

By default, Linux will eagerly use a lot of swap space to take some of the pressure off of the system's RAM. We don't want that. We want it to use all of the RAM up to the very last second before relying on SWAP. The next step is to change what's called the "swappiness" of the system, which is basically how eager it is to use the swap space. There is a lot of debate about what value to set this to, but we've found a value of 6 works well enough.
We also want to turn down the "cache pressure", which dictates how quickly the server will delete a cache of its filesystem. Since we're going to have a lot of spare RAM with our setup, we can make this "10" which will leave the cache in memory for a while, reducing disk I/O.
To set these, run these commands:
sudo sysctl vm.swappiness=6
sudo sysctl vm.vfs_cache_pressure=10
Now, put them into the sysctl.conf file so they are reapplied after a reboot:
sudo nano /etc/sysctl.conf
Add these two lines to the end:
vm.swappiness=6
vm.vfs_cache_pressure=10
Then save and exit like you've done before (Ctrl+O, Ctrl+X).


Pre-installation System Checks

Before installing Rocket Pool, please review the following checklist:
Your system is fully built, powers on, and can boot into the operating system.You will not do any other activity on the system, such as browsing the Internet, checking email, or playing games.You have a Linux or macOS operating system installed.Your user account has root / Administrator privileges.You have an SSD that meets the performance requirements.Your SSD is mounted on your file system.You have at least 1.2 TB of disk space free for the initial Execution and Consensus syncing process.If your ISP caps your data, it is more than 2 TB per month.
If you have checked and confirmed all of these items, then you are ready to install Rocket Pool and begin running a node! Move on to the Choosing your ETH Clients section.


Preparing a Mac

Before installing Rocket Pool, there are a few checks you should do to make sure your system is compatible and will work correctly.
DANGERWe strongly encourage you to create a dedicated machine for running a Rocket Pool node. Running a node on a general-use machine, such as your daily work desktop, presents extra security risks that may compromise your wallet and result in the theft of your coins.For maximum safety, please build a new machine that is dedicated exclusively to running a node.


System Requirements


Supported Operating Systems

Rocket Pool recommends you use the latest version of macOS for your hardware.


macOS Support

You will need to install the following pre-requisites:
Docker Desktop by downloading the binary installer from the website and dragging it to your Applications folder.
XCode Command Line Tools can be downloaded by opening up the Terminal application (located in /Applications/Utilties) and executing the following command:
xcode-select --install
We highly recommend using Homebrew as your package manager for Mac. It allows you to install packages easily using the brew command.
For example, to install wget using Homebrew execute the following command in the Terminal:
brew install wget
Please ensure your Firewall (Settings -> Security & Privacy -> Firewall) is turned on and Docker Desktop is added to the list of applications allowing incoming connections.


Hardware Requirements

The hardware requirements for a node depend largely on which Execution (ETH1) and Consensus (ETH2) clients you decide to run. As shown in the hardware guide, there is a wide range of possible configurations that work well. However, for the sake of completeness, we have assembled the following hardware profiles:


Low-Power Full Node

CPU: Quad-core 1.6+ GHzRAM: 8 GB DDR4 2400 MHzSSD: 2 TB, 15k Read IOPS, 5k Write IOPS**Network: 10+ Mbps, 1.5+ TB monthly data capExecution Client: Geth (in low-cache mode), BesuConsensus Client: Nimbus, Lighthouse, Prysm


Typical Full Node

CPU: Quad-core, 2.6+ GHzRAM: 16 GB DDR4 3200 MHzSSD: 2 TB, 15k Read IOPS, 5k Write IOPS**Network: 25+ Mbps, 1.5+ TB monthly data capExecution Client: AnyConsensus Client: Any
** The Execution blockchain grows quickly, so 2 TB will offer some future-proofing. The larger your storage, the longer you can go between needing to reclaim space by pruning


Installing and Using SSH

SSH should already be installed with macOS.


Pre-installation System Checks

Before installing Rocket Pool, please review the following checklist:
Your system is fully built, powers on, and can boot into the operating system.You will not do any other activity on the system, such as browsing the Internet, checking email, or playing games.You have a macOS operating system installed.Your user account has root / administrator privileges.You have an SSD that meets the performance requirements.Your SSD is mounted on your file system.You have at least 1TB of space free for the initial Execution and Consensus syncing process.If your ISP caps your data, it is more than 1.5 TB per month.
If you have checked and confirmed all of these items, then you are ready to install Rocket Pool and begin running a node! Move on to the Choosing your ETH Clients section.