RPL Staking and Claiming Rewards

In Saturn 1, RPL has fundamentally transformed into an ETH-accruing revenue share token. This guide covers how to stake RPL to your megapool, migrate existing RPL stake from legacy minipools, claim your rewards, and withdraw your RPL when needed. This guide also goes over the mechanics of how ETH protocol revenue is distributed to megapool RPL stakers via voter share rewards.

What's Changed in Saturn 1

Moving forward, legacy RPL previously staked on minipools continue earning inflation rewards and contribute to voting power just like before. In Saturn 1, staking RPL on your megapool provides several benefits:

  1. ETH Revenue Share: Megapool staked RPL earns you a proportional share of protocol ETH revenue through the voter share mechanism
  2. RPL Inflation Rewards: Continue to earn RPL inflation rewards (28-day reward periods)
  3. Voting Power: Staked RPL grants voting power in Rocket Pool's Protocol Dao (pDAO) governance

Staking RPL on your megapool unlocks ETH rewards generated by protocol revenue. The voter share (9% of protocol revenue) is distributed proportionally among all node operators based on their share of total megapool RPL staked.

Universal Adjustable Revenue Split (UARS)

Saturn 1 introduces UARS, which distributes protocol ETH revenue from node operator commissions among four groups:

GroupDefault ShareAdjustable via pDAO
Base Commission Share to node operators5%Yes
Voter Share to megapool RPL stakers9%Yes
pDAO Treasury0%Yes
rETH Holders86% (remainder)Automatic

These parameters are adjustable via pDAO governance, allowing the Rocket Pool protocol to adapt and be competitive as market conditions shift. By staking RPL and running validators, you are eligible to participate in this process!

How Voter Share is Distributed to Megapool RPL stakers

The voter share (9% of protocol revenue) is distributed proportionally among all node operators based on their share of total megapool RPL staked. Every 28 days, the oracle DAO will take a snapshot of the total ETH accumulated in the voter share pool as well as a record of each node operator's share based on their balance of megapool staked RPL. At the end of each 28 day reward period, you'll be able to claim your rewards using the smart node. Alternatively you can accumulate rewards over the span of many periods then claim all at once.

Check out the Viewing your ETH and RPL rewards guide to learn about the different types of rewards you can earn, and how to check the status of your rewards.

Once you're familiar with that, give Claiming Rewards a read to learn how to claim your rewards.

Vote Power

For your RPL to be vote-eligible, it must meet these requirements:

  • Staked to your node operator account (both legacy and megapool-attributed RPL are eligible)
  • Capped at 150% of your total bonded ETH (across all minipools and megapools)
  • Your node must have active validators (minipools or megapools) to contribute bonded ETH

These requirements together serve to ensure fairness by making it harder for large stakers to gain disproportionate influence over the voting process.

The 150% of total bonded ETH maximum vote-eligible RPL is calculated using your bonded ETH across all minipools and megapools as follows:

vote-eligible RPL = min(1.5*RPL value of megapool bonded_eth, megapool staked rpl)

You should be able to view your node's bonded ETH ratio in the rocketpool node status menu:

=== RPL Stake ===
NOTE: The following figures take *any pending bond reductions* into account.

The node has a total stake of 5400.964614 RPL.
This is currently 4.79% of its borrowed ETH and 14.38% of its bonded ETH.
The node has 4383.275814 megapool staked RPL.
The node has 1017.688800 legacy staked RPL.
The node has a total stake (legacy minipool RPL plus megapool RPL) of 5400.964614 RPL.
You have 4383.275814 RPL staked on your megapool and can request to unstake up to 4383.275814 RPL
IMPORTANT

The voting system treats all staked RPL equally when calculating your voting power. However, vote-eligible RPL must be staked on a megapool to earn voter share ETH rewards. The voter share (9% of protocol ETH revenue) is only distributed to megapool stakers. In other words, all vote-eligible RPL grants voting power while vote-eligible megapool RPL earns voter share rewards.

So in the example above the node's total stake of 5400.964614 RPL is vote-eligible as it falls within the 150% bonded ETH max. The node's 4383.275814 megapool staked RPL earns voter share rewards while the node's 1017.688800 legacy staked RPL does not.

Migrating RPL from Legacy Minipools to Megapools

If you're an existing node operator with RPL staked to legacy minipools, you might consider migrating your legacy RPL stake to your megapool. Legacy RPL staked on minipools do not earn voter share rewards. However, your legacy RPL stake will continue earning RPL inflation rewards and contribute to your node's voting power in pDAO governance.

