{"id":29110525,"url":"https://github.com/matter-labs/era-compiler-solidity","last_synced_at":"2025-10-23T22:03:01.391Z","repository":{"id":97908640,"uuid":"601961580","full_name":"matter-labs/era-compiler-solidity","owner":"matter-labs","description":"Solidity compiler for ZKsync.","archived":false,"fork":false,"pushed_at":"2025-07-21T11:39:50.000Z","size":3543,"stargazers_count":73,"open_issues_count":1,"forks_count":34,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-21T13:07:48.701Z","etag":null,"topics":["team-compiler"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matter-labs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-15T07:44:34.000Z","updated_at":"2025-07-21T11:04:06.000Z","dependencies_parsed_at":"2025-04-29T10:33:03.273Z","dependency_job_id":"a0146b63-b60b-4a5a-8019-a748fcbd2c50","html_url":"https://github.com/matter-labs/era-compiler-solidity","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/matter-labs/era-compiler-solidity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matter-labs%2Fera-compiler-solidity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matter-labs%2Fera-compiler-solidity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matter-labs%2Fera-compiler-solidity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matter-labs%2Fera-compiler-solidity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matter-labs","download_url":"https://codeload.github.com/matter-labs/era-compiler-solidity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matter-labs%2Fera-compiler-solidity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273423142,"owners_count":25103140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["team-compiler"],"created_at":"2025-06-29T08:38:33.760Z","updated_at":"2025-10-23T22:02:56.360Z","avatar_url":"https://github.com/matter-labs.png","language":"Rust","funding_links":[],"categories":["Solidity"],"sub_categories":["Other dialects and variants"],"readme":"# ZKsync Era: Solidity Compiler\r\n\r\n[![Logo](eraLogo.svg)](https://zksync.io/)\r\n\r\nZKsync Era is a Layer 2 rollup that uses zero-knowledge proofs to scale Ethereum without compromising on security or decentralization. As it is EVM-compatible (with Solidity/Vyper), the majority of Ethereum projects can be redeployed without refactoring and re-auditing. ZKsync Era uses an LLVM-based compiler toolchain that allows developers to design, implement, and optimize efficient language-specific features while benefiting from the extensive LLVM ecosystem.\r\n\r\nThis repository contains the ZKsync Compiler for Solidity and Yul.\r\n\r\n## Installation\r\n\r\nTo install the *zksolc* compiler, follow our [installation guide](https://matter-labs.github.io/era-compiler-solidity/latest/01-installation.html).\r\n\r\nFor local development, [build zksolc from its source code](https://matter-labs.github.io/era-compiler-solidity/latest/01-installation.html#building-from-source).\r\n\r\n## Usage\r\n\r\nFor the detailed usage guide, see the [comprehensive documentation](https://matter-labs.github.io/era-compiler-solidity/latest/).\r\n\r\nOur documentation uses the [mdBook](https://github.com/rust-lang/mdBook) utility and its sources available at the `docs/` directory.\r\nTo build the documentation, follow the [instructions](./docs/README.md).\r\n\r\nAlternatively, you may check out its Markdown representation in [this repository](./docs/src/).\r\n\r\n## Testing\r\n\r\nTo run the unit and CLI tests, execute `cargo test` from the repository root.\r\n\r\n## Troubleshooting\r\n\r\nIf you have multiple LLVM builds in your system, ensure that you choose the correct one to build the compiler.\r\nThe environment variable `LLVM_SYS_191_PREFIX` sets the path to the directory with LLVM build artifacts, which typically ends with `target-llvm/build-final`.\r\nFor example:\r\n\r\n```shell\r\nexport LLVM_SYS_191_PREFIX=~/repositories/era-llvm/target-llvm/build-final \r\n```\r\n\r\nIf you suspect that the compiler is not using the correct LLVM build, check by running `set | grep LLVM`, and reset all LLVM-related environment variables.\r\n\r\nFor reference, see [llvm-sys](https://crates.io/crates/llvm-sys) and [Local LLVM Configuration Guide](https://llvm.org/docs/GettingStarted.html#local-llvm-configuration).\r\n\r\n## License\r\n\r\nThe Solidity compiler is distributed under the terms of either\r\n\r\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\r\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\r\n\r\nat your option.\r\n\r\n## Resources\r\n\r\n- [zksolc documentation](https://matter-labs.github.io/era-compiler-solidity/latest/)\r\n- [ZKsync Era compiler toolchain documentation](https://docs.zksync.io/zk-stack/components/compiler/toolchain)\r\n- [Solidity documentation](https://docs.soliditylang.org/en/latest/)\r\n\r\n## Official Links\r\n\r\n- [Website](https://zksync.io/)\r\n- [GitHub](https://github.com/matter-labs)\r\n- [Twitter](https://x.com/zksync)\r\n- [Twitter for Devs](https://x.com/ZKsyncDevs)\r\n- [Discord](https://join.zksync.dev/)\r\n\r\n## Disclaimer\r\n\r\nZKsync Era has been through extensive testing and audits, and although it is live, it is still in alpha state and\r\nwill undergo further audits and bug bounty programs. We would love to hear our community's thoughts and suggestions\r\nabout it!\r\nIt's important to note that forking it now could potentially lead to missing important\r\nsecurity updates, critical features, and performance improvements.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatter-labs%2Fera-compiler-solidity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatter-labs%2Fera-compiler-solidity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatter-labs%2Fera-compiler-solidity/lists"}