Every validator you run has a minipool contract as its "owner" so-to-speak. The minipool is a unique contract specifically assigned to that validator; it acts as its withdrawal address. All reward and staking balance withdrawals from the Beacon Chain will be sent to the minipool contract.
Each minipool is unique to ensure that you (the node operator) have ultimate control over it. Nobody else controls it, nobody else can change it; it's entirely at your command.
That being said, in order to minimize gas costs during node deposits, the minipool itself contains very little actual functionality. Almost everything it can do is deferred to a delegate contract.
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.
Occasionally, the Rocket Pool development team will publish a new minipool delegate that adds new functionality. For example, in the Atlas update, we introduced a new delegate that had support for distributing skimmed rewards without needing to close the minipool.
Minipool can have their delegates upgraded to take advantage of this new functionality. Delegate upgrades are opt-in, so you can decide if and when you want to use them. That being said, they are usually required in order to take advantage of new functionality that network upgrades introduce.
To upgrade a minipool to a new delegate contract, simply run the following command:
This will present you with a list of your minipools that are not currently using the latest delegate and are eligible for upgrading:
Select the one(s) you would like to upgrade from the list by entering the corresponding number on the left of the minipool address. Once selected, you will be prompted to confirm your gas price settings, and after that a transaction to upgrade the minipool will be sent:
You can verify that it's using the latest delegate with rocketpool minipool status
.
Any minipools that are not using the latest delegate will have a yellow notification under their status letting you know that they can be upgraded: