[RFC]: Staking with Rocketpool Protocol

Last call for comments, review period: 19–25 June
Snapshot signaling votes: Open for voting between 26 June until 3 July.

Introduction
The Rocketpool protocol is permissionless, non-custodial and with over 2350 node operators is by far the most decentralised Ethereum staking solution.

What is rETH?
rETH is the liquid staking token (LST) of the Rocketpool protocol, it is the third largest ETH liquid staking token by TVL after Lido’s stETH & Coinbase cbETH.

Unlike stETH, rETH is a value accruing token, as staking rewards accumulate the value of the rETH token increases relative to ETH. rETH holders pay a 15%~ commission on staking rewards to Rocketpool node operators (Post Atlas upgrade this will trend to 14% over time).

Proposal
Stake 14400 ETH, approximately 10% of the Capital Pool with Rocketpool by exchanging ETH for the rETH token.

Rational
Investments using the capital pool should ideally align with the following considerations:
The investment should conform to the assets held by the capital pool (ETH)
It should be relatively low-risk and require a low management overhead on behalf of the mutual.
It should have a low technical overhead for integration.
It should afford the mutual the ability to return to ETH quickly without a lockup period or penalties in order to pay claims if the need should arise.

Liquid staked ETH is obviously an ideal choice.
This has been demonstrated by the mutuals existing successful investment in stETH.
Rocketpool has long been discussed as a consideration for a similar investment by the mutual however it has been held back by the lack of a suitable oracle as well as the requisite capacity to support a sizable amount of ETH without paying a premium.

With the recent release of the chainlink rETH/ETH Oracle as well as the Atlas upgrade which significantly boosted Rocketpool’s available capacity, these are no longer obstacles.

Rocketpool also has a large and notoriously passionate community of Defi enthusiasts which through this proposal, could be introduced to the mutual.

Amount
The capital pool currently holds 96939.7~ unproductive ETH, 32244~ stETH and 3619448 DAI with a further 13218~ WETH held in the Enzyme Vault.
A 14400 ETH investment (approximately 10%) staked with Rocketpool is significant but in-line with the low risk profile & suitability of liquid staked ETH.

As rETH can be held directly by the Mutual and exchanged easily through the Cowswap integration, this allocation can be easily adjusted to suit a future matching of capital to ETH/DAI liabilities if deemed desirable.

Technical & Oracle
The Mutuals existing Cowswap integration can be used for a direct exchange requiring no additional development work.

The 1inch aggregator is currently updating its integration with the Rocketpool Deposit pool to match the scaling maximum now possible with the Atlas upgrade.
Once complete, The Cowswap integration via 1inch will be able to mint rETH directly through Rocketpool at the native asset value with no slippage. Minting rETH directly has a 0.05% fee to prevent gaming around exchange rate updates, this represents 3-4 days of staking rewards.

Chainlink rETH/ETH oracle - rETH / ETH | Chainlink

Peg Risk
Compared to other LSTs, rETH has demonstrated a strong resistance to trading under the native asset value in varying market conditions, this is partly due to a sustained high demand for the rETH token as well as increased redemption confidence due to the ability to burn rETH directly in the protocol for it’s ETH value.


Source: https://dune.com/queries/1286351/2204808

Rocketpool primarily maintains the peg by utilising market arbitrage opportunities available to node operators. If a discount exists on secondary markets, node operators are incentivised to purchase rETH and exit their validators, this provides an opportunity to burn the purchased rETH at full value as they finalise their exit.

Protection from loss of value due to penalties or slashing.
When creating a validator, a Rocketpool node operator contributes a bond of either 8 or 16 of their own ETH as well as a supplemental collateral in the RPL token of at least 10% of the value of the matched ETH provided by stakers in the pool (2.4 ETH worth or 1.6 ETH worth, respectively).

In the event of the validator receiving penalties or being slashed, the node operator’s ETH bond is penalised first, followed by their RPL collateral. Only if the amount of lost ETH exceeds this amount does rETH suffer a socialised loss.

Rocket Pool Node Operator Set
Though Rocketpool has only 2.5%~ of the total staked ETH, there are over 2350 node operators, with an estimated 1600~ unique entities. Compared to approximately 30 operators for Lido, the next most decentralised option.

As a truly decentralised protocol, Rocketpool is also resistant to interruption of staking services as a result of regulatory or enforcement action, such as what has been experienced by users of Kraken. A geographically diverse set of small operators staking from home reduces the fragility of rETH as well as the Ethereum network as a whole.

As the Rocketpool node operator set consists of a large selection of individual operators with varying hardware & setups, outages & slashings tend to be isolated to a single or small number of validators. Contrast with large institutional staking, where a single mistake can cause the slashing of hundreds of validators at once.

