Skip to main content

Introduction

Lido Ethereum SDK is a package that provides convenient tools for interacting with Lido contracts on the Ethereum network through a software development kit (SDK). This SDK simplifies working with Lido contracts and accessing their functionality.

Changelog​

For changes between versions see Changelog

Migration​

For migration guide between major versions see Migration Guide

Installation​

You can install the Lido Ethereum SDK using npm or yarn. viem is required as a peer dep:

// SDK (stakes, wrap, withdrawals)
yarn add viem @lidofinance/lido-ethereum-sdk

Usage​

To get started with the Lido Ethereum SDK, you need to import the necessary modules:

const { LidoSDK } = require('@lidofinance/lido-ethereum-sdk');

// Or, if you are using ES6+:
import { LidoSDK } from '@lidofinance/lido-ethereum-sdk';

// Or, import separate each module separately to save up on bundle size
import { LidoSDKStake } from '@lidofinance/lido-ethereum-sdk/stake';

✨ See also the examples provided for some more real-life applications.

Initialization​

Before using the SDK, you need to create an instance of the LidoSDK class:

// Pass your own viem PublicClient

import { createPublicClient, http } from 'viem';
import { hoodi } from 'viem/chains';

const publicClient = createPublicClient({
chain: hoodi,
transport: http('<RPC_URL>'),
});
const sdk = new LidoSDK({
chainId: 17000,
publicClient,
walletClient, // optional
});

Replace <RPC_URL> with the URL of your Ethereum RPC provider.

Example​

Basic examples and usage instructions can be found in here.

const lidoSDK = new LidoSDK({
chainId: 17000,
publicClient,
walletClient, // optional
});

// Views
const balanceETH = await lidoSDK.core.balanceETH(address);

// Calls
const stakeTx = await lidoSDK.stake.stakeEth({
value,
callback,
referralAddress,
account,
});

// relevant results are returned with transaction
const { stethReceived, sharesReceived } = stakeTx.result;

console.log(balanceETH.toString(), 'ETH balance');

Documentation​

For additional information about available methods and functionality, refer to the the documentation for the Lido Ethereum SDK.

Playground​

To check out SDK in action visit playground. Or tinker locally by cloning this repo and following Playground instructions.