Silius Book
Documentation for Silius users and developers.
Account Abstraction has for a long time been a dream of the Ethereum developer community.
- Vitalik Buterin
Silius is an ERC-4337 (account abstraction) bundler implementation that is modular and highly efficient, written in the memory sasfe programming language Rust.
What are the design goals?
1. Modular
Architecture of the Silius is composed of multiple components - bundling component, user operation mempool, and JSON-RPC server. This allows you to customize your deployment and run only what you need.
2. Reusable
Each major feature is implemented as a separate Rust crate, which makes it possible to reuse code in your project as a building block.
3. Efficient
Efficiency is in our mind when we develop and merge new code. 🦀
Installation
Silius runs on Linux.
There are two main ways to run Silius:
Build from Source
You can build Silius on Linux.
Dependencies
First install Rust using rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
There are some other dependencies you need to install based on your operating system (OS):
- Ubuntu/Debian:
apt-get install libclang-dev pkg-config libssl-dev build-essential
Solidity compiler (solc) is also neded to build from source. Find instructions here.
Build Silius
Clone the repository and move to the directory:
git clone git@github.com:silius-rs/silius.git
cd silius
There are also some other third-party dependencies you need to setup (mainly ERC-4337 related smart contracts). These commands will clone the account abstraction repos and compile the smart contracts.
make fetch-thirdparty
make setup-thirdparty
After everything is setup, you can start the build:
make build // cargo build --release