High-performance, modular implementation of an ERC-4337 bundler
🚧 Under active development, see status below. 🚧
Rundler (Rust Bundler) is an ERC-4337 bundler implementation written in Rust. Rundler is designed to achieve high-performance and high-reliability in cloud deployments via a modular architecture.
Built, maintained, and used by Alchemy to push the limits of user experience on EVM chains via Account Abstraction.
Rundler is meant to power the ERC-4337 ecosystem with an implementation that users can rely on to scale to their needs while maintaining high reliability. As ERC-4337 is a nascent technology, Rundler strives to be on the bleeding edge of feature support and the team will be contributing to push the protocol forward.
Our goals with Rundler:
Rundler is under active development. It is used in Alchemy's cloud to power Alchemy's Account Abstraction APIs. However, Rundler is rapidly being upgraded, features are being added, interfaces will have breaking changes, and the ERC-4337 spec is evolving from onchain learnings.
The documentation is work in progress, and we are working to improve it. Please reach out with any questions.
Use in production at your own risk.
Rundler currently supports the following Entry Point versions:
See more on Entry Point support here.
Rundler has been tested on the following networks and their testnets:
See CONTRIBUTING.md.
The easiest way to run Rundler is via a docker container. There is currently no pre-built image. See our docker documentation for further instructions.
For detailed instructions see developing.
Install prerequisites.
Clone the repository and checkout submodules:
git clone https://github.com/alchemyplatform/rundler
cd rundler
git submodule update --init --recursive
Run unit tests:
make test-unit
Run ERC-4337 spec tests:
# Only need to run once to install testing frameworks
cd test/spec-tests/v0_6/bundler-spec-tests && pdm install && pdm run update-deps
cd test/spec-tests/v0_7/bundler-spec-tests && pdm install && pdm run update-deps
# Run the v0.6 and v0.7 tests
make test-spec-integrated
If you have questions regarding the Rundler codebase, please first look through our documentation.
With further questions:
If you have questions regarding Alchemy's APIs or service, kindly refrain from discussion here. Please join the Discord or reach out to support@alchemy.com.
For security concerns do not file a public ticket, please reach out to security@alchemy.com.
See SECURITY.md for details.
The work on this project would not have been possible without the amazing contributions from:
The Rundler library (i.e. all code outside of the bin
directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.
The Rundler binaries (i.e. all code inside of the bin
directory) are licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.
The Rundler library and binaries are licensed under Unicode License v3.0, also included in the UNICODE file.
Copyright 2023 Alchemy Insights, Inc.
Contact: Alchemy Insights, Inc., 548 Market St., PMB 49099, San Francisco, CA 94104; legal@alchemy.com