Skip to content
This repository was archived by the owner on Jun 19, 2025. It is now read-only.

Added validator consolidation topic #512

Open
wants to merge 42 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
0256e60
Minimal restructure to demo Concept/How To/Reference/Tutorial approach
MadelineAu Feb 5, 2025
f7c9d9a
fixed redirects and urls
wesfloyd Feb 5, 2025
bd627ef
Addressing review comments
MadelineAu Feb 6, 2025
feae197
Merge branch 'devRestruture' of github.com:MadelineAu/eigenlayer-docs…
MadelineAu Feb 6, 2025
96bbf96
Added redirects
MadelineAu Feb 6, 2025
5264329
fixed redirects
MadelineAu Feb 6, 2025
4e5b0bd
more redirect fixing
MadelineAu Feb 6, 2025
8bff2ec
Merge branch 'MadelineAu-devRestruture'
MadelineAu Feb 6, 2025
9f63380
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 9, 2025
af864c0
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 10, 2025
c49b0e8
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 10, 2025
7e430a0
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 17, 2025
0e1a6eb
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 18, 2025
3ed0774
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 19, 2025
8130497
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 21, 2025
37281a6
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 21, 2025
cf76167
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 21, 2025
6126940
Merge remote-tracking branch 'upstream/main'
MadelineAu Feb 23, 2025
34fad65
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 3, 2025
e8465ae
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 4, 2025
d5ab33c
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 5, 2025
18f4927
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 5, 2025
cbaee98
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 6, 2025
549d047
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 10, 2025
cd0e391
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 13, 2025
c8e803b
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 18, 2025
a6f98f5
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 24, 2025
3b96134
Merge remote-tracking branch 'upstream/main'
MadelineAu Mar 26, 2025
302897a
Merge remote-tracking branch 'upstream/main'
MadelineAu Apr 1, 2025
b8088f9
Merge remote-tracking branch 'upstream/main'
MadelineAu Apr 3, 2025
a6db476
Merge remote-tracking branch 'upstream/main'
MadelineAu Apr 4, 2025
e29e2bb
Merge remote-tracking branch 'upstream/main'
MadelineAu Apr 7, 2025
d6b182f
Merge remote-tracking branch 'upstream/main'
MadelineAu Apr 28, 2025
c8cce79
Merge remote-tracking branch 'upstream/main'
MadelineAu May 19, 2025
92693e5
Merge remote-tracking branch 'origin/main'
MadelineAu May 27, 2025
18abfb2
Merge remote-tracking branch 'origin/main'
MadelineAu May 28, 2025
cb7a4ef
Merge remote-tracking branch 'origin/main'
MadelineAu May 28, 2025
36e0f85
Merge remote-tracking branch 'origin/main'
MadelineAu Jun 2, 2025
84377e9
Merge remote-tracking branch 'origin/main'
MadelineAu Jun 2, 2025
f25ba50
Merge remote-tracking branch 'origin/main'
MadelineAu Jun 8, 2025
b3c0027
Added 1.6 validator consolidation
MadelineAu Jun 9, 2025
dee562b
Added note about being available in v1.6
MadelineAu Jun 9, 2025
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
61 changes: 54 additions & 7 deletions docs/restakers/restaking-guides/1-restaking-developer-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,6 @@ The following steps are necessary for a Restaker to **move** their Delegated bal
* `receiveAsTokens` should be set to _false_.
4. Invoke `DelegationManager.delegateTo()` to delegate your restaked assets to the new Operator.





## Native Restaking Guide

