npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@exromany/lido-csm-sdk

v2.0.2

Published

[![GitHub license](https://img.shields.io/github/license/lidofinance/lido-csm-sdk?color=limegreen)](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [![Version npm](https://img.shields.io/npm/v/@lidofinance/lido-csm-sdk?label=version)](h

Readme

Lido CSM SDK

GitHub license Version npm npm bundle size

Overview

Lido CSM SDK is a TypeScript/JavaScript library that provides comprehensive tools for interacting with Lido Community Staking Module (CSM) and Curated Module (CM) contracts on the Ethereum network. The SDK abstracts the complexity of direct contract interaction, offering a modular, extensible, and developer-friendly interface for building applications on top of Lido staking modules.

Features

  • Modular SDKs for all major Lido staking module contract domains
  • Dual SDK classes: LidoSDKCsm for CSM and LidoSDKCm for Curated Module
  • TypeScript support and type safety
  • Extensible architecture for advanced integrations

Installation

Install via npm or yarn:

yarn add @lidofinance/lido-csm-sdk @lidofinance/lido-ethereum-sdk viem

or

npm install @lidofinance/lido-csm-sdk @lidofinance/lido-ethereum-sdk viem

Usage Example

Community Staking Module (CSM)

import { LidoSDKCsm } from '@lidofinance/lido-csm-sdk';
import { LidoSDKCore } from '@lidofinance/lido-ethereum-sdk';

const core = new LidoSDKCore({
  // Provide required core properties, e.g. provider, network, etc.
})

const csmSdk = new LidoSDKCsm({ core });

// Access different modules
const operatorsCount = await csmSdk.module.getOperatorsCount();
const operator = await csmSdk.operator.getInfo(69n);

// CSM-specific features
await csmSdk.permissionlessGate.createNodeOperator(...);

Curated Module (CM)

import { LidoSDKCm } from '@lidofinance/lido-csm-sdk';

const cmSdk = new LidoSDKCm({ core });

// Access different modules (same interface as CSM)
const operatorsCount = await cmSdk.module.getOperatorsCount();
const operator = await cmSdk.operator.getInfo(69n);

// CM-specific features
await cmSdk.curatedGates.createNodeOperator(gateIndex, proof, ...);
await cmSdk.operatorsData.set(operatorId, { name, description });

SDK Modules

The SDK provides two classes: LidoSDKCsm for Community Staking Module and LidoSDKCm for Curated Module. Each class aggregates modules tailored to their specific module type, with many modules shared between both.

Shared Modules

These modules are available in both LidoSDKCsm and LidoSDKCm:

  • core: Core SDK for shared logic, configuration, and utilities
  • tx: Unified transaction handling with multi-wallet support (EOA, multisig, Abstract Accounts), permit/approve flow, and batch operations
  • module: Query module status, share limit
  • accounting: Access accounting data such as balances and supply
  • parameters: Read curve parameters
  • frame: Query protocol frame config and state
  • operator: Query operator data
  • rewards: Query reward distribution
  • keysWithStatus: Query operator keys with status tracking
  • keys: Manage operator keys
  • keysCache: Pubkey caching to prevent double-submission with 2-week TTL and manual key management
  • bond: Manage operator bond balance
  • events: Query protocol events
  • depositQueue: Query deposit queue pointers, batches
  • depositData: Parse and validate deposit data JSON, check for duplicates and previously submitted keys
  • feesMonitoring: Validator fee recipient monitoring and issue detection
  • discovery: Operator discovery and pagination using SMDiscovery contract (renamed from satellite-sdk)

CSM-Specific Modules

Only available in LidoSDKCsm:

  • strikes: Query operator penalties
  • stealing: Manage execution layer rewards stealing penalties - report and cancel penalties
  • permissionlessGate: Permissionless entry point for creating new operators
  • icsGate: ICS (Independent Community Staker) vetted entry point for creating new operators with benefits
  • roles: Standard role management for CSM operators

CM-Specific Modules

Only available in LidoSDKCm:

  • curatedGates: Collection of curated gates for allowlist-based operator creation using merkle proofs
  • operatorsData: Module-agnostic operator metadata management (name, description)
  • roles: Curated-specific role management (CuratedRolesSDK) with extended functionality

Each module exposes a set of methods tailored to its domain. Refer to the source code or generated API documentation for detailed method signatures and usage.

Extending and Integrating

The SDK is designed for extensibility. You can instantiate individual modules directly or extend them for custom use cases. All modules share a common set of core properties for seamless integration.

License

This project is licensed under the MIT License. See the LICENSE.txt file for details.

Changelog

See CHANGELOG.md for version history and updates.