Introduction

Overview of official SDKs for building on ZKsync chains using familiar Ethereum development tools.
The following SDKs provide ZKsync-specific functionalities for EraVM-based chains. For ZKsync OS based chains, developers can use default Ethereum SDKs.

ZKsync SDKs provide native support for interacting with ZKsync chains while extending existing Ethereum development libraries. This means you can use the same tools and workflows you already know, with added features for ZKsync-specific operations.

JavaScript SDKs

ZKsync offers multiple SDKs for the JavaScript ecosystem, extending both ethers and viem to support ZKsync networks.

Viem extension

Official Viem extension for ZKsync providing additional methods for contract deployment and RPC requests.

zksync-ethers

Extends ethers.js, offering a modern interface and improved developer experience.

Web3.js plugin (deprecated)

Legacy plugin extending Web3.js for ZKsync. ⚠️ Deprecated.


Other SDKs

SDKs for additional languages extend popular Ethereum client libraries, keeping interfaces consistent across ecosystems.

Go SDK

Built on top of geth (go-ethereum), adding ZKsync-specific functionality for transactions and contracts.

Python SDK

Extends web3.py with ZKsync support using a familiar Ethereum-style interface.

Java SDK

Extends web3j, enabling seamless ZKsync interaction in JVM applications.

Swift SDK

Provides ZKsync support for iOS and macOS apps, built on top of Ethereum-compatible frameworks.

Rust SDK

Built on top of ethers-rs, the Rust SDK provides full access to ZKsync features such as alternative fee tokens and contract deployment options.


Made with ❤️ by the ZKsync Community