← Protocols
Kelp DAO
Lending / Yield·EVM

Kelp DAO

01Description

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).

02Best for
  • 01rsETH liquid restaking
  • 02multi-LST exposure in one token
  • 03Kelp Miles + EL points farming
  • 04Pendle / Aave rsETH composability
03Install
  • pnpm add viem
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_RSETH_ADDRESSClientrsETH on Ethereum mainnet: 0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7.
NEXT_PUBLIC_KELP_DEPOSIT_POOLClientLRTDepositPool on Ethereum mainnet: 0x036676389e48133B63a802f8635AD39E752D375D. Main entry point for LST deposits.
05Prompt snippet
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.
06Gotchas
  • 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.
07Alternatives