Repositories
ZKsync
Core components
| Public repository | Description |
|---|---|
| zksync-era | zk server logic, including the APIs and database accesses |
| zksync-wallet-vue | Wallet frontend |
| era-contracts | L1 & L2 contracts, that are used to manage bridges and communication between L1 & L2. Privileged contracts that are running on L2 (like Bootloader or ContractDeployer) |
Compiler
| Public repository | Description |
|---|---|
| era-compiler-tester | Integration testing framework for running executable tests on zkEVM |
| era-compiler-tests | Collection of executable tests for zkEVM |
| era-compiler-llvm | zkEVM fork of the LLVM framework |
| era-compiler-solidity | Solidity Yul/EVMLA compiler front end |
| era-compiler-vyper | Vyper LLL compiler front end |
| era-compiler-llvm-context | LLVM IR generator logic shared by multiple front ends |
| era-compiler-common | Common compiler constants |
| era-compiler-llvm-builder | Tool for building our fork of the LLVM framework |
zkEVM / crypto
| Public repository | Description |
|---|---|
| era-zkevm_opcode_defs | Opcode definitions for zkEVM - main dependency for many other repos |
| era-zk_evm | EVM implementation in pure rust, without circuits |
| era-sync_vm | EVM implementation using circuits |
| era-zkEVM-assembly | Code for parsing zkEVM assembly |
| era-zkevm_test_harness | Tests that compare the two implementation of the zkEVM - the non-circuit one (zk_evm) and the circuit one (sync_vm) |
| era-zkevm_tester | Assembly runner for zkEVM testing |
| era-boojum | New proving system library - containing gadgets and gates |
| era-shivini | Cuda / GPU implementation for the new proving system |
| era-zkevm_circuits | Circuits for the new proving system |
| franklin-crypto | Gadget library for the Plonk / plookup |
| rescue-poseidon | Library with hash functions used by the crypto repositories |
| snark-wrapper | Circuit to wrap the final FRI proof into snark for improved efficiency |
Old proving system
| Public repository | Description |
|---|---|
| era-bellman-cuda | Cuda implementations for cryptographic functions used by the prover |
| era-heavy-ops-service | Main circuit prover that requires GPU to run |
| era-circuit_testing | ?? |
Tools & contract developers
| Public repository | Description |
|---|---|
| era-test-node | In memory node for development and smart contract debugging |
| local-setup | Docker-based zk server (together with L1), that can be used for local testing |
| zksync-cli | Command line tool to interact with ZKsync |
| block-explorer | Online blockchain browser for viewing and analyzing ZKsync chain |
| dapp-portal | ZKsync Wallet + Bridge DApp |
| hardhat-zksync | ZKsync Hardhat plugins |
| zksolc-bin | solc compiler binaries |
| zkvyper-bin | vyper compiler binaries |
Examples & documentation
| Public repository | Description |
|---|---|
| zksync-web-era-docs | Public ZKsync documentation, API descriptions etc. |
| zksync-contract-templates | Quick contract deployment and testing with tools like Hardhat on Solidity or Vyper |
| zksync-frontend-templates | Rapid UI development with templates for Vue, React, Next.js, Nuxt, Vite, etc. |
| zksync-scripting-templates | Automated interactions and advanced ZKsync operations using Node.js |
| tutorials | Tutorials for developing on ZKsync |
ZKsync Lite
| Public repository | Description |
|---|---|
| zksync | ZKsync Lite implementation |
| ZKsync-lite-docs | Public ZKsync Lite documentation |
| zksync-dapp-checkout | Batch payments DApp |