This along with an emphasis on staking client diversity means the likelihood of a large correlated slashing event occurring with Rocketpool is very low.

StakingPools
Source: rated.network (note the increased use of minority clients)

However should a black swan event occur, due to the bond & collateral design, the rETH token has best-in-class resistance to losses in such an event.

This article has a comparative analysis of the different approaches to staker protection taken by Rocketpool, Lido & Stakewise - LSD Insurance, Illustrated
(Note: The bonded design is now even more robust due to the implementation of skimming)

Liquidity
Historically secondary market liquidity for rETH has been relatively low compared to stETH but through the introduction of the Incentive Management Committee, the Rocketpool protocol DAO has committed to a long-term incentive program with the goal of encouraging the growth of deep liquidity and facilitating the redemption of large amounts of rETH with low slippage.

As capacity for rETH has recently opened up, we expect liquidity to increase going forward.

Using the mutuals existing Cowswap functionality, at the time of writing it is possible to immediately exchange approximately:

5000 ETH worth of rETH with 0.15% slippage.
14400 ETH worth of rETH for ETH with 0.63% slippage.

Cowswap14400

This assumes the Rocketpool Deposit pool is completely empty, in the event that it is at maximum capacity as has been the case for most of its history, it would be possible to redeem over 18000 ETH worth of rETH immediately with zero slippage or potentially even at a premium.

Cover Risk
Unlike Lido (via cvxstethCrv Yield token), Coinbase (Custodial Cover) or Stakewise (ETH2 Slashing Cover), Rocketpool is not covered by the mutual in any capacity and therefore an investment does not conflict with any existing exposure.

Smart Contract Risk
Rocketpool takes security very seriously and no piece of code touches mainnet without receiving audits from a top tier audit firm.
The Rocketpool smart contracts have received extensive and independent audits from Consensys Diligence, Sigma Prime & Trail of Bits.

Audits
Consensys Diligence
2023/01 - https://rocketpool.net/files/consensys-diligence-atlas-v1.2.pdf
2022/06 - https://rocketpool.net/files/consensys-audit-redstone.pdf
2021/05 - https://consensys.net/diligence/audits/2021/04/rocketpool/

Sigma Prime
2022/12 - https://rocketpool.net/files/sigma-prime-atlas-v1.2.pdf
2022/06 - https://rocketpool.net/files/sigma-prime-audit-redstone.pdf
2021/11 - https://rocketpool.net/files/sigma-prime-fix-review.pdf
2021/05 - https://rocketpool.net/files/sigma-prime-audit.pdf

Trail of Bits
2021/10 - https://github.com/trailofbits/publications/blob/master/reviews/RocketPool.pdf

Bug Bounty
There is also an ongoing bug bounty program with Immunefi for up to $250,000
https://immunefi.com/bounty/rocketpool/

Further Resources
Maker rETH Collateral Onboarding Risk Evaluation
Aave [ARC] v3 Ethereum market rETH onboarding
Rocketscan.io - Rocketpool statistics
Dune - @rp_community

A note on The RFC from Avantgarde Finance
Having read the proposal I am supportive of the prominent inclusion of rETH.
However as others have pointed out, holding rETH directly in the capital pool is easily actionable and it is questionable whether the additional management oversight with corresponding fee is a meaningful benefit.

Disclosures
I am a member of the Rocketpool Protocol DAO Incentive Management Committee and have been a member of the mutual since 2020.

Proposal Status

This RFC was posted on 24 April, and the Investment committee has issued a last call for comments during the next week (19–25 June)!

They want to hear your feedback and comments on this RFC before a non-binding Snapshot signaling vote is opened to gauge member sentiment regarding this RFC proposal.

Status:

Edit: @BraveNewDeFi added the proposal status and timelines for review, per @Rei’s message in the thread below.

Edit 2: @BraveNewDeFi updated this RFC to include links to the non-binding Snapshot signaling votes at the start of this RFC and in the Status section.

4 Likes

[Reserved for updates or additions.]

Hi @Uisce.eth,

Very excited to see that there is now a rETH/ETH chainlink oracle and that liquidity for rETH is improving!

A few questions :

To acquire rETH, Nexus can either buy on secondary markets or mint it using the Deposit Pool (via 1inch/cowswap integrations).
To sell rETH, Nexus could sell on secondary markets or redeem in the Deposit Pool.
Is this correct?
Could you give more details on how the price in the Deposit Pool is determined since there is a significant difference with the open market price :


Could you give more details on how the deposit pool is processed? If Nexus deposits 14 400 ETH via 1inch/cowswap, how long do you estimate it will take to be fully processed? What will be the impact on the overall yield of rETH as a result of our deposit, while it sits in the queue?

