Welcome to the ZKsync Era Docs.


Experience a quick tutorial on building and deploying smart contracts on ZKsync Era.

ZKsync 101

Learn to build projects locally for ZKsync Era using zksync-cli.

ZKsync Era is a Layer 2 ZK rollup, a trustless protocol that uses cryptographic validity proofs to provide scalable and low-cost transactions on Ethereum. In ZKsync Era, computation is performed off-chain and most data is stored off-chain as well. Transactions are bundled into batches before generating a validity proof. As all validity proofs are proven on Ethereum, users enjoy the same security warranties as in the L1.

ZKsync Era is made to look and feel like Ethereum, but with a higher throughput and lower fees. Just like on Ethereum, smart contracts are written in Solidity/Vyper and can be called using the same clients as in other EVM-compatible chains.

You don't need to register a separate private key before using it; ZKsync supports existing Ethereum wallets out of the box.

Main features

Security inherited from Ethereum, with zero reliance on 3rd parties.

Permissionless EVM-compatible smart contracts.

Preserving key EVM features, such as smart contract composability.

Standard Web3 API.

State updates via transaction outputs (also known as state diffs) which provides significant cost savings over transaction inputs.

Native account abstraction with improvements over EIP4337 (implemented in Ethereum and other rollups).

You can find more information about ZKsync Era in L2BEAT.

Developer experience

ZKsync Era was built to provide a similar developer experience as Ethereum.

Smart contracts can be written in Solidity or Vyper.

Smart contracts are compiled with custom compilers: zksolc and zkvyper.

Most contracts work out of the box so migrating projects is seamless.

Use existing frameworks like Hardhat, libraries like Ethers, Viem, or web3.js, and tools like theGraph, Thirdweb, or Chainlink.

Web3 API compatibility enables support of most developer tools.

Different tools for testing and debugging locally.

User experience

Interacting with applications built on ZKsync Era is seamless, cheap and fast.

  • Transactions have instant confirmations and fast finality on L1.
  • Transaction fees are extremely low (average transaction costs).
  • Transaction fees can be conveniently paid with ERC20 tokens (e.g. USDC) thanks to native account abstraction and paymasters.
  • Support for existing Ethereum-based wallets like Metamask, TrustWallet, Zerion, Rabby, etc.
If you have not connected to ZKsync Era before, you will need to configure your wallet with the network. To add ZKsync Era, see Connect to ZKsync Era.

Made with ❤️ by the ZKsync Community