Liquid restaking protocol issuing rsETH — backed by stETH, ETHx, sfrxETH, and other LSTs that are restaked via EigenLayer. Multi-chain (Ethereum, Arbitrum, Optimism, Base, Linea, Scroll, ZkSync, Blast, Mode, BNB, X Layer, Bera).
- 01rsETH liquid restaking
- 02multi-LST exposure in one token
- 03Kelp Miles + EL points farming
- 04Pendle / Aave rsETH composability
- pnpm add viem
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_RSETH_ADDRESS | Client | rsETH on Ethereum mainnet: 0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7. |
| NEXT_PUBLIC_KELP_DEPOSIT_POOL | Client | LRTDepositPool on Ethereum mainnet: 0x036676389e48133B63a802f8635AD39E752D375D. Main entry point for LST deposits. |
Integrate Kelp rsETH. Deposit a supported LST: `IERC20(asset).approve(LRTDepositPool, amount); LRTDepositPool.depositAsset(address asset, uint256 amount, uint256 minRSETHAmount, string referralId)` — `minRSETHAmount` is your slippage floor (REQUIRED on this contract; passing 0 lets sandwichers steal). Native ETH path: `LRTDepositPool.depositETH{value: ethAmount}(uint256 minRSETH, string referralId)`. rsETH is NON-rebasing; convert to ETH via `LRTOracle.rsETHPrice()` (or read `rsETH.totalSupply()` vs `LRTDepositPool.getTotalAssetDeposits` aggregated across NodeDelegators). Withdrawals: `LRTWithdrawalManager.requestWithdrawal(uint256 rsETHAmount, address assetOut)` queues a request that becomes claimable via `claimWithdrawal(uint256 withdrawalIndex)` after the protocol cooldown + EigenLayer escrow.
- ⚑rsETH withdrawals inherit EigenLayer's escrow delay (currently 14+ days) AND a Kelp-side queue — total time-to-cash can exceed 21 days during congestion.
- ⚑Restaking SLASHING is now live on EigenLayer — Kelp's NodeDelegators opt the underlying LSTs into AVSs; backing can decrease if delegated operators misbehave.
- ⚑rsETH peg to ETH is enforced only by secondary markets (Curve, Balancer, Pendle) until withdrawal — historical depegs of 5–10% have occurred during airdrop unwinds.
- ⚑`LRTDepositPool.depositAsset` is vulnerable to slippage manipulation if you pass `minRSETHAmount = 0` — historical audits (Code4rena 2023) flagged this; ALWAYS compute minRSETH off-chain from the oracle and apply a 0.1–0.5% slippage tolerance.
- ⚑Kelp supports multiple LSTs (stETH, ETHx, sfrxETH, mETH) — the rsETH issuance rate per LST changes daily based on the oracle; depositing a temporarily-discounted LST gives you bonus rsETH but comes with that LST's underlying risk.
- ⚑Kelp Miles + EigenLayer points are off-chain Merkle distributions; the KEP token / airdrop mechanics are governed by the DAO and not contract-enforced.
- ⚑On L2s (Arbitrum, Base, Linea, ZkSync, Scroll, Blast, Mode, BNB) rsETH is bridged via xERC20 / canonical bridges — different addresses per chain, separate bridge risk.
- ⚑Project was historically called 'EigenPie' in some integrations — that is a DIFFERENT protocol (Magpie's LRT). Do not confuse rsETH (Kelp) with mstETH/eETH wrappers from Eigenpie.