Can you be more specific on the mechanisms that will improve liquidity/redemptions?

Can you give more details on how this incentive works?

For the future proposal, I think it might be useful to provide a more detailed outlook of the risks as well as the rewards that the mutual can expect. Here is the past proposal for stETH as reference : Proposal: Increase the Allocation of the Capital Pool to stETH

Overall quite positive about this :slight_smile:

2 Likes

A note on The RFC from Avantgarde Finance
Having read the proposal I am supportive of the prominent inclusion of rETH.
However as others have pointed out, holding rETH directly in the capital pool is easily actionable and it is questionable whether the additional management oversight with corresponding fee is a meaningful benefit.

Hi @Uisce.eth, @Moss from Avantgarde here.

Thanks for mentioning our proposal. From the feedback gathered on our RFC so far, it’s become clear that - as it pertains to rETH - it is indeed better for Nexus to follow the path you’ve outlined here, hence it will be excluded from our next iteration. We believe in your value proposition (as our initial idea shows) and therefore we are generally supportive of this initiative.

3 Likes

Hey @Gauthier thanks for responding,

Correct, 1inch/Cowswap should choose the path which produces the best value in either case.

The exchange rate is calculated by comparing the total ETH held by the protocol, including validators, distributor contracts, the smoothing pool and the deposit pool with the current rETH supply.

As the execution layer can not access validator balances, the Rocketpool Oracle DAO (oDAO) calculates these values, routinely submits them and if a majority agree, the price is updated. This occurs approximately every 19 hours.

However the exchange rate hasn’t been as low as pictured since early February and currently shows 1.07113; perhaps this was a UI error of some kind?

The mutual receives rETH immediately upon deposit and ETH is assigned to waiting node operators, the initial deposit assigns a maximum of 2790 ETH to complete 90 validators. On subsequent rETH deposits or node operator action a further 62-2790 ETH is assigned per transaction until all ETH has been paired with a node operator. As this process can be forced along by node operators waiting in the queue, I would not expect it to take very long for all the available ETH to be assigned.

Once matched a node operator completes their deposit into the beacon chain and will enter the activation queue, this applies to every Ethereum validator and is not Rocketpool specific.

The activation queue at the time of writing is 31 days 6 hours long and 14400 ETH while in the queue would represent a drag of approximately 3.92% on the rETH APR. Based on a trailing 30 day average, this is a reduction to 4.92% APR from 5.12% APR.

The Rocketpool pDAO is directing 50% of its treasury funds from RPL inflation towards incentives for users providing liquidity, primarily targeting the rETH/WETH pair.

These include a mix of indirect incentives through voting markets such as the veBAL ecosystem, direct RPL incentives for providing concentrated liquidity on Uniswap v3 as well as a co-incentive program with the goal of encouraging protocols to pair their tokens with rETH rather than WETH while providing liquidity so they may benefit from the built-in staking yield.

As the rETH/WETH pair experiences a minimal amount of divergent or impermanent loss, these incentives make it a very attractive option for conservative users attempting to earn additional yield on their ETH.

When rETH is trading at a discount, it becomes profitable for node operators to purchase rETH from the secondary market then initiate an exit on one or more of their validators. After going through the exit queue the node operator can finalize the exit (which is what makes the ETH available to burn rETH against) and burn the rETH for the full backing value in a transaction bundle.

Using this method, a node operator exiting an 8-ETH minipool will realise a profit of
discount*24 ETH - gas/fees
at a 0.5% discount, this would be approximately 0.12 ETH or more than 2 months of ETH staking yield for that minipool.

It’s expected that this arbitrage will keep the market price reasonably close to the native asset value, being limited mostly by gas costs, the length of the validator exit queue and perceived opportunity cost.

3 Likes

Thank you for the detailed post, @Uisce.eth !

@Gauthier already covered a majority of the questions I was going to ask, and I’ve read through your responses. Appreciate the timely response.

My only comment would be on the proposed allocation from the capital pool to rETH.

14,400 ETH is on the higher side considering that members will be allocating a certain % of the capital pool as liquidity for the racheting AMM as part of the new tokenomics project in the near future.

I’d be in favor of 10,000 to 12,000 ETH allocated to an investment in rETH, but 14,400 ETH is a bit too high, imo, given the mutual currently holds 32,442 stETH and 13,218.593 wETH in the Enzyme vault (which may also be allocated to ETH staking).

According to the Investment Philosophy Review - 2023, the committee has recommended a target for Lower Risk investments at 40% of the capital pool.

