Native restaking

Restake 32 ETH multiples into dedicated validators using Kiln & EigenLayer smart contracts to earn additional rewards by extending the cryptoeconomic security of the Ethereum network to AVSs.

Overview

Kiln's smart contracts are already providing an on-chain experience to deploy dedicated validators, we updated this setup to allow seamless native restaking flow from Kiln's Dapp.

EigenLayer native restaking

Native Restaking is the process of pointing your Ethereum validator's withdrawal credentials to your deployed EigenPod. We will cover how to do so in this guide.

Restaking operational cost

In addition to standard native staking transaction costs, you will also need to pay for additional operations along your EigenLayer restaker journey.

EigenLayer smart contract interactions imply recurring costs. Restaking transactions cost and periodic cost for each withdrawal from your eigenPod, impacting your overall performance.

Service fees

Since Kiln is running in its infrastructure your native ETH validators, we will take a service fee of 8% of your total rewards. Native ETH consensus layer rewards are automatically deposited on your EigenPod, because of this we can't take a fee on the consensus layer rewards. Therefore, Kiln will be charging a 30% fee on your execution layer rewards, which account for about 8% of your total rewards.

This process is automatic, you don't have anything to do to pay for the service fees and you will get your execution layer rewards directly on your wallet address.

📙Kiln's native restaking flow

You can initiate native retaking in a few clicks from Kiln's dapp native restaking page.

0. EigenPod setup

To interact with native restaking on EigenLayer you need to have a dedicated EigenPod deployed, linked to your wallet address.

An EigenPod is a smart contract managed by your wallet, designed to facilitate your EigenLayer operations in monitoring, and managing balances and withdrawal statuses.

  • You can only have one EigenPod per wallet address.

  • Once set up all your validators deployed with Kiln's Dapp will point to your EigenPod.

  • The address that deploys an EigenPod becomes the owner of the contract and gains permission for restaking and withdrawal operations.

  • Ownership of an EigenPod cannot be transferred.

The first time you interact with Eigenlayer you will be prompted an additional transaction after you click on the restake button at the end of the flow.

1. Select the amount of ETH you want to retake

Use the slider to select the amount of ETH you want to stake and restake on your EigenPod.

Deploying Kiln's contracts on first deposits

The first time you deposit funds to your eigenPod, you will need to deploy a smart contract allowing proper management of your operator by Kiln fully on chain.

2. Delegate to Kiln's Operator

Kiln's EigenLayer Operator will be selected, featuring all of the currently supported AVSs that this operator is validating. By delegating to Kiln's operator, you will secure all major incoming AVSs that will distribute points and rewards in the next couple of months.

If you wish to select another operator, you can unselect this option, and delegate to another operator throw the EigenDapp later on. You can also undelegate at any moment.

3. Click restake

Click on "Restake" to finish the process, it will trigger from 1 to 4 transactions to be signed by your wallet and you can track it in the UI.

EigenPod DeploymentFee splitter DeploymentDeposit callDelegate call

One transaction per wallet for the first Eigenlayer Interaction

One transaction per wallet for the first Kiln Native Restaking Interaction

One transaction each time you want to deposit multiple of 32 ETH

One transaction per wallet for the first you select an EigenLayer Operator

1️⃣ Only at setup

1️⃣ Only at setup

🔂 Every time

1️⃣ Only at setup

No whitelist needed

Whitelist the Eigenlayer Contract

Activation period & next steps

After you sign all of the transactions you can track your position in the Native restaking portfolio section.

Please note that your ETH is not yet restaked, you need to wait between 8 and 12 hours for the EigenLayer oracle to see your validator on chain and to enable restaking.

4. Restaking

You can start restaking from your Kiln's Dapp Native restaking portfolio page.

Under the EigenLayer section, you will find the amount you can restake, if you deposited 32ETH multiples, it's possible that only some of your validators are ready, we recommend waiting for all of them to be ready.

Click "Restake", it will open a modal with the balance currently available to restake, and list all of the validators that you can activate. By clicking Restake in the modal we will fetch the proof of you running these validators. You need to upload one proof per validator in a verify withdrawal field transaction that you need to sign with your wallet.

Restaking - proof upload operational note

Kiln's Dapp will batch proof upload by 50 validators.

eg. Native restaking of 2048 ETH, require running 64 validators, batching them by 50 proofs will require you to sign at least 2 transactions to complete restaking.

🖥️ Reporting

Monitor, manage, and initiate operations from Kiln's Dapp Native restaking portfolio page. Keep track of your position status and withdraw accumulated rewards.