The following instructions describe how to Restake validator ETH. This mechanism is referred to as "Native Restaking".
Expand All @@ -76,11 +72,19 @@ Native Restaking consists of the following actions:
* [Convert Consensus Rewards to Restaked Shares](#convert-consensus-rewards-to-restaked-shares)
* [Withdraw](#withdraw)

The Pectra upgrade enables the consolidation of validators to reduce operational costs and includes:
* [Consoliating Validators Pointing to an EigenPod](#consolidating-validators-pointing-to-eigenpod)
* [Consolidating New Validators to Restake on EigenLayer](#consolidating-new-validators-to-restake-on-eigenlayer).

### Gas Cost Planning

For users planning to restake multiple validators, connecting many validators to a single EigenPod where possible reduces
gas cost and complexity. "Generate Proof Via eigenpod-proofs-generation CLI" will prove all connected validators.

:::tip
[Consolidate existing validators](#consolidate-validators) to reduce gas costs.
:::

### EigenPod Upgrades and Pending Consensus Rewards

For all M1 to PEPE migrations - we no longer require users to upgrade their EigenPod contracts per the deprecated `activateRestaking()` method. M1 pods will be upgraded automatically to PEPE compliant EigenPods by EigenLabs.
Expand Down Expand Up @@ -151,9 +155,6 @@ Invoke `EigenPodManager.createPod()`.

4. Your validator ETH balance is now Restaked.




### Convert Consensus Rewards to Restaked Shares

As of the PEPE release, users can now convert consensus rewards and validator execution fees to restaked shares. Initiating and completing a checkpoint proof will automatically convert any consensus rewards to restaked shares for the EigenPod.
Expand Down Expand Up @@ -230,6 +231,52 @@ Withdrawals can only be cancelled after waiting the full escrow period. To cance
function with the parameter `receiveAsTokens` set to `FALSE`.
:::

### Consolidate Validators

The Pectra upgrade introduces a new withdrawal credential of 0x02. Updating from a 0x00 or 0x01 withdrawal credential to a
0x02 withdrawal credential enables an increase in max effective balance from 32 ETH to 2048 ETH. The increased effective balance
enables:
* Consolidation of up to 64 validators into a single validator reducing operational costs.
* Staking rewards in excess of the original 32 ETH deposit contribute to total stake and earn additional rewards. That is,
staking rewards become compounding.

For more information on Pectra and 0x02 withdrawal credentials, refer to [ethereum.org](https://ethereum.org/en/).

#### Consolidating Validators Pointing to EigenPod

:::note
The [`requestConsolidation` method](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.6.0-rc.0/docs/core/EigenPod.md#requestconsolidation) is available in v1.6 which is [currently available on testnets](https://github.com/Layr-Labs/eigenlayer-contracts/releases).
:::

For restakers with multiple validators, consolidation offers up to a [64x proof size and cost reduction](https://hackmd.io/uijo9RSnSMOmejK1aKH0vw?view#64x-Holy-cow).

To consolidate validators pointing to an EigenPod:

1. Submit a request to consolidate using [`requestConsolidation`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.6.0-rc.0/docs/core/EigenPod.md#requestconsolidation).
Additional details [here](https://hackmd.io/uijo9RSnSMOmejK1aKH0vw?view#Technical-Details).
2. Monitor the Beacon chain (https://beaconcha.in/validator/[yourvalidatorid]) and checkpoint when all consolidations are complete.
Additional details [here](https://hackmd.io/uijo9RSnSMOmejK1aKH0vw?view#Technical-Details).

#### Consolidating New Validators to Restake on EigenLayer

Consolidating validators without exiting the Beacon chain reduces costs and time taken compared to exiting and funding new
validators.

To consolidate existing validators and restake on EigenLayer without exiting the Beacon chain:

1. [Create an EigenPod](#restake-new-validator-native-beacon-chain-eth).
2. [Create the number of validators you need after consolidating with 0x02 withdrawal credentials. Point all validators at
the EigenPod created in 1](#restake-new-validator-native-beacon-chain-eth).
3. Consolidate the existing validators into the new validators created in 2. For information on how to consolidate, refer to [ethereum.org](https://ethereum.org/en/).
4. Prove new validators are connected to EigenLayer by completing a withdrawal credential proof using [`verifyWithdrawalCredentials`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/main/docs/core/EigenPod.md#restaking-beacon-chain-eth).

For example, to consolidate 1M ETH in 31250 validators and restake on EigenLayer:

1. Create an EigenPod.
2. Create 495 validators with 0x02 withdrawal credentials. Point all validators at the EigenPod created in 1.
3. Consolidate the existing 31250 validators in the new 495 validators.
4. Prove the 495 new validators are connected to EigenLayer.

## FAQ

### Queue withdrawal takes an `amount` as input, what will that value be?
Expand Down