Lending / Yield·EVM
ether.fi
Largest liquid restaking protocol. Stake ETH to receive rebasing eETH (or non-rebasing wrapped weETH) which is natively restaked across EigenLayer + Symbiotic AVSs to stack staking yield, restaking rewards, and ETHFI/points.
- 01ETH liquid restaking
- 02eETH / weETH DeFi composability
- 03EigenLayer + Symbiotic AVS exposure
- 04ETHFI loyalty points integrations
- pnpm add viem
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_EETH_ADDRESS | Client | eETH (rebasing) on Ethereum mainnet: 0x35fA164735182de50811E8e2E824cFb9B6118ac2. |
| NEXT_PUBLIC_WEETH_ADDRESS | Client | weETH (wrapped, non-rebasing ERC-20) on Ethereum mainnet: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee. Available natively on Arbitrum, Base, Linea, Scroll, Mode. |
| NEXT_PUBLIC_ETHERFI_LIQUIDITY_POOL | Client | ether.fi LiquidityPool on Ethereum mainnet: 0x308861A430be4cce5502d0A12724771Fc6DaF216. |
Integrate ether.fi liquid restaking. To stake: `LiquidityPool.deposit{value: ethAmount}()` mints rebasing eETH 1:1 to msg.sender. Wrap to non-rebasing for DeFi: `IERC20(eETH).approve(weETH, amount); weETH.wrap(uint256 eEthAmount)` returns weETH whose `getRate()` (wei per weETH) only goes up. Unwrap with `weETH.unwrap(uint256 weETHAmount)`. Withdrawals are queued: `LiquidityPool.requestWithdraw(address recipient, uint256 amount)` mints a `WithdrawRequestNFT` which becomes claimable after the request is finalized by validator exits — claim via `WithdrawRequestNFT.claimWithdraw(uint256 tokenId)`. On L2s (Arbitrum, Base, Linea, Scroll, Mode) weETH is the canonical bridged token; eETH only lives on mainnet. For DeFi accounting always use weETH — eETH rebases daily on `rebase()` from the oracle.
- ⚑eETH is REBASING — balances change on every oracle rebase. Use weETH for AMMs, lending markets, and any system that assumes static ERC-20 balances (same trap as stETH).
- ⚑Withdrawals require the validator exit queue — finalization can take days to weeks depending on protocol exits queue and beacon-chain churn limit; the WithdrawRequestNFT is the only proof of your queued request.
- ⚑ether.fi node operators opt into AVSs via EigenLayer (and now Symbiotic) — restaking SLASHING is now live; a misbehaving operator can reduce eETH/ETH backing.
- ⚑weETH peg to ETH is enforced only by secondary markets (Curve, Balancer, Pendle) until withdrawal — large redemptions during stress can cause noticeable depegs.
- ⚑weETH on L2s is bridged via canonical bridges; the L2 weETH is fully backed by L1 weETH but inherits bridge risk and may be paused independently.
- ⚑Points / ETHFI rewards are off-chain Merkle-claim distributions — they are NOT auto-credited. Users must `claim` from the rewards contract using a Merkle proof from ether.fi's API.
- ⚑Liquid Vaults (Liquid ETH, Liquid USD, BTC vault) are separate ERC-4626 strategies on top of weETH — they have their own deposit caps, withdrawal cooldowns, and strategy risk.