{"id":26465374,"url":"https://github.com/Vid201/silius","last_synced_at":"2025-03-19T10:01:11.311Z","repository":{"id":63778216,"uuid":"555758437","full_name":"silius-rs/silius","owner":"silius-rs","description":"ERC-4337 (Account Abstraction) - modular and efficient bundler implementation in Rust.","archived":false,"fork":false,"pushed_at":"2024-06-17T18:58:50.000Z","size":3613,"stargazers_count":239,"open_issues_count":36,"forks_count":40,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-08-04T22:09:37.757Z","etag":null,"topics":["account-abstraction","bundler","eip-4337","erc-4337","ethereum","modular","p2p","rust"],"latest_commit_sha":null,"homepage":"http://silius.rs/","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/silius-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-22T08:57:55.000Z","updated_at":"2024-08-04T22:09:44.198Z","dependencies_parsed_at":"2023-09-26T19:13:13.029Z","dependency_job_id":"e14041e0-e664-4aab-b7ed-463d5f81a9c9","html_url":"https://github.com/silius-rs/silius","commit_stats":null,"previous_names":["vid201/silius","silius-rs/silius","vid201/aa-bundler"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silius-rs%2Fsilius","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silius-rs%2Fsilius/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silius-rs%2Fsilius/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silius-rs%2Fsilius/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silius-rs","download_url":"https://codeload.github.com/silius-rs/silius/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244403895,"owners_count":20447158,"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":["account-abstraction","bundler","eip-4337","erc-4337","ethereum","modular","p2p","rust"],"created_at":"2025-03-19T10:00:53.132Z","updated_at":"2025-03-19T10:01:11.289Z","avatar_url":"https://github.com/silius-rs.png","language":"Rust","funding_links":[],"categories":["Account Abstraction"],"sub_categories":[],"readme":"# \u003ch1 align=\"center\"\u003e Silius \u003c/h1\u003e\n\n![CI workflow](https://github.com/silius-rs/silius/actions/workflows/ci.yml/badge.svg)\n![Docker workflow](https://github.com/silius-rs/silius/actions/workflows/docker.yml/badge.svg)\n[![Telegram Group](https://img.shields.io/endpoint?color=neon\u0026style=flat-square\u0026url=https%3A%2F%2Ftg.sumanjay.workers.dev%2F%2BsKeRcN4j3MM3NmNk)](https://t.me/+sKeRcN4j3MM3NmNk)\n[![GitHub stars](https://img.shields.io/github/stars/silius-rs/silius.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://github.com/silius-rs/silius/stargazers/)\n[![GitHub forks](https://img.shields.io/github/forks/silius-rs/silius.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://github.com/silius-rs/silius/network/)\n\n\u003cp align=\"center\"\u003eSilius - \u003ca href=\"https://eips.ethereum.org/EIPS/eip-4337\"\u003eERC-4337 (Account Abstraction)\u003c/a\u003e bundler implementation in Rust.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./assets/logo.png\" width=\"450\"\u003e\n\u003c/p\u003e\n\nFor more information: \u003chttps://hackmd.io/@Vid201/aa-bundler-rust\u003e\n\n*This project is still under active development.*\n\n## Getting started\n\n### Native\n\n**Prerequisites:**\n\nRust version: 1.81.0\n\n1. `libclang-dev`, `pkg-config` and `libssl-dev` on Debian/Ubuntu.\n2. Ethereum execution client JSON-RPC API with enabled [`debug_traceCall`](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debug_tracecall). For production, you can use [Geth](https://github.com/ethereum/go-ethereum) or [Erigon](https://github.com/ledgerwatch/erigon). For testing, we are using Geth dev mode (tested with [v1.14.11](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.11)); so you need to install [Geth](https://geth.ethereum.org/docs/getting-started/installing-geth) for running tests.\n3. [`solc`](https://docs.soliditylang.org/en/v0.8.27/installing-solidity.html).\n4. [`cargo-sort`](https://crates.io/crates/cargo-sort) and [`cargo-udeps`](https://crates.io/crates/cargo-udeps).\n\nSet up third-party dependencies (ERC-4337 smart contracts and bundler tests):\n\n```bash\nmake fetch-thirdparty\nmake setup-thirdparty\n```\n\nCreate wallet for bundler:\n\n```bash\ncargo run --release -- create-wallet --output-path ${HOME}/.silius --chain-id 5\n```\n\nRun bundler (with user operation pool and JSON-RPC API):\n\n```bash\ncargo run --release -- node --eth-client-address http://127.0.0.1:8545 --mnemonic-file ${HOME}/.silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --http --ws\n```\n\nRun only bundling component:\n\n```bash\ncargo run --release -- bundler --eth-client-address ws://127.0.0.1:8546 --mnemonic-file ${HOME}/.silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789\n```\n\nRun only user operation pool:\n\n```bash\ncargo run --release -- uopool --eth-client-address ws://127.0.0.1:8546 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789\n```\n\nRun only JSON-RPC API:\n\n```bash\ncargo run --release -- rpc --http --ws\n```\n\n### Docker\n\n```bash\ndocker run --net=host -v ./bundler-spec-tests/keys/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266:/data/silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 -v ./.local/db:/data/silius/db ghcr.io/silius-rs/silius:latest node --eth-client-address http://127.0.0.1:8545 --datadir data/silius --mnemonic-file data/silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789 --http --http.addr 0.0.0.0 --http.port 3000 --http.api eth,debug,web3 --ws --ws.addr 0.0.0.0 --ws.port 3001 --ws.api eth,debug,web3 --eth-client-proxy-address http://127.0.0.1:8545\n```\n\n## Supported networks\n\nSilius was tested on the following networks, and some public endpoints are available for testing. If you have problems with any endpoint below, you are welcome to fire an [issue](https://github.com/silius-rs/silius/issues/new).\n\n| Chain         | Supported Status | Public RPC URL   |\n| :--------:    | :-------: | :-------: |\n| Ethereum | :heavy_check_mark:| \u003chttps://rpc.silius.xyz/api/v1/chain/ethereum-mainnet\u003e |\n| Ethereum Sepolia| :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/ethereum-sepolia\u003e |\n| Ethereum Holesky| :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/ethereum-holesky\u003e |\n| Polygon | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/polygon-mainnet\u003e |\n| Linea | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/linea-mainnet\u003e |\n| Optimism | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/optimism-mainnet\u003e |\n| Optimism Sepolia | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/optimism-sepolia\u003e |\n| Arbitrum | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/arbitrum-mainnet\u003e |\n| Arbitrum Sepolia | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/arbitrum-sepolia\u003e |\n| BSC | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/bsc-mainnet\u003e |\n| BSC Testnet | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/bsc-testnet\u003e |\n| Base | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/base-mainnet\u003e |\n| Base Sepolia | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/base-sepolia\u003e |\n| Avalanche | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/avalanche-mainnet\u003e |\n| Avalanche Fuji | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/avalanche-fuji\u003e |\n| Blast | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/blast-mainnet\u003e |\n| Blast Sepolia | :heavy_check_mark: | \u003chttps://rpc.silius.xyz/api/v1/chain/blast-sepolia\u003e |\n\nBundler's account: `0x0a4E15d25E97e747bD568979A3B7dbEb95970Eb3`\n\n**You can also try the Silius on any other EVM network, but you may encounter some problems (e.g., gas calculating differences on L2s) - please use it at our own risk! You are always welcome to open up a new issue when you meet any problem.** :warning:\n\n## Supported entry point\n\nThe address of the entry point smart contract is the same on all EVM networks.\n| Address    | Version   | Commit    | Audited   |\n| :--------: | :-------: | :-------: | :-------: |\n| [0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789](https://blockscan.com/address/0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789) | 0.6.0 | [9b5f2e4](https://github.com/eth-infinitism/account-abstraction/commit/9b5f2e4bb30a81aa30761749d9e2e43fee64c768) | [April 2023](https://blog.openzeppelin.com/eip-4337-ethereum-account-abstraction-incremental-audit)\n\n## Paymasters and account factories\n\nYou can find a list of many paymasters and account factories [here](https://docs.google.com/spreadsheets/d/1QJEYDOr-AMD2bNAoupfjQJYJabFgdb2TRSyekdIfquM/edit#gid=0).\n\n## Examples\n\nTo get started, check the examples [here](./examples/). More examples will be added in the future.\n\n## Contributing\n\nThank you for showing interest in contributing to the project!\n\nThere is [a contributing guide](./CONTRIBUTING.md) to help get you started.\n\nThere are some additional prerequisites for **testing**:\n\n1. [`geth`](https://geth.ethereum.org/docs/getting-started/installing-geth)\n\nBefore making a PR, make sure to run the following commands:\n\n```bash\nmake format\nmake lint\nmake test\n```\n\nOfficial [bundler spec tests](https://github.com/eth-infinitism/bundler-spec-tests) developed by the [eth-infinitism](https://github.com/eth-infinitism/) team are also included in the repo's CI pipeline (commit: [6209cdeaba48105cd7352468844be3882e7f3f23](https://github.com/eth-infinitism/bundler-spec-tests/tree/6209cdeaba48105cd7352468844be3882e7f3f23)). You can find more information on how to run tests [here](https://github.com/eth-infinitism/bundler-spec-tests). Make sure your contribution doesn't break the tests!\n\n## Contact\n\nThe best place for the discussion is the dedicated [Telegram group](https://t.me/+sKeRcN4j3MM3NmNk).\n\n## Authors\n\n- Vid Kersic: [GitHub](https://github.com/Vid201), [Twitter](https://twitter.com/vidkersic)\n- WillQ: [GitHub](https://github.com/zsluedem), [Twitter](https://twitter.com/zsluedem06)\n\n## Projects using Silius\n\n- [Luban the Paymaster](https://github.com/da-bao-jian/luban-the-paymaster): A Cross-chain Tx Sponsorship Protocol.\n- [Ethers UserOp](https://github.com/qi-protocol/ethers-userop/): An ether-rs middleware to craft UserOperations.\n\n## Licenses\n\nThis project is dual-licensed under Apache 2.0 and MIT terms:\n\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT License ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\n## Donations\n\nSilius is an open-source project and a public good. If you want to help the project, you can send donations of any size via:\n\n- Ethereum address: `0x7cB801446AC4f5EA8f7333EFc58ab787eB611558`\n\n## Acknowledgements\n\n- [Bundler - eth-infinitism](https://github.com/eth-infinitism/bundler)\n- [Akula](https://github.com/akula-bft/akula)\n- [ethers-rs](https://github.com/gakonst/ethers-rs)\n- [Reth](https://github.com/paradigmxyz/reth)\n- [Lighthouse](https://github.com/sigp/lighthouse)\n- [Alloy](https://github.com/alloy-rs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVid201%2Fsilius","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVid201%2Fsilius","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVid201%2Fsilius/lists"}