Introducing Rocket Pool Mode on ethstaker.tax
Rocket Pool represents a great part of the Ethereum staking ecosystem. Designed with a decentralization-first mindset, it allows people to run Ethereum validators while requiring a fraction of the standard 32 ETH collateral. This accessibility extends beyond the technically adept, enabling users to deposit their ETH into Rocket Pool's deposit pool in return for the rETH liquid staking token, allowing them to earn rewards without the need to personally run a node.
Within the Rocket Pool ecosystem, node operators create minipools, each requiring either an 8 or 16 ETH bond, with the remaining portion supplied by the protocol. Complexity arises in the reward structure, where node operators navigate a dual-layered system, earning commission-based rewards on the protocol-provided ETH collateral and full rewards on their personally staked portion. Beyond the native staking rewards distributed in ETH, Rocket Pool node operators also earn RPL tokens which are distributed at regular 28-day intervals.
A great feature Rocket Pool node operators can opt into is the Smoothing Pool, allowing them to contribute their execution layer rewards into a communal pool which subsequently distributes its sum of rewards to pool contributors at the same regular 28-day intervals.
In this post we delve into how we tackled the challenges of calculating the various types of Rocket Pool rewards for the ethstaker.tax staking income calculator.
Consensus layer rewards
Every few days a withdrawal operation skims the validator balance in excess of 32 ETH and directs it to the minipool smart contract address. Since minipool node-provided bonds and fees may undergo changes (see the section on bond reductions below), determining the exact share that belongs to the node operator during a withdrawal operation needs to take into account the minipool's bond and fee at the specific moment of the withdrawal.
Execution layer rewards
When a Rocket Pool validator proposes a block, its associated execution layer rewards are sent to the Rocket Pool Smoothing Pool (if the node operator is opted into it) or to the node operator’s fee distributor smart contract.
If the node operator is opted into the Smoothing Pool at the time of the block proposal
If the node operator is not opted into the Smoothing Pool at the time of the block proposal
In this case the block’s entire execution layer rewards are sent to the Smoothing Pool smart contract.
Determining a node operator’s share of the Smoothing Pool is not trivial. Fortunately this information is easily accessible through the rewards trees that are published onto IPFS and GitHub. We monitor the chain for RewardSnapshot events and automatically parse the associated rewards trees.
In this case, the block’s entire execution layer rewards are sent to the node’s fee distributor smart contract. This contract exists on a node level and the node operator’s share of the rewards that accrues here is determined by the node’s average fee at the time of the receipt of the block reward.
During reward calculation, ethstaker.tax verifies that each and every block reward reaches one of the expected destinations – be it the Smoothing Pool or the node’s fee distributor smart contract.
Even if a node operator alternates between opting into and out of the Smoothing Pool throughout the year, rewards are still determined accurately.
RPL income
RPL income is determined based on the RewardSnapshot events that are emmitted on-chain after every Rocket Pool reward period. The associated rewards trees published to IPFS and GitHub, making it simple to determine a node operator’s RPL income.
Bond reductions
The Atlas Rocket Pool protocol upgrade allowed node operators to migrate existing 16 ETH minipools into 8 ETH minipools. As part of this migration the minipool fee gets changed to the current Rocket Pool network fee of 14%.
In terms of calculating staking income this means the node operator’s share of staking rewards will be different before and after a bond reduction. We have implemented measures for ethstaker.tax to automatically account for these events.
How to use Rocket Pool Mode
Go to ethstaker.tax
Turn on Rocket Pool Mode by switching the toggle
Enter your Rocket Pool node address and hit Add to automatically add all your validators run through Rocket Pool
Enter the date range and currency you would like to calculate income for
Hit the Calculate button
The output can be downloaded as a CSV file for use in any accounting tool you like!
Known Limitations
While ethstaker.tax can handle most Rocket Pool node operator's rewards, there are a few cases that are not handled (yet):
The calculation can take a while, up to several minutes for large node operators that do not use the Smoothing Pool
Promoted minipools (full 32ETH validators later converted into Rocket Pool minipools)
Pre-Redstone RPL rewards (before September 2022)
About Serenita
Serenita is a leading blockchain infrastructure operator specializing in secure and reliable solutions for managing and growing digital assets, with a primary focus on Ethereum staking. Our seasoned team combines years of experience, technical expertise, and industry knowledge to ensure optimal performance and best-in-class digital asset security. Serenita is committed to contribute to the broader ecosystem by continuing to support home stakers, running minority clients and taking any future measures that benefit the network at large.
We guide our customers through the technical complexities of Ethereum staking, providing non-custodial solutions with the flexibility to stop staking at any time. Reach out to discover how Serenita can help you manage and grow your digital assets, providing expert-driven solutions tailored to your needs.