lido

Integrate Lido liquid staking to stake ETH, wrap wstETH, and manage withdrawal queues.

1|1|Updated May 21, 2026
One-click install
npx skills add https://github.com/naruto11eth/cryptoskills --skill lido-naruto11eth
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: lido
Source: https://github.com/naruto11eth/cryptoskills/tree/main/skills/lido
Command: npx skills add https://github.com/naruto11eth/cryptoskills --skill lido-naruto11eth

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI agents and developers frequently get Lido integration details wrong: stETH is a rebasing token whose balance changes daily, transfers lose 1-2 wei to rounding, wstETH is not 1:1 with stETH, and withdrawals require a multi-step queue with finalization delays. This Skill provides verified contract addresses, correct integration patterns, and working code so agents avoid hallucinated addresses and broken accounting logic. ## Core Features & Use Cases - Staking and Wrapping: Stake ETH via submit(), wrap stETH to non-rebasing wstETH, and convert between shares, stETH, and wstETH using on-chain rate functions. - Withdrawal Queue Management: Request withdrawals (100 wei to 1000 stETH per request), track finalization status, compute checkpoint hints, and claim ETH. - DeFi Integration Patterns: Use wstETH as collateral in vaults and lending protocols, read Chainlink wstETH/ETH and stETH/ETH price feeds with staleness checks, and cross-validate oracle rates against on-chain rates. - Use Case: Build a vault that accepts wstETH deposits, values collateral in ETH via getStETHByWstETH(), and lets users exit through the withdrawal queue with correct hint computation. ## Quick Start Ask the agent to stake 1 ETH through Lido and wrap the resulting stETH into wstETH using the provided viem template.

Frequently Asked Questions about lido

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I stake ETH with Lido using viem?

Call the Lido contract's `submit(address _referral)` function as a payable transaction with your ETH amount, passing address(0) if you have no referral. Check `getCurrentStakeLimit()` first for large deposits, since a daily staking limit can cause STAKE_LIMIT reverts.

What is the difference between stETH and wstETH?

stETH is a rebasing token whose balance increases daily with staking rewards, while wstETH is a non-rebasing wrapper representing a fixed number of stETH shares. One wstETH is worth more than one stETH, and the rate drifts upward; convert using `stEthPerToken()` or `getStETHByWstETH()`.

Should I use stETH or wstETH as DeFi collateral?

Use wstETH for collateral, vaults, and any contract that stores balances, because rebasing breaks standard ERC-20 accounting. If you must hold stETH, track shares via `sharesOf()` and `getPooledEthByShares()` instead of `balanceOf()`.

Why does my stETH transfer leave 1-2 wei of dust?

stETH transfers convert amounts to shares and back using integer division, which rounds down twice, so recipients may receive 1-2 wei less than the sent amount. Use `transferShares()` for exact transfers and allow a 2 wei tolerance in balance assertions.

How long do Lido withdrawals take and how do I claim?

Withdrawals are queued and finalized by the oracle, typically taking 1-5 days but longer under high demand. After `getWithdrawalStatus()` shows isFinalized as true, compute hints with `findCheckpointHints()` and call `claimWithdrawals()` to receive ETH.

How do I get a reliable wstETH price on-chain?

Use the Chainlink wstETH/ETH feed at 0x536218f9E9Eb48863970252233c8F271f554C2d0 with an 86400-second staleness check. For critical paths, cross-validate against the on-chain `stEthPerToken()` rate and revert if deviation exceeds a threshold such as 5%.