To migrate your legacy RPL, you will first Unstake and withdraw your legacy RPL, then stake it again using the rocketpool node stake-rpl command. We'll go into how to do so in the next section.

Unstaking and Withdrawing RPL

Saturn 1 introduces a two-step withdrawal system for unstaking RPL. It's intended to reduce market volatility, especially in the case of a bank run. The two-step withdrawal system also prevents the scenario of a node operator gaming the rewards system by having their RPL earn rewards in Defi then staking it in time for a rewards period.

  1. The first step is to make a request to unstake RPL. You'll decide how much legacy RPL or megapool RPL you wish to unstake.
  2. After a 28 day unstaking period, the unstaking RPL will be unstaked. At this point you may withdraw your unstaked RPL.

There's no limit on how much megapool staked RPL you can unstake, which means you can unstake and withdraw all of it any time. Node operators with legacy RPL may withdraw down to 15% borrowed ETH collateral. This 15% minimum only considers borrowed ETH from legacy minipools, not megapools. The next few sections will go over the two steps for unstaking and withdrawing RPL.

Note for Legacy RPL Stakers

If you want to lower your percentage of borrowed ETH collateral to withdraw more of your RPL, you might want to consider exiting your minipool(s) to lower your borrowed ETH collateral amount.

Step 1: Request to Unstake RPL

WARNING

During the 28 day unstaking period:

  • The RPL you've requested to unstake does not continue earning rewards.
  • You can't cancel the unstaking process, but you may withdraw after the 28 day period then restake it.
  • You may initiate a new withdrawal during the 28 day period, but all your unstaking RPL will refresh to 28 days in unstaking. It's recommended to complete your initial withdrawal before making another one. Otherwise you'll need to wait the full length of the unstaking period again.

To begin the process, use the rocketpool node withdraw-rpl command. You'll see the following prompt:

The RPL withdrawal process has changed in Saturn. It is now a 2-step process:
1. Request to unstake a certain RPL amount;
2. Wait for the unstaking period to end (currently 28 days), and then withdraw the RPL.

Your node has 1017.688800 RPL on its legacy stake (previously associated to minipools) and 4383.275814 RPL staked on its megapool.
Your node currently has 0.000000 RPL locked on pDAO proposals.
Your node's RPL withdrawal address is 0x89e860C8Feb86D9f54Ad4D7D6bcBe019EB1D6C24.

You have 0.000000 RPL unstaked and ready to be withdrawn to your RPL withdrawal address.
Please select one of the three options below.

1: withdraw unstaked RPL
2: request to unstake RPL
3: request to unstake legacy RPL
  • If you're unstaking megapool RPL, select the second option request to unstake RPL by typing 2, then pressing enter on your keyboard.

  • If you're in the process of migrating legacy RPL, select the third option request to unstake legacy RPL.

You'll be prompted to either unstake your full balance or to input a custom amount to unstake. Enter y to unstake the full amount or enter n to input a custom amount to unstake. From here, the smart node will walk you through the rest of the steps required to make the unstake request.

You have 4383.275814 RPL staked on your megapool and can request to unstake up to 4383.275814 RPL.
Would you like to unstake the maximum amount of staked RPL? [y/n]
n

Please enter an amount of staked RPL to unstake:
1000

+================ Suggested Gas Prices ================+
| Avg Wait Time |   Max Fee    |     Total Gas Cost     |
| 15 Seconds    | 2.97747 gwei | 0.00061 to 0.00091 ETH |
| 1 Minute      | 2.47747 gwei | 0.00050 to 0.00076 ETH |
| 3 Minutes     | 1.97747 gwei | 0.00040 to 0.00060 ETH |
| >10 Minutes   | 1.97747 gwei | 0.00040 to 0.00060 ETH |
+======================================================+

These prices include a maximum priority fee of 0.010 gwei.
Please enter your max fee (including the priority fee) or leave blank for the default of 2.47747 gwei:


Using a max fee of 2.477 gwei and a priority fee of 0.010 gwei.
Are you sure you want to unstake 1000.000000 RPL? [y/n]
y

Unstaking RPL...
Transaction has been submitted with hash <transaction-hash>.
You may follow its progress by visiting:
https://hoodi.etherscan.io/tx/<transaction-hash>

Waiting for the transaction to be included in a block... you may wait here for it, or press CTRL+C to exit and return to the terminal.

Successfully unstaked 1000.000000 RPL.

Checking the Status of Your Unstaking RPL

