Smart contract development
Smart contract development
zkSync Era allows developers to build projects using the same programming languages and tools used to build on Ethereum.
Differences with Ethereum
Although most smart contracts work out of the box, we strongly recommend developers to read about the differences between Ethereum and zkSync Era, and test their projects using the local setup and in testnet.
Solidity support
Currently, Solidity versions as old as 0.4.12
are supported, although we strongly recommend using the latest supported revision of 0.8, as older versions contain known bugs and have limitations with our compiler.
Please read this section of the docs if your project uses libraries.
Security and best practices
Follow the security considerations and best practices to build smart contracts on zkSync Era.
Vyper support
Currently only Vyper 0.3.3 and 0.3.9 versions are supported. Versions 0.3.4 to 0.3.8 (both included) are not supported.
Compilers
Although you can write smart contracts in both Solidity and Vyper, compiling these contracts to our zkEVM bytecode requires special compilers:
It's strongly recommended to use the latest version of the compiler available.
You can find more information about our compilers in the Compiler toolchain section.
Learn more about how to install and configure the compiler Hardhat plugins in the links below: