# ZKsync SDK ## Docs - [ZKsyncOS SDK](https://zksync-sdk.mintlify.app/index.md): Lightweight adapters for viem and ethers to build ZKsync L1↔L2 flows fast. - [Welcome](https://zksync-sdk.mintlify.app/overview/index.md): Learn what the `@zksync-sdk` is and how it simplifies ZKsync cross-chain flows for viem and ethers. - [Mental model](https://zksync-sdk.mintlify.app/overview/mental-model.md): Understand the predictable lifecycle (`quote → prepare → create → status → wait → finalize`) that powers every L1–L2 and L2–L1 action in the SDK. - [Adapters (viem & ethers)](https://zksync-sdk.mintlify.app/overview/adapters.md): Learn how the SDK extends your existing viem or ethers setup with ZKsync-specific functionality. - [Status vs Wait](https://zksync-sdk.mintlify.app/overview/status-vs-wait.md): Snapshot progress with `status(...)` or block until a checkpoint with `wait(..., { for })` for deposits and withdrawals. - [Finalization (Withdrawals)](https://zksync-sdk.mintlify.app/overview/finalization.md): Withdrawals from ZKsync (L2) only complete on Ethereum (L1) after you explicitly call `finalize`. - [Adapter Choice](https://zksync-sdk.mintlify.app/quickstart/index.md): Get your first ZKsync deposit done using the @zksync-sdk. - [ETH Deposit (L1 → L2)](https://zksync-sdk.mintlify.app/quickstart/deposits.md): Get your first ETH deposit from Ethereum (L1) to ZKsync (L2). - [ETH Withdrawal (L2 → L1)](https://zksync-sdk.mintlify.app/quickstart/withdrawals.md): Get your first ETH withdrawal from ZKsync (L2) to Ethereum (L1). - [Deposits (L1 → L2)](https://zksync-sdk.mintlify.app/guides/deposits.md): Fast, developer-focused deposits with validation, observability, and battle-tested patterns. - [Withdrawals (L2 → L1)](https://zksync-sdk.mintlify.app/guides/withdrawals.md): Fast, developer-focused withdrawals with validation, observability, and battle-tested patterns. - [Introduction](https://zksync-sdk.mintlify.app/api-reference/introduction.md): Public, typed API surface for the ZKsyncOS SDK — Incorruptible Financial Infrastructure. - [EthersClient](https://zksync-sdk.mintlify.app/api-reference/ethers/client.md): Low-level client for the Ethers adapter. Carries providers/signer, resolves core contract addresses, and exposes connected ethers.Contract instances. - [EthersSdk](https://zksync-sdk.mintlify.app/api-reference/ethers/sdk.md): High-level SDK composed over the Ethers adapter - deposits, withdrawals, and chain-aware helpers. - [Deposits](https://zksync-sdk.mintlify.app/api-reference/ethers/deposits.md): L1 → L2 deposits for ETH and ERC-20 with quote, prepare, create, status, and wait helpers. - [Withdrawals](https://zksync-sdk.mintlify.app/api-reference/ethers/withdrawals.md): L2 → L1 withdrawals for ETH and ERC-20 with quote, prepare, create, status, wait, and finalize helpers. - [ViemClient](https://zksync-sdk.mintlify.app/api-reference/viem/client.md): Low-level client for the Viem adapter. Carries viem public/wallet clients, resolves core contract addresses, and exposes typed contract instances. - [ViemSdk](https://zksync-sdk.mintlify.app/api-reference/viem/sdk.md): High-level SDK composed over the Viem adapter - deposits, withdrawals, and chain-aware helpers. - [Deposits](https://zksync-sdk.mintlify.app/api-reference/viem/deposits.md): L1 → L2 deposits for ETH and ERC-20 with quote, prepare, create, status, and wait helpers (Viem adapter). - [Withdrawals](https://zksync-sdk.mintlify.app/api-reference/viem/withdrawals.md): L2 → L1 withdrawals for ETH and ERC-20 with quote, prepare, create, status, wait, and finalize helpers (Viem adapter). - [zks_ RPC](https://zksync-sdk.mintlify.app/api-reference/core/rpc.md): Public ZKsync zks_ RPC methods exposed on the adapters via client.zks (Bridgehub address, L2→L1 log proofs, receipts with l2ToL1Logs). - [Error model](https://zksync-sdk.mintlify.app/api-reference/core/errors.md): Typed, structured errors with a stable envelope across viem and ethers adapters. - [Changelog](https://zksync-sdk.mintlify.app/changelog.md): New releases and improvements for the ZKsyncOS SDK.