EigenLayer reporting

In this section, you can find details about your EigenLayer balance, the points you generated, and the operator you are delegating to.

Restakable balance & redelegatable balance, upgrade & delegate

This tile is only visible if you have ETH on you Eigenpod that are not restaked balance or delegated > 0.

Represent the total amount available to restake or delegate to an EigenLayer Operator.

In the case you used Eigenlayer before April 9, 2024, you will also need to update your EigenPod contract. This operation requires you to withdraw all available ETH in your pod before properly retaking ensuring proof accounting is accurate.

Click on the "Upgrade" and sign the prompted Activate Restaking transaction with your wallet. This will trigger the withdrawal of your EigenPod available balance, including generated consensus layer rewards and possibly exited validators, you will be able to withdraw them after 7 days.

Click "Restake" to restake read more in the previous section.

Click "Delegate" to delegate and get redirected to the operator delegation section.

Native restaked balance

This tile is only visible if you have a restaked balance > 0.

Represent the total amount of native ETH restaked to an EigenLayer Operator.

Restaked points

Restaked points measure your contribution to the shared security of the EigenLayer ecosystem. The points are a measure of your staking contribution over time.

EigenLayer Operator

This tile is only visible if you delegated to Kiln's operator

Show Kiln's operator if you are delegated to it and the list of all the AVSs you are restaking to.

Validators

The validators section allows you to track your native ETH validators, from their status to the aggregated yield you generated from them. In this section, you can request an exit and export this in CSV.

Exiting a validator

You can request the exit of one or multiple validators, they will go throw the Ethereum validator exit queue taking a few hours to multiple days based on network activity. After the exit queue, the equivalent amount of ETH will be visible in the EigenPod available balance and you can initiate a withdrawal request from the withdraw section of the portfolio.

Rewards

The rewards section allows you to track the rewards generated by all of your ETH validators, you can see the total rewards accrued and the amount of ETH and USD value generated over the last 24 hours.

You can play with the reward history table to see the exact amount generated each day and the reward rate of your validators. You can see the same view as a chart in this view and export this table as CSV.

Rewards generation while doing Native restaking with EigenLayer

Your validators are linked to your EigenPod, therefore all of the consensus layer rewards generated overtime will be incrementing directly on your EigenPod, you can withdraw them when you want,

Withdraw

The last section of the portfolio allows users to track all pending balances, their status, and smart calls to action.

EigenPod available balance & Request withdraw

Represent the total amount of ETH you can request to withdraw by uploading proofs. This includes any ETH amount skimmed or exited from your validators including consensus layer rewards generated over time.

Click "Request withdraw", it will require you to upload proof for each time one validator got skimmed (every ~8 days) since the last time you requested withdrawal.

Each transaction once confirmed will generate a withdrawal request, pending for 7 days for the amount of ETH you proved in this transaction. You can track all your withdrawal requests in the table.

Stakers will NOT earn fees (or rewards) during the escrow period when payments launch and will not continue to accrue restake points while the selected amount is in the withdraw queue.

During the escrow period their stake continues to secure AVSs (and slashable when slashing launches) and is still considered in operator delegations until fully withdrawn.

The request modal withdrawal is designed to help you manage the proof generation and upload. It integrates the available to withdraw amount, and then each time you click on "request withdraw", we will generate the proofs and create a transaction for you to sign.

Each time the most optimal amount in ETH will be added to the Exit requested tile and the withdrawal requests table. You can repeat the operation by clicking on "request withdraw" until you are finished, or close the modal anytime and come back later.

Request withdrawal - proof upload operational note

Kiln's Dapp will batch withdrawal proof upload by a bucket of 25 proofs.

eg. Native restaking of 2048 ETH, require running 64 validators when receiving rewards for 24 days. I need to upload : nbValidators * (days / skimmingRate) = 64 * (24/8) = 192

Batching them by 25 proofs will require you to sign at least 8 transactions to request the withdrawal. And will result in seeing 8 withdrawal requests in the pending withdrawals table.

Pending balance

only visible when there request pending in the withdraw queue.

Represent the total amount of ETH in the withdraw queue.

Withdrawable balance & withdraw

Represent the total amount of ETH that finished the 7-day withdraw queue and that the user can withdraw to their wallet.

Click "Withdraw" to receive the total withdrawable balance in your wallet balance.

Withdrawal requests table

In this table you will be able to see:

  • the type of request, which can be either undelegate or withdraw

  • the requested_at with the date and block of the request

  • the amount requested

  • the withdrawable_at with the date and block of the request, displaying a green ready badge when available.

Last updated