Lending / Yield·EVM
Frax
Frax ecosystem: frxETH liquid staking (rebasing on the staked variant sfrxETH) plus Fraxlend isolated lending pairs. sfrxETH captures all staking yield while frxETH is the loosely-pegged ETH proxy used in DeFi.
- 01ETH liquid staking via sfrxETH
- 02isolated-pair lending via Fraxlend
- 03FRAX stablecoin integrations
- 04Curve / Convex gauge composability
- pnpm add viem
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_FRXETH_MINTER | Client | frxETHMinter on Ethereum mainnet: 0xbAFA44EFE7901E04E39Dad13167D089C559c1138. Mints frxETH 1:1 from ETH. |
| NEXT_PUBLIC_SFRXETH_ADDRESS | Client | sfrxETH (ERC-4626 staked frxETH) on Ethereum mainnet: 0xac3E018457B222d93114458476f3E3416Abbe38F. |
Integrate Frax. To liquid-stake ETH: call `frxETHMinter.submitAndDeposit{value: ethAmount}(address recipient)` — this mints frxETH 1:1 and immediately stakes it into the ERC-4626 sfrxETH vault, returning sfrxETH shares whose price rises with validator rewards. To stake existing frxETH: `IERC20(frxETH).approve(sfrxETH, amount); IERC4626(sfrxETH).deposit(amount, receiver)`. Unstake via `IERC4626(sfrxETH).redeem(shares, receiver, owner)` (no withdrawal queue — backed by an internal liquidity reserve, but large redemptions may fall back to validator exits). For Fraxlend, each market is its own `FraxlendPair` contract: `pair.deposit(uint256 amount, address receiver)` to lend (receive fTokens), `pair.borrowAsset(uint256 borrow, uint256 collateral, address receiver)` to borrow against the pair's collateral asset.
- ⚑frxETH is NOT yield-bearing on its own — only sfrxETH accrues staking rewards. Holding frxETH in a wallet earns nothing; route users into sfrxETH for yield.
- ⚑frxETH peg to ETH is maintained by the Curve frxETH/ETH pool and arbitrage, not by an instant ETH redemption — peg can deviate during stress like other LSTs.
- ⚑sfrxETH is ERC-4626 with rising share price — `pricePerShare = convertToAssets(1e18)`. Do not treat balance as ETH-equivalent without converting.
- ⚑Fraxlend pairs are ISOLATED: each pair has its own oracle, LTV, and liquidation params. A bad oracle on one pair does not contaminate others, but it also means liquidity is fragmented.
- ⚑Fraxlend uses time-weighted utilization-based interest rate models that update on every interaction — borrow rates can spike sharply when utilization > kink (~85%).
- ⚑Large sfrxETH redemptions may be served partly by the buffer and partly via validator exit queue (multi-day delay) — the contract does not expose a queue UI; check available liquidity first via `maxRedeem(owner)`.
- ⚑FRAX stablecoin and the broader AMO system are governed by frxGov; collateral ratio and AMO allocations can change via on-chain proposals.