{"id":21526889,"url":"https://github.com/lambdaclass/ethrex","last_synced_at":"2026-05-08T22:04:31.042Z","repository":{"id":242086395,"uuid":"808266543","full_name":"lambdaclass/ethrex","owner":"lambdaclass","description":"ethrex: Ethereum Rust Execution L1 and L2 client.","archived":false,"fork":false,"pushed_at":"2025-05-12T14:39:50.000Z","size":62684,"stargazers_count":352,"open_issues_count":367,"forks_count":56,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-12T14:39:54.421Z","etag":null,"topics":["blockchain","distributed-systems","ethereum","execution-layer","p2p","rollup","rollups","rust","zero-knowledge"],"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/lambdaclass.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-30T18:00:35.000Z","updated_at":"2025-05-12T10:25:06.000Z","dependencies_parsed_at":"2024-07-22T15:32:09.955Z","dependency_job_id":"0f1a2db0-647c-4584-9cfa-0041b184a0a7","html_url":"https://github.com/lambdaclass/ethrex","commit_stats":null,"previous_names":["lambdaclass/ethereum_rust","lambdaclass/ethrex","lambdaclass/lambda_ethereum_rust"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fethrex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fethrex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fethrex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fethrex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lambdaclass","download_url":"https://codeload.github.com/lambdaclass/ethrex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254436949,"owners_count":22070947,"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","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":["blockchain","distributed-systems","ethereum","execution-layer","p2p","rollup","rollups","rust","zero-knowledge"],"created_at":"2024-11-24T01:47:01.515Z","updated_at":"2026-05-08T22:04:31.037Z","avatar_url":"https://github.com/lambdaclass.png","language":"Rust","funding_links":[],"categories":["Blockchains","Execution","Rust"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/ethrex_banner.jpeg\" alt=\"ethrex banner\"\u003e\n\u003c/p\u003e\n\n# ethrex\n\nMinimalist, stable, modular, fast, and ZK native implementation of the Ethereum protocol in Rust.\n\n[![Telegram Chat][tg-badge]][tg-url]\n[![license](https://img.shields.io/github/license/lambdaclass/ethrex)](/LICENSE)\n\n[tg-badge]: https://img.shields.io/endpoint?url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fethrex_client%2F\u0026logo=telegram\u0026label=chat\u0026color=neon\n[tg-url]: https://t.me/ethrex_client\n\n## Getting started\n\nFor instructions on how to get started using ethrex L1 and/or L2, please refer to the [\"Getting started\" section of the docs](https://docs.ethrex.xyz/getting-started/index.html).\n\n## L1 and L2 support\n\nThis client supports running in two different modes:\n\n* **ethrex L1** - As a regular Ethereum execution client\n* **ethrex L2** - As a multi-prover ZK-Rollup (supporting SP1, RISC Zero and TEEs), where block execution is proven and the proof sent to an L1 network for verification, thus inheriting the L1's security. Support for based sequencing is currently in the works.\n\n## Why ZK-Native?\n\nethrex was built from the ground up with zero-knowledge proving in mind. This isn't a feature bolted onto an existing client—it's a core design principle that shapes how we structure execution, state management, and our entire architecture.\n\n**For L1 node operators:**\n- Integrations with multiple zkVMs (SP1, RISC Zero, ZisK, OpenVM) allow you to prove Ethereum block execution\n- ZK-optimized data structures reduce proving overhead\n- Lightweight codebase means less complexity when running alongside provers\n\n**For L2 builders:**\n- Multi-prover ZK-Rollup architecture supports SP1, RISC Zero, and TEEs out of the box\n- Proof aggregation through [Aligned Layer](https://alignedlayer.com/) integration\n- Same execution client for L1 and L2 means consistent behavior and easier debugging\n\nSee our [zkVM integrations documentation](https://docs.ethrex.xyz/zkvm-integrations.html) for details on supported proving backends.\n\n## Philosophy\n\nMany long-established clients accumulate bloat over time. This often occurs due to the need to support legacy features for existing users or through attempts to implement overly ambitious software. The result is often complex, difficult-to-maintain, and error-prone systems.\n\nIn contrast, our philosophy is rooted in simplicity. We strive to write minimal code, prioritize clarity, and embrace simplicity in design. We believe this approach is the best way to build a client that is both fast and resilient. By adhering to these principles, we will be able to iterate fast and explore next-generation features early, either from the Ethereum roadmap or from innovations from the L2s.\n\nRead more about our engineering philosophy [in this post of our blog](https://blog.lambdaclass.com/lambdas-engineering-philosophy/).\n\n## Design Principles\n\n- Ensure effortless setup and execution across all target environments.\n- Be vertically integrated. Have the minimal amount of dependencies.\n- Be structured in a way that makes it easy to build on top of it, i.e rollups, vms, etc.\n- Have a simple type system. Avoid having generics leaking all over the codebase.\n- Have few abstractions. Do not generalize until you absolutely need it. Repeating code two or three times can be fine.\n- Prioritize code readability and maintainability over premature optimizations.\n- Avoid concurrency split all over the codebase. Concurrency adds complexity. Only use where strictly necessary.\n\n\u003cimg width=\"100%\" alt=\"Lines of Code comparison chart for Ethereum clients\" src=\"https://github.com/user-attachments/assets/ebf83d67-7150-44ba-a8d8-f0e657d4a19d\" /\u003e\n\n_(Data from main branch of each project at 2025/10/08)_\n\n## 🗺️ Roadmap\n\nYou can find our current and planned features in our roadmap page.\n\n[View the roadmap →](./ROADMAP.md)\n\n## 📖 Documentation\n\nFull documentation is available in the [`docs/`](./docs/) directory. Please refer to it for setup, usage, and development details.\nFor better viewing, we have it hosted in [docs.ethrex.xyz](https://docs.ethrex.xyz/).\nThis includes both [L1](https://docs.ethrex.xyz/l1/index.html) and [L2](https://docs.ethrex.xyz/l2/index.html) documentation.\n\n\n## 📚 References and acknowledgements\n\nThe following links, repos, companies and projects have been important in the development of this repo, we have learned a lot from them and want to thank and acknowledge them.\n\n- [Ethereum](https://ethereum.org/en/)\n- [Starkware](https://starkware.co/)\n- [Polygon](https://polygon.technology/)\n- [Optimism](https://www.optimism.io/)\n- [Arbitrum](https://arbitrum.io/)\n- [ZKsync](https://zksync.io/)\n- [Geth](https://github.com/ethereum/go-ethereum)\n- [Taiko](https://taiko.xyz/)\n- [RISC Zero](https://risczero.com/)\n- [SP1](https://github.com/succinctlabs/sp1)\n- [Nethermind](https://www.nethermind.io/)\n- [Gattaca](https://github.com/gattaca-com)\n- [Spire](https://www.spire.dev/)\n- [Commonware](https://commonware.xyz/)\n- [Gravity](https://docs.gravity.xyz/research/litepaper)\n\nIf we forgot to include anyone, please file an issue so we can add you. We always strive to reference the inspirations and code we use, but as an organization with multiple people, mistakes can happen, and someone might forget to include a reference.\n\n## Security\n\nWe take security seriously. If you discover a vulnerability in this project, please report it responsibly.\n\n- You can report vulnerabilities directly via the **[GitHub \"Report a Vulnerability\" feature](../../security/advisories/new)**.\n- Alternatively, send an email to **[security@lambdaclass.com](mailto:security@lambdaclass.com)**.\n\nFor more details, please refer to our [Security Policy](./.github/SECURITY.md).\n\n## Contributing\n\nWe welcome contributions!  \nCheck out [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions and PR guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdaclass%2Fethrex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flambdaclass%2Fethrex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdaclass%2Fethrex/lists"}