A layman's guide on how to distribute a Rocketpool minipool balance after withdrawing your Minipool
This guide is meant for someone who needs to use Etherscan to distribute the balance of their minipool back to their withdrawal address. This guide assumes you have already performed a voluntary exit of your validators.
Here are the steps:
✅ Create an Etherscan account if you don't already have one
✅ Set up a custom ABI for the Rocketpool delegate contract
✅ Call the delegate contract's distributeBalance
function from your minipool addresses
Go to Etherscan.io and create an account. Make sure you are logged in.
Step 1: Determine which delegate contract your minipool is connected to. Add the ABI of the Delegate contract
From the Rocketpool docs:
The minipool delegate contract is a special contract that contains the bulk of the logic required by minipools - things like fairly distributing the balance between you and the pool stakers, for example. Unlike minipools, where each minipool is a unique contract, the delegate is a single contract that many minipools can "forward" requests to.
To see which delegate contract you need to use, go to your minipool address on Etherscan, click Contract, "Read Contract", then getDelegate
If you need to find your minipool address, follow the directions below.
a. Keep in mind, you have three main addresses for the purpose of tracking down your minipool address: Your originating wallet addresss, your node address, and your minipool address.
b. Go to Etherscan.io and enter the address for your original wallet address from which you originally sent your 8ETH or 16ETH.
c. Find the transaction from which you sent your 8TH or 16ETH (or more, if setting up multiple minipools) to the node. Click the receiving address. This is your node address.
d. Click the receiving address. This is your node address.
e. Find the transaction where your node received the 8ETH or 16ETH from your original wallet. Right afterward, should be a "Stake" transaction. The receiver of this transaction is your minipool.
Step 2. Go to your minipool address on Etherscan, click Contract, click "more options", then "Is this a proxy?"
Step 4. Go back to the minipool address, click on the Contract tab, refresh the page, and "Write as proxy" should be visible.
NOTE: You can only withdraw your RPL stake by calling the withdrawRPL
function with your node address. It will be withdrawn to your withdrawal address (if set, otherwise to node address).
Also, you must wait at least 28 days from your last stake (or re-stake) or the transaction will fail
- Sign in to Metamask or another Web3 wallet using your node credentials.
- Go to the most recent RPL deployer contract on Etherscan. As of this writing, it is v3.
- Go to the Contract tab, Read Contract, then
getNodeRPLStake
. Input your validator address. - Copy the result. It will look like a very big number. This is your RPL stake as stored on the blockchain.
- Go to the Write Contract tab. Connect your node address to Etherscan using a Web3 wallet.
- Click
withdrawRPL
, enter the number you just copied and write the transaction
Thanks to @P-tches in the Rocketpool Discord for helping provide the basic steps.