After you've successfully made a request to unstake RPL, the rocketpool node withdraw-rpl command will inform you when the unstaking RPL is eligible for a withdrawal:

Your node has 1017.688800 RPL on its legacy stake (previously associated to minipools) and 3383.275814 RPL staked on its megapool.
Your node currently has 0.000000 RPL locked on pDAO proposals.
Your node's RPL withdrawal address is <node-address>.

You have 1000.000000 RPL currently unstaking until 2026-02-19, 04:05 +0000 UTC (47h57m19s from now).

Step 2: Withdrawing Unstaked RPL

After the 28 day unstaking period has passed, the status will be reflected in the rocketpool node withdraw-rpl command and you'll finally be able to withdraw your unstaked RPL.

You have 1000.000000 RPL unstaked and ready to be withdrawn to your RPL withdrawal address.

If you don't have an RPL withdrawal address configured, the RPL will be withdrawn to your node wallet. Node operators with a custom RPL withdrawal address will need to withdraw from the withdrawal address and not from the node address. You can use this site to withdraw using your RPL withdrawal address: https://node.rocketpool.net/withdraw-rpl

Your node has 1017.688800 RPL on its legacy stake (previously associated to minipools) and 3383.275814 RPL staked on its megapool.
Your node currently has 0.000000 RPL locked on pDAO proposals.
Your node's RPL withdrawal address is <RPL-withdrawal-address>.

You have 1000.000000 RPL unstaked and ready to be withdrawn to your RPL withdrawal address.
Please select one of the three options below.

1: withdraw unstaked RPL
2: request to unstake RPL
3: request to unstake legacy RPL
1

+================ Suggested Gas Prices ================+
| Avg Wait Time |   Max Fee    |     Total Gas Cost     |
| 15 Seconds    | 2.97747 gwei | 0.00061 to 0.00091 ETH |
| 1 Minute      | 2.47747 gwei | 0.00050 to 0.00076 ETH |
| 3 Minutes     | 1.97747 gwei | 0.00040 to 0.00060 ETH |
| >10 Minutes   | 1.97747 gwei | 0.00040 to 0.00060 ETH |
+======================================================+

These prices include a maximum priority fee of 0.010 gwei.
Please enter your max fee (including the priority fee) or leave blank for the default of 2.47747 gwei:


Using a max fee of 2.477 gwei and a priority fee of 0.010 gwei.
Are you sure you want to withdraw 1000.000000 RPL? [y/n]
y

Withdrawing RPL...
Transaction has been submitted with hash <transaction-hash>.
You may follow its progress by visiting:
https://hoodi.etherscan.io/tx/<transaction-hash>

Waiting for the transaction to be included in a block... you may wait here for it, or press CTRL+C to exit and return to the terminal.

Successfully withdrew 1000.000000 RPL.

Staking

Staking RPL on your megapool can be done using the rocketpool node stake-rpl command.

staker@node:~$ rocketpool node stake-rpl

NOTE: By staking RPL, you become a member of the Rocket Pool pDAO. Stay informed on governance proposals by joining the Rocket Pool Discord.

The node has a balance of 0.000000 RPL.

Please choose an amount of RPL to stake:
1: 5% of borrowed ETH (2191.637908 RPL) for one validator?
2: 10% of borrowed ETH (4383.275815 RPL) for one validator?
3: 15% of borrowed ETH (6574.913722 RPL) for one validator?
4: Your entire RPL balance (0.000000 RPL)?
5: A custom amount

Using this command will stake RPL on your megapool, increasing your voter share rewards. It's not possible to stake RPL on a minipool anymore.

Viewing your node's ETH and RPL rewards

The smart node has a handy new feature that allows you to check the status of all the different types of rewards that your node might have. Here's a list of all the possible reward types:

  1. Megapool Execution Layer Rewards
  2. Fee Distributor Rewards
  3. Minipool Balance Distribution
  4. Periodic Rewards (RPL + ETH)
  5. Unclaimed Rewards
  6. Credit Balance Withdrawal
  7. Staked ETH on Behalf Withdrawal
  8. PDAO Bond Claims

You can access this menu using the rocketpool claims status command. It will let you know if you have rewards to claim and which type.

Claiming your node's ETH and RPL rewards

If you're ready to claim rewards, you can use the rocketpool claims claim-all command. It will let you select either all, or some reward types.

Here's an example of the menu:

staker@node:~$ rocketpool claims claim-all

============================================================
              Available Rewards Summary
============================================================

