Withdraw using contract
If you’re having issues withdrawing your funds using the EigenLayer app, you can manually complete the process using the Delegation Contract on Etherscan.
The manual withdrawal:
- Involves interacting directly with the Delegation contract on Etherscan. Only proceed if you’re comfortable using smart contracts.
- Requires spending ETH in gas.
Find the Delegation manager contract here: EigenLayer Core Contracts.
For native ETH , your full ETH balance must already be available in your Eigenpod contract. Any validators being stopped must have fully exited and the funds swept to the Execution layer. A checkpoint must be completed or the withdrawal attempt will fail.
Withdraw funds using Delegation contract
-
Open the Delegation Contract by going to the EigenLayer Delegation contract on Etherscan at
0x39053D51B77DC0d36036Fc1fCc8Cb819df8Ef37A. -
Read your queued withdrawals:
- Navigate to the Contract tab.
- Select Read as Proxy.
- Find function 19:
getQueuedWithdrawals. Note that it'sWithdrawals, with an S at the end. - Click on the arrow to the right.
- In the staker (address) field, enter your wallet address and click Query.
-
Save the Withdrawal Data.
You receive a response similar to:
[getQueuedWithdrawals(address) Response]
withdrawals (array) : [
{
staker (address) : 0x[YOUR ADDRESS]
delegatedTo (address) : 0x[OPERATOR]
withdrawer (address) : 0x[YOUR ADDRESS]
nonce (uint256) : 15
startBlock (uint32) : 24246024
strategies (array) : [
0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0
scaledShares (array) : [
13636298239000000000
]
}
]Save these values, you need them in the next step.
noteThe timestamp shows the block when your withdrawal was queued. If that block is less than 14 days old, the withdrawal attempt will fail.
-
Complete the Withdrawal:
-
Switch to the Write as Proxy tab.
-
Connect your wallet.
-
Find the function completeQueuedWithdrawal. Note that it's
Withdrawal, no S at the end. -
Fill in the inputs using the data you saved in the previous step:
staker: <staker address>
delegatedTo: <delegated address>
withdrawer: <withdrawer address>
nonce: <nonce number>
startBlock: <start block number>
strategies: [<strategy address>]
scaledShares: [<scaledShares number>]
tokens: [<token address you want to withdraw. For Native ETH withdrawals, enter 0x0000000000000000000000000000000000000000>]
receiveAsTokens: trueYou can specify
receiveAsTokens: falseto cancel a completable withdrawal and return the assets to fully restaked status eligible to earn rewards.
-
-
Submit the Transaction
- Click Write. Your wallet prompts a transaction.
- Review the simulation carefully, then confirm. Once confirmed, you’ll receive your tokens directly in your wallet.