Lido
Lido is the largest liquid staking protocol on Ethereum. Users stake ETH and receive stETH, a rebasing token that accrues staking rewards. wstETH is a non-rebasing wrapper around stETH, suitable for DeFi protocols and cross-chain bridging. The wstETH/stETH exchange rate increases over time as staking rewards accrue.
Supported chains: Ethereum Mainnet (wrap/unwrap + all reads), Base (bridged wstETH: balance and total supply only), Sepolia Testnet. Read-only actions work without credentials. Write actions require a connected wallet.
Actions
| Action | Type | Credentials | Description |
|---|---|---|---|
| Wrap stETH to wstETH | Write | Wallet | Wrap stETH tokens into non-rebasing wstETH |
| Unwrap wstETH to stETH | Write | Wallet | Unwrap wstETH back to rebasing stETH |
| Approve stETH Spending | Write | Wallet | Approve a spender to transfer stETH |
| Get stETH by wstETH | Read | No | Convert a wstETH amount to stETH value |
| Get wstETH by stETH | Read | No | Convert a stETH amount to wstETH value |
| stETH Per Token (Exchange Rate) | Read | No | Get the stETH value of 1 wstETH |
| wstETH Per stETH (Inverse Rate) | Read | No | Get the wstETH value of 1 stETH |
| Get wstETH Balance | Read | No | Check wstETH balance of an address |
| Get wstETH Total Supply | Read | No | Get total wstETH tokens in circulation |
| Get wstETH Balance (L2) | Read | No | Check wstETH balance of an address on Base |
| Get wstETH Total Supply (L2) | Read | No | Get total bridged wstETH tokens on Base |
| Get stETH Balance | Read | No | Check stETH balance of an address |
Every action above except the two marked (L2) targets the canonical wstETH or stETH contract, which is on Ethereum Mainnet and Sepolia. The two (L2) actions target the bridged wstETH token on Base.
Wrap stETH to wstETH
Wrap stETH tokens into non-rebasing wstETH. Requires stETH approval to the wstETH contract first (use the Approve stETH Spending action). The amount of wstETH received depends on the current exchange rate.
Inputs:
| Input | Type | Description |
|---|---|---|
| _stETHAmount | uint256 | stETH Amount (wei) |
Outputs: success, transactionHash, transactionLink, error
When to use: Convert stETH to wstETH for use in DeFi protocols that do not support rebasing tokens, prepare for cross-chain bridging, or hold a non-rebasing staking position.
Unwrap wstETH to stETH
Unwrap wstETH back to rebasing stETH at the current exchange rate. The amount of stETH received will be greater than the original wrap if staking rewards have accrued since wrapping.
Inputs:
| Input | Type | Description |
|---|---|---|
| _wstETHAmount | uint256 | wstETH Amount (wei) |
Outputs: success, transactionHash, transactionLink, error
When to use: Convert wstETH back to stETH to receive rebasing rewards directly, or exit a wstETH position.
Approve stETH Spending
Approve the wstETH contract (or another spender) to transfer stETH on your behalf. This must be done before wrapping stETH to wstETH.
Inputs:
| Input | Type | Description |
|---|---|---|
| spender | address | Spender Address |
| amount | uint256 | Approval Amount (wei) |
Outputs: success, transactionHash, transactionLink, error
When to use: Grant stETH spending approval before wrapping, or approve other DeFi protocols to use your stETH.
Get stETH by wstETH
Convert a wstETH amount to its equivalent stETH value at the current exchange rate. Useful for calculating the underlying stETH value of a wstETH position.
Inputs:
| Input | Type | Description |
|---|---|---|
| _wstETHAmount | uint256 | wstETH Amount (wei) |
Outputs:
| Output | Type | Description |
|---|---|---|
| stETHAmount | uint256 | stETH Value (wei), 18 decimals |
When to use: Calculate the stETH value of wstETH holdings, display human-readable staking position values, build portfolio dashboards.
Get wstETH by stETH
Convert a stETH amount to its equivalent wstETH value at the current exchange rate. Useful for previewing how much wstETH a given stETH amount would produce when wrapped.
Inputs:
| Input | Type | Description |
|---|---|---|
| _stETHAmount | uint256 | stETH Amount (wei) |
Outputs:
| Output | Type | Description |
|---|---|---|
| wstETHAmount | uint256 | wstETH Value (wei), 18 decimals |
When to use: Preview wrap amounts before executing, calculate wstETH equivalents for stETH positions, compare rates across protocols.
stETH Per Token (Exchange Rate)
Get the current stETH value of 1 wstETH. This is the primary exchange rate that increases over time as staking rewards accrue. The rate starts above 1.0 and grows monotonically.
Inputs: None
Outputs:
| Output | Type | Description |
|---|---|---|
| rate | uint256 | stETH per wstETH (wei), 18 decimals |
When to use: Monitor staking yield accrual, track the wstETH exchange rate over time, trigger actions based on rate changes, compare with other liquid staking protocols.
wstETH Per stETH (Inverse Rate)
Get the current wstETH value of 1 stETH. This is the inverse of the exchange rate and decreases over time as staking rewards accrue.
Inputs: None
Outputs:
| Output | Type | Description |
|---|---|---|
| rate | uint256 | wstETH per stETH (wei), 18 decimals |
When to use: Calculate how much wstETH 1 stETH can produce, compare inverse rates, build rate conversion utilities.
Get wstETH Balance
Check the wstETH balance of any address. On Ethereum Mainnet and Sepolia this reads the canonical wstETH contract, which is not deployed on Base; on Base the slug resolves to the bridged token instead, so it works there too. Get wstETH Balance (L2) below is the preferred name for new work on Base.
Inputs:
| Input | Type | Description |
|---|---|---|
| account | address | Wallet Address |
Outputs:
| Output | Type | Description |
|---|---|---|
| balance | uint256 | wstETH Balance (wei), 18 decimals |
When to use: Monitor wstETH holdings, track staking positions across wallets, trigger alerts when balances change.
Get wstETH Total Supply
Get the total supply of wstETH tokens currently in circulation on Ethereum Mainnet or Sepolia. For the bridged supply on Base, use Get wstETH Total Supply (L2) below.
Inputs: None
Outputs:
| Output | Type | Description |
|---|---|---|
| totalSupply | uint256 | Total wstETH Supply (wei), 18 decimals |
When to use: Monitor protocol adoption, track total wrapped stETH, analyze wrapping trends.
Get wstETH Balance (L2)
Slug: get-wsteth-balance-l2. Check the wstETH balance of any address on Base. wstETH on Base is a bridged token: it holds balances and reports a total supply, but implements none of the wrap, unwrap, or exchange-rate functions, so this action exists separately from Get wstETH Balance rather than extending it to another chain.
Inputs:
| Input | Type | Description |
|---|---|---|
| account | address | Wallet Address |
Outputs:
| Output | Type | Description |
|---|---|---|
| balance | uint256 | wstETH Balance (wei), 18 decimals |
When to use: Monitor bridged wstETH holdings on Base. Returns the same wei-denominated, 18-decimal value as the Ethereum action, so a workflow moving from Mainnet to Base needs no unit change.
Get wstETH Total Supply (L2)
Slug: get-wsteth-total-supply-l2. Get the total supply of bridged wstETH on Base. This is the supply of the Base token, not of canonical wstETH on Ethereum.
Inputs: None
Outputs:
| Output | Type | Description |
|---|---|---|
| totalSupply | uint256 | Total wstETH Supply (wei), 18 decimals |
When to use: Track how much wstETH has been bridged to Base, compare Base supply against Mainnet supply.
Get stETH Balance
Check the stETH balance of any Ethereum address.
Inputs:
| Input | Type | Description |
|---|---|---|
| account | address | Wallet Address |
Outputs:
| Output | Type | Description |
|---|---|---|
| balance | uint256 | stETH Balance (wei), 18 decimals |
When to use: Monitor stETH holdings, check available balance before wrapping, track rebasing rewards.
Example Workflows
wstETH Exchange Rate Monitor
Schedule (hourly) -> Lido: stETH Per Token -> Code (rate / 1e18) -> Discord: Send Message
Track the wstETH exchange rate over time and send hourly updates to a Discord channel. Useful for monitoring staking yield accrual.
wstETH Position Value Tracker
Schedule (daily) -> Lido: Get wstETH Balance -> Lido: stETH Per Token -> Code (balance * rate / 1e36) -> SendGrid: Send Email
Calculate the current stETH value of your wstETH position and email a daily summary. Combines exchange rate with balance to show total staked value.
stETH/wstETH Rate Alert
Schedule (hourly) -> Lido: stETH Per Token -> Code (rate / 1e18) -> Condition (> threshold) -> Discord: Send Message
Monitor the wstETH exchange rate and alert when it crosses a threshold, useful for tracking significant yield milestones.
wstETH Total Supply Dashboard
Schedule (daily) -> Lido: Get wstETH Total Supply -> Lido: stETH Per Token -> Code (supply * rate / 1e36) -> Webhook: Send HTTP Request
Track total wstETH supply and its stETH value, sending daily data to an external dashboard or analytics service.
Supported Chains
| Chain | Contracts Available |
|---|---|
| Ethereum (1) | wstETH, stETH |
| Base (8453) | wstETH (bridged: balance and total supply) |
| Sepolia (11155111) | wstETH, stETH (testnet) |
On Ethereum Mainnet, all wrap/unwrap and conversion functions are available. On Base, wstETH is a bridged ERC-20 token: it answers balance and total-supply reads, under the get-wsteth-balance-l2 and get-wsteth-total-supply-l2 slugs, and implements none of the wrap, unwrap, or exchange-rate functions. Sepolia provides testnet versions for development.