--- [1] Megapool Execution Layer Rewards ---
  Cannot distribute: 2 validator(s) exiting

--- [2] Fee Distributor ---
  Fee distributor not initialized. Run 'rocketpool node initialize-fee-distributor' first.

--- [3] Minipool Balance Distribution ---
  No minipools eligible for balance distribution.

--- [4] Periodic Rewards (RPL + ETH) ---
  Unclaimed intervals: 6
    Interval 141: 0.000000 RPL, 0.000033 ETH
    Interval 142: 0.000000 RPL, 0.000038 ETH
    Interval 143: 0.000000 RPL, 0.000062 ETH
    Interval 144: 0.000000 RPL, 0.000016 ETH
    Interval 145: 0.000000 RPL, 0.000025 ETH
    Interval 146: 0.000000 RPL, 0.000038 ETH
  Total: 0.000000 RPL + 0.000215 ETH

--- [5] Unclaimed Rewards ---
  No unclaimed rewards.

--- [6] Credit Balance Withdrawal ---
  Credit balance: 4.000000 ETH (the equivalent amount in rETH will be transferred to 0x4d19DE4A5a1B1B36EBaB3D5c32C01061fbDE328d)

--- [7] Staked ETH on Behalf Withdrawal ---
  No ETH staked on behalf of the node.

--- [8] PDAO Bond Claims ---
  No claimable bonds or rewards.

============================================================
                       Totals
============================================================
  ETH: 4.000215
  RPL: 0.000000

The following 2 claim(s)/credits are available:
  1. Periodic Rewards (RPL + ETH): 0.000215 ETH
  2. Credit Balance Withdrawal: 4.000000 ETH

Enter the numbers of the claims you want to execute (comma-separated), 'all' to claim everything, or 'none' to cancel:

Once you've made your selection(s) and confirmed the gas options, there might be additional prompts to follow depending on what type of reward you're claiming. We won't go into all of them here though. The smart node should be able to walk you through all the steps.

Here's what it looks like to redeem two types of rewards - periodic rewards + ETH credit:

+================ Suggested Gas Prices ================+
| Avg Wait Time |   Max Fee    |     Total Gas Cost     |
| 15 Seconds    | 2.93764 gwei | 0.00111 to 0.00167 ETH |
| 1 Minute      | 2.56087 gwei | 0.00097 to 0.00146 ETH |
| 3 Minutes     | 1.93764 gwei | 0.00073 to 0.00110 ETH |
| >10 Minutes   | 1.93764 gwei | 0.00073 to 0.00110 ETH |
+======================================================+

These prices include a maximum priority fee of 0.010 gwei.
Please enter your max fee (including the priority fee) or leave blank for the default of 2.56087 gwei:


Using a max fee of 2.561 gwei and a priority fee of 0.010 gwei.

Executing 2 claim(s)...

[1/2] Periodic Rewards (RPL + ETH)
  Submitting transaction...
  Claiming periodic rewards...
Transaction has been submitted with hash 0x68585d6cef75a6b9507a10e634de2d01a77ae920ea05659ea79c5493a1bc9e30.
You may follow its progress by visiting:
https://hoodi.etherscan.io/tx/0x68585d6cef75a6b9507a10e634de2d01a77ae920ea05659ea79c5493a1bc9e30

Waiting for the transaction to be included in a block... you may wait here for it, or press CTRL+C to exit and return to the terminal.

  Successfully claimed periodic rewards.

[2/2] Credit Balance Withdrawal
  Submitting transaction...
  Withdrawing credit balance...
Transaction has been submitted with hash 0xabf1922e362e25238fc24857aae1f42093097a90a9ef3a0f2ca9dc44c24f8f15.
You may follow its progress by visiting:
https://hoodi.etherscan.io/tx/0xabf1922e362e25238fc24857aae1f42093097a90a9ef3a0f2ca9dc44c24f8f15

Waiting for the transaction to be included in a block... you may wait here for it, or press CTRL+C to exit and return to the terminal.

  Successfully withdrew 4.000000 credit as rETH.

============================================================
All 2 claim(s) completed successfully.
============================================================

Next Steps

Now that you understand RPL staking and rewards in Saturn 1, feel free to check out the pDAO governance section to learn how your voting power can be used to participate in making key decisions to improve Rocket Pool. And please take the time to review Monitoring and Maintenance to learn how you can apply updates, monitor your node, and brush up on how to keep your node in tip top shape throughout its life.

For more technical details on UARS and the economics behind voter share, see RPIP-46: Universal Adjustable Revenue Split.