If 12,000 ETH were allocated to rETH and the balance of wETH in Enzyme is allocated to ETH staking solutions, then the mutual would have 57,695.3743 ETH allocated across ETH staking solutions–that would put members at 39.68% allocation across ETH staking solutions, near the target when using the 145,392 ETH worth of value held in the capital pool, as cited from this Dune dashboard. With earnings, the target would be met a short time after the target investment allocation is made.

When members decide the liquidity parameters for new tokenomics, the ETH staking investment allocation would potential range from 43% to 50% after an amount ETH is allocated to the racheting AMM pool, if 12,000 rETH, the wETH in Enzyme, and the current stETH represent all of the mutual’s ETH staking allocations in the capital pool.

Other than the suggestion to reduce the proposed amount, I’m in support of this proposal. Looking forward to reading the Nexus Mutual Protocol Improvement Proposals for this discussion!

4 Likes

Hi @Uisce.eth

Thanks for putting together this detailed proposal.

Governance:
I think it makes sense to do two Snapshot votes simultaneously :

  1. Do we want to allocate to Rocket Pool: Y/N
  2. Assuming the answer to 1. is yes, how much do we want to allocate, with options TBD.

If successful, we can then proceed to creating an NMIP with implementation details

Happy to work with you & probably @BraveNewDeFi to craft appropriate wording & options for the snapshot votes.

Personal View
I’d be supportive of allocating the full 14,400 ETH amount suggested, which represents just under 10% of the Capital Pool.

Rocket Pool has rapidly grown to a decent size over the last few months and is proving itself to be probably the main competitor to Lido’s dominance. The focus on decentralisation is another point in their favour.

The target allocation for low risk investments is indeed 40%, but the philosophy allows up to 80% to be allocated and rETH seems like a good option given the available universe of ETH-denominated assets.

5 Likes

Hi everyone,

We are aiming to take this proposal to a series of signaling votes on Snapshot. The votes will go live in 7 days (on 2023/06/26).

Please post any additional comments in this thread ahead of the votes on 26th June.

As we approach the back end of this week, the investment committee will coordinate with the original proposer to craft the wording & select options for the signaling votes, also incorporating any new comments from the community.

If the signaling votes show a positive outcome, we will work with the original proposer and the engineering team to put forward an NMPIP that would implement the investment via on-chain vote.

1 Like

Thank you for the detailed proposal, @Uisce.eth

This :point_up: is a part I like a lot!
Nexus Mutual would be supporting the (current) most decentralised staking solution.

Also, thank you for your replies to Gauthier’s questions.
I had worked with him on the initial review and the preparation of the questions, now I can tell you where the UI “mistake” showing a wrong rate for rETH came from (found out later): the screenshot was from beta.rocketpool.net (on the Goerli testnet)… :smiling_face_with_tear:

It seems there are quite a lot of minipool operators waiting for new stakers (not sure if it’s up-to-date post-Atlas upgrade): https://rocketscan.io/depositpool, so the large deposit from Nexus would be currently quickly assigned it seems.

On the allocation amount, both BND and Rei made good points in their last posts above.

On the one hand: there is increasing competition from new liquid staking protocols, most with slightly more attractive APR levels (+ incentives at launch). That would speak for leaving room in the allocation for some of the new LSTs, especially as the depth of integration on DeFi or L2 is not relevant for the Mutual (at the moment).

Nevertheless, the facts that Rocketpool has been around so long, is a battle-tested and audited solution with the most decentralized (& permissionless) operator set, all combined make it a suitable candidate for a large(r) allocation in my opinion.

4 Likes

Snapshot signaling votes

The non-binding signaling votes for this proposal have opened for voting! You will be able to cast your votes from 9am EST / 1pm UTC on Monday (26 June) until 9am EST / 1pm UTC on Monday (3 July).

Voting options | Signaling vote #1

Signaling Vote: Should the mutual Stake with Rocketpool (#1)

This vote will determine if the mutual will allocate ETH to staking with Rocket Pool, the options are:

  • Yes, stake ETH with Rocketpool
  • No, do not stake with Rocketpool

Voting options | Signaling vote #2

This vote is dependent on the result of the first signaling vote

Signaling Vote: Amount of ETH to allocate to Rocketpool (#2)

You can choose from one of the following options when you cast your vote, this will determine the amount of ETH from the capital pool staked by exchanging for the rETH liquid staking token:

  • Option A: 14400 ETH ( 10%~ of the Capital Pool)
  • Option B: 12360 ETH ( 8.5%~ of the Capital Pool)
  • Option C: 7270 ETH ( 5%~ of the Capital Pool)

Be sure to review the RFCs, cast your votes, and signal your support for the options of your choice!