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

Initiating withdrawals #513

Open
wants to merge 41 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
41 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
fd2293e
Added execuation layer triggered withdrawals
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
28 changes: 22 additions & 6 deletions docs/restakers/restaking-guides/1-restaking-developer-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,15 +177,22 @@ There are two options when withdrawing restaked validator ETH:
* Exit validator and withdraw restaked balance.
* Continue as a validator and withdraw yield only.

With the exception of stopping and exiting the validator, the two processes are the same. The process to withdraw restaked validator ETH is:
Withdrawals can be triggered from the:
* [Consensus layer/Beacon chain](#consensus-layer-triggered-withdrawals)
* [Execution layer](#execution-layer-triggered-withdrawals).

#### Consensus Layer Triggered Withdrawals

With the exception of stopping and exiting the validator, the processes are the same for a full and partial
withdrawal. The process to withdraw restaked validator ETH is:

1. [If exiting the validator, stop the validator and wait for the validator to go through the exit queue.](#step-1-stopping-validator)
2. [Generate a checkpoint proof to bring the balance in your EigenPod up to date.](#step-2-generate-checkpoint-proof)
3. [Determine the number of shares available to withdraw.](#step-3-determine-the-number-of-withdrawable-shares)
4. [Queue a withdrawal, and wait for EigenLayer escrow period.](#step-4-queue-withdrawal)
5. [Complete withdrawal.](#step-5-complete-withdrawal)

#### Step 1 Stopping Validator
##### Step 1 Stopping Validator

If exiting validator and withdrawing restaked balance, fully exit the validator:
1. Monitor the validator activity at [beaconcha.in/validator/\[yourvalidatorid](http://beaconcha.in/validator/\[yourvalidatorid)\].
Expand All @@ -195,18 +202,18 @@ After a validator's status changes to "exited", it can take between 24 hours and
the EigenPod. See the "Withdrawals" tab and "Time" column for your validator via beaconcha.in/validator/[yourvalidatorid]#withdrawals .
The ETH will then be viewable in the EigenPod's address on the Execution Layer.

#### Step 2 Generate Checkpoint Proof
##### Step 2 Generate Checkpoint Proof

Generate checkpoint proof using [eigenpod-proofs-generation CLI](https://github.com/Layr-Labs/eigenpod-proofs-generation/tree/master/cli#checkpoint-proofs) to account for any ETH that has accumulated in the EigenPod.
Once completed, the balance in your EigenPod is up to date.

#### Step 3 Determine the Number of Withdrawable Shares
##### Step 3 Determine the Number of Withdrawable Shares

To determine the number of withdrawable shares:
1. Invoke `[YourEigenPodContract].withdrawableRestakedExecutionLayerGwei()` to get the amount of withdrawable execution layer ETH in Gwei.
2. Convert the Gwei to Wei (multiply Gwei by 10^9 or 1,000,000,000).

#### Step 4 Queue Withdrawal
##### Step 4 Queue Withdrawal

To queue withdrawal:

Expand All @@ -221,7 +228,7 @@ If you queue a withdrawal with an amount of shares higher than the withdrawable
a checkpoint or restart the escrow process before the withdrawal can be completed.
:::

#### Step 5 Complete withdrawal
##### Step 5 Complete withdrawal

As the EigenPod Owner Wallet, invoke the [`DelegationManager.completeQueuedWithdrawal()`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/main/docs/core/DelegationManager.md#completequeuedwithdrawal) function.

Expand All @@ -230,6 +237,15 @@ Withdrawals can only be cancelled after waiting the full escrow period. To cance
function with the parameter `receiveAsTokens` set to `FALSE`.
:::

#### Execution Layer Triggered Withdrawals

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

To request a full or partial withdrawal, use the [`requestWithdrawal` method](https://github.com/Layr-Labs/eigenlayer-contracts/blob/v1.6.0-rc.0/docs/core/EigenPod.md#requestwithdrawal).
Additional details [here](https://hackmd.io/uijo9RSnSMOmejK1aKH0vw?view#Technical-Details).

## FAQ

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