Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions docs/en/node-staking/megapools/migration.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Migrating from Minipools to Megapool Validators

If you're a returning node operator looking to migrate their minipool stake to a megapool, this page will offer a step-by-step guide on
how to do so. Migration involves exiting your minipools, unstaking legacy RPL and creating new megapool validators. Additionally, you can restake
the RPL on your megapool to earn [voter share rewards](/node-staking/megapools/staking-and-claiming-rewards#how-voter-share-is-distributed-to-megapool-rpl-stakers) - 9% of protocol ETH revenue is distributed proportionally to RPL stakers with megapool validators.
This is in addition to the previously standard RPL inflation rewards.

These are the four separate steps:

1. Exiting your minipool. That means unwinding your validator and withdrawing its full balance from the Beacon Chain.
2. Unstaking and withdrawing your legacy RPL
3. Creating a new megapool validator
4. Restake the RPL on a megapool. This step is optional, but doing so will earn [voter share rewards](/node-staking/megapools/staking-and-claiming-rewards#how-voter-share-is-distributed-to-megapool-rpl-stakers) from ETH revenue

Before you commit to migrating your minipool stake to a megapool, you'll want to consider the status of the Rocket Pool deposit queue
and the Beacon Chain queue. Both of which are variable in wait time and independent of each other. The Rocket Pool deposit queue governs
the creation of new megapool validators and when they get matched with ETH from rETH stakers. Meanwhile, the Beacon Chain deposit queue governs the
process of how quickly your minipool validator can exit in addition to how soon your new megapool validator can begin participating in attestation duties.

Also consider that the megapool validator bond is 4 ETH, which means you'll be able to create two megapool validators for every 8 ETH minipool validator you have.

::: warning WARNING
Once your minipool has fully exited from the Beacon Chain, you won't be earning rewards on your ETH until your megapool validator is processed by
the Rocket Pool deposit queue *and* the Beacon Chain deposit queue. You'll want to monitor the length of the queue to decide when to migrate.
:::

::: tip Useful Links
https://saturn-1.net/queue is a community supported dashboard created by Steely! This page can give you an idea of how long the Rocket Pool deposit queue is.

https://www.validatorqueue.com/ is a helpful site for checking the length of the Beacon Chain queue. This queue is contingent on the amount of ETH
entering and leaving the Beacon Chain. It's processed at a rate of `256 ETH per epoch`.

https://rocketpool.net/node-staking/rpl-fee-switch models the impact of Saturn 1's fee switch on your staking rewards.

:::

## Step 1: Exiting your Minipool

Exiting your minipool is first step for migrating stake to a megapool. Follow the link below for a handy guide on how
to exit your minipool and withdraw funds from the Beacon Chain:

https://docs.rocketpool.net/node-staking/withdraw

This process might take a few days. Feel free to bookmark this page and revisit when it's complete.

Before you proceed to the next step (Unstaking and Withdrawing Legacy RPL), make sure that your minipool is fully exited from the Beacon
Chain and the [rewards have been distributed](/node-staking/withdraw#distributing-full-rewards) using the `rocketpool minipool close` command.
`rocketpool minipool close` will finalize your minipool and distribute its full rewards, allowing you to
unstake your full balance of legacy RPL.


## Step 2: Unstaking and Withdrawing Legacy RPL

The withdrawal limit for legacy RPL is 15% of minipool borrowed ETH. If you wish to unstake your full balance of legacy RPL, you need to
ensure that all your borrowed ETH ratio is at 0% by closing all of your minipools.

When you're ready, you can use the following command to unstake and withdraw Legacy RPL:
```
rocketpool node withdraw-rpl
```
There is a 28 day unstaking period before you can withdraw your Legacy RPL.
Please follow this link for detailed instructions on how to unstake and withdraw legacy RPL.

https://docs.rocketpool.net/node-staking/megapools/staking-and-claiming-rewards#unstaking-and-withdrawing-rpl

## Step 3: Creating a Megapool Validator

Once your minipool is closed and the funds are fully accessible, you're ready to create a new megapool validator! You don't have to wait for the
legacy RPL unstaking period to complete before proceeding to making a megapool validator. Megapool validator creation can be done alongside the legacy RPL unstaking process.

The following page below will walk you through all the steps for creating a new megapool validator:

https://docs.rocketpool.net/node-staking/megapools/create-megapool-validator

As a returning node operator, you'll receive one express queue ticket per 4 ETH bonded in minipools. That's 2 tickets per 8 ETH minipool.
These tickets are available to you immediately, no need to exit minipools to create new megapool validators using the express queue. You can create new
megapool validators using the express queue while running your minipools if you want.

The Rocket Pool deposit queue processes deposits at a rate of 4 express queue validators for each standard queue validator.
Please read [Rocket Pool Deposit Queue and Express Queue](/node-staking/megapools/create-megapool-validator#rocket-pool-deposit-queue-and-express-queue)
to learn more about how ETH is assigned to new megapool validators.

## Step 4: Staking RPL on your megapool

Click on the following link for instructions on how to stake your RPL on a megapool:

https://docs.rocketpool.net/node-staking/megapools/staking-and-claiming-rewards#staking

This step is totally optional as RPL staking is not required to create megapool validators. You won't want to miss out on this step if
you want to earn [voter share rewards](/node-staking/megapools/staking-and-claiming-rewards#how-voter-share-is-distributed-to-megapool-rpl-stakers), RPL inflation
rewards (same as previous RPL inflation rewards), and have voting power in [Protocol Dao (pDAO) governance](/pdao/overview).

- The voter share (9% of protocol revenue) is distributed proportionally among all node operators based on their share of total megapool RPL staked.

For more detailed information on how voter share is distributed to RPL stakers with megapool validators, read this guide:
[How Voter Share is Distributed to Megapool RPL stakers](/node-staking/megapools/staking-and-claiming-rewards#how-voter-share-is-distributed-to-megapool-rpl-stakers)

And there you have it! As always, don't forget to brush up on the [Monitoring and Maintenance](/node-staking/maintenance/overview) guide if needed. This section covers
all the related topics to keeping your node in tip top shape, including software updates and how to monitor the health of your node.
3 changes: 3 additions & 0 deletions docs/en/node-staking/megapools/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ Before running Megapool Validators, please make sure you:
[Creating a Megapool (Validator)](./create-megapool-validator.mdx) explains the process of creating a new Rocket Pool megapool and corresponding validator on the Beacon Chain.
Whether you're making your very first megapool validator or already have some and would like to make another one, this guide will walk you through it step-by-step.

[Migrating from Minipools to Megapool Validators](./migration.mdx) provides a step-by-step guide for returning node operators looking to migrate their minipool stake to megapools.
This guide covers exiting minipools, unstaking legacy RPL, creating new megapool validators, and restaking RPL to earn voter share rewards.

[Stake ETH on behalf of node](/upgrades/houston/stake-eth-on-behalf#stake-eth-on-behalf-of-node) explains how you can use any independent address (a hardware wallet for example) to stake ETH on behalf of a node. Pretty useful if you want to create validator deposits
without your node having direct access to ETH.

Expand Down
85 changes: 5 additions & 80 deletions rspress.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type SidebarTranslation = {
megapoolsOverview: string;
createMegapoolValidator: string;
stakingAndClaimingRewards: string;
megapoolMigration: string;
credit: string;
exitMegapoolValidator: string;
stakeOnBehalf: string;
Expand Down Expand Up @@ -125,86 +126,9 @@ type SidebarTranslation = {
const sidebarTranslations: Record<string, SidebarTranslation> = {
en: {
protocol: { title: "Overview", overview: "Overview", explainerSeries: "Explainer Series", faq: "Frequently Asked Questions", contracts: "Contracts & Integrations", glossary: "Glossary" },
liquidStaking: {
title: "Liquid Staking (rETH)",
overview: "Overview",
viaRp: "Staking directly via Rocket Pool",
viaL1: "Staking via a DEX on Layer 1",
viaL2: "Staking via a DEX on Layer 2",
onBehalf: "Staking on behalf of a node",
},
nodeStaking: {
title: "Node Operator Guide",
responsibilities: "A Node Operator's Responsibilities",
platform: "Node Requirements & Choosing a Platform",
localNode: "Preparing a Local Node",
localOverview: "Overview",
hardware: "Selecting Staking Hardware",
preparePC: "Preparing a PC, Mini-PC or NUC",
prepareMac: "Preparing a Mac",
ssh: "Intro to Secure Shell (SSH)",
serverNode: "Preparing a Server Node",
serverOverview: "Overview",
providers: "Selecting a Hosting Provider",
serverOS: "Preparing the Operating System",
securing: "Securing Your Node",
tailscale: "Tailscale",
installing: "Installing Rocket Pool",
installOverview: "Overview",
ethClients: "Choosing your ETH Clients",
installModes: "Selecting a Rocket Pool Mode",
docker: "Creating a Standard Rocket Pool Node with Docker",
native: "Creating a Native Rocket Pool Node without Docker",
configuring: "Configuring Rocket Pool",
configOverview: "Overview",
configDocker: "Configuring the Smartnode Stack (Docker/hybrid mode)",
configNative: "Configuring the Smartnode Stack (native)",
advancedConfig: "Advanced Smartnode Configuration for Docker Mode",
provisioning: "Provisioning your Node",
provisioningOverview: "Overview",
startingRp: "Starting Rocket Pool",
walletInit: "Creating a New Wallet",
recovering: "Importing/Recovering an Existing Wallet",
prepareNode: "Preparing your Node for Operation",
cliIntro: "Intro to the Command Line Interface",
fallback: "Specifying a Fallback Node",
feeDistrib: "Fee Distributors and the Smoothing Pool",
mev: "MEV, MEV-Boost & MEV Rewards",
megapools: "Creating a Megapool Validator",
megapoolsOverview: "Overview",
createMegapoolValidator: "Creating a new Megapool (Validator)",
stakingAndClaimingRewards: "RPL staking and Claiming Rewards",
stakeOnBehalf: "Stake ETH on Behalf of Node",
credit: "The Deposit Credit System",
exitMegapoolValidator: "Exiting a Megapool Validator",
maintenance: "Monitoring & Maintenance",
maintenanceOverview: "Overview",
performance: "Monitoring your Node's Performance",
grafana: "Setting up the Grafana Dashboard",
alerting: "Smartnode Stack Alert Notifications",
updates: "Checking for Updates",
backups: "Backing Up Your Node",
masquerade: "Masquerading as Another Node Address",
historyExpiry: "Expiring Pre-Merge History",
pruning: "Pruning the Execution Client",
changeClients: "Changing Execution or Consensus Clients",
nodeMigration: "Moving from One Node to Another",
rewards: "Claiming Rewards",
rewardsOverview: "Overview",
claimingRewards: "Claiming Node Operator Rewards",
skimming: "Distributing Skimmed Minipool Rewards",
exiting: "Exiting your Minipools",
shutdown: "Shut Down a Minipool",
faq: "FAQ (WIP)",
},
odao: {
title: "Oracle DAO",
overview: "The Rocket Pool Oracle DAO",
setup: "Setting up an Oracle DAO Node",
testing: "Testing your Oracle DAO Node",
monitoring: "Monitoring your Oracle DAO Node",
proposals: "Oracle DAO Proposals",
},
liquidStaking: { title: "Liquid Staking (rETH)", overview: "Overview", viaRp: "Staking directly via Rocket Pool", viaL1: "Staking via a DEX on Layer 1", viaL2: "Staking via a DEX on Layer 2", onBehalf: "Staking on behalf of a node" },
nodeStaking: { title: "Node Operator Guide", responsibilities: "A Node Operator's Responsibilities", platform: "Node Requirements & Choosing a Platform", localNode: "Preparing a Local Node", localOverview: "Overview", hardware: "Selecting Staking Hardware", preparePC: "Preparing a PC, Mini-PC or NUC", prepareMac: "Preparing a Mac", ssh: "Intro to Secure Shell (SSH)", serverNode: "Preparing a Server Node", serverOverview: "Overview", providers: "Selecting a Hosting Provider", serverOS: "Preparing the Operating System", securing: "Securing Your Node", tailscale: "Tailscale", installing: "Installing Rocket Pool", installOverview: "Overview", ethClients: "Choosing your ETH Clients", installModes: "Selecting a Rocket Pool Mode", docker: "Creating a Standard Rocket Pool Node with Docker", native: "Creating a Native Rocket Pool Node without Docker", configuring: "Configuring Rocket Pool", configOverview: "Overview", configDocker: "Configuring the Smartnode Stack (Docker/hybrid mode)", configNative: "Configuring the Smartnode Stack (native)", advancedConfig: "Advanced Smartnode Configuration for Docker Mode", provisioning: "Provisioning your Node", provisioningOverview: "Overview", startingRp: "Starting Rocket Pool", walletInit: "Creating a New Wallet", recovering: "Importing/Recovering an Existing Wallet", prepareNode: "Preparing your Node for Operation", cliIntro: "Intro to the Command Line Interface", fallback: "Specifying a Fallback Node", feeDistrib: "Fee Distributors and the Smoothing Pool", mev: "MEV, MEV-Boost & MEV Rewards", megapools: "Creating a Megapool Validator", megapoolsOverview: "Overview", createMegapoolValidator: "Creating a new Megapool (Validator)", stakingAndClaimingRewards: "RPL staking and Claiming Rewards", megapoolMigration: "Migrating from Minipools to Megapools", stakeOnBehalf: "Stake ETH on Behalf of Node", credit: "The Deposit Credit System", exitMegapoolValidator: "Exiting a Megapool Validator", maintenance: "Monitoring & Maintenance", maintenanceOverview: "Overview", performance: "Monitoring your Node's Performance", grafana: "Setting up the Grafana Dashboard", alerting: "Smartnode Stack Alert Notifications", updates: "Checking for Updates", backups: "Backing Up Your Node", masquerade: "Masquerading as Another Node Address", historyExpiry: "Expiring Pre-Merge History", pruning: "Pruning the Execution Client", changeClients: "Changing Execution or Consensus Clients", nodeMigration: "Moving from One Node to Another", rewards: "Claiming Rewards", rewardsOverview: "Overview", claimingRewards: "Claiming Node Operator Rewards", skimming: "Distributing Skimmed Minipool Rewards", exiting: "Exiting your Minipools", shutdown: "Shut Down a Minipool", faq: "FAQ (WIP)" },
odao: { title: "Oracle DAO", overview: "The Rocket Pool Oracle DAO", setup: "Setting up an Oracle DAO Node", testing: "Testing your Oracle DAO Node", monitoring: "Monitoring your Oracle DAO Node", proposals: "Oracle DAO Proposals" },
pdao: { title: "Protocol DAO", overview: "Overview", pdao: "The Protocol DAO", participating: "Participating in Proposals" },
upgrades: {
title: "Protocol Upgrades",
Expand Down Expand Up @@ -1634,6 +1558,7 @@ function nodeStaking(prefix: string, lang: string) {
{ text: t.megapoolsOverview, link: `${prefix}/node-staking/megapools/overview` },
{ text: t.createMegapoolValidator, link: `${prefix}/node-staking/megapools/create-megapool-validator` },
{ text: t.stakingAndClaimingRewards, link: `${prefix}/node-staking/megapools/staking-and-claiming-rewards` },
{ text: t.megapoolMigration, link: `${prefix}/node-staking/megapools/migration` },
{ text: t.stakeOnBehalf, link: `${prefix}/upgrades/houston/stake-eth-on-behalf` },
{ text: t.credit, link: `${prefix}/node-staking/megapools/credit` },
{ text: t.exitMegapoolValidator, link: `${prefix}/node-staking/megapools/exit-megapool-validator` },
Expand Down