--- title: ERC-4337 Progress report #0 --- # ERC-4337 Progress report #0 ###### Thursday, July 7, 2022 Hello everyone. We are glad to see work on the ERC-4337 accelerating and also to see new people joining in every day! Trying to keep everyone in the loop, we will post a bi-weekly progress report for all projects in the ERC-4337 family. For the first progress report I will just list the projects and components that were created in relation to the ERC-4337 that I am aware of. Please DM me if I have missed anything and I will add it to the document. 1. UserOp Block Builder Bundler The main mode of operation for ERC-4337 network requires at least some share of network Block Builders (Miners, Validators, Sequencers etc.) to natively support UserOps into their public P2P mempool and using those UserOps to create a bundle and include an EntryPoint transaction in the block. Implementations: | Project | Language | Status | Repository | | -| - | - | - | | [Nethermind](https://nethermind.io/) | C# | In progress <br> Running on Görli | [GitHub](https://github.com/NethermindEth/nethermind/tree/master/src/Nethermind/Nethermind.AccountAbstraction) | | [Nethermind](https://nethermind.io/) | Go | In progress <br> Forked from MEV-geth| [GitHub](https://github.com/NethermindEth/mev-aa-geth) | Help needed: We need to bring this functionality to a higher number of networks and implementations of Ethereum-based protocols: Geth, Erigon, Optimism, Arbitrum etc. 2. UserOp Mempool ERC-4337 Compliance Code Validation In order to provide DoS resistance, the UserOp mempool must follow the strict rules defined in the ERC-4337. Without those checks, the mempool can be filled with invalid transactions to a point where the Block Builder is stuck. All Block Builder Bundler implementations must have this module. Implementations: | Project | Status | | -| - | | [Nethermind](https://nethermind.io/) | Not implemented | 3. UserOp Standalone MEV Bundler While we are working on a public P2P UserOp mempool, the main advantage of the ERC-4337 can be leveraged by relying on private mempools, such as the ones managed by the Flashbots team. This is a stop-gap solution that allows the ERC-4337 to be 100% functional today. Status: Help needed. No implementations started yet. 4. BLS Aggregation Bundler In order to enable Account Abstraction wallets to use BLS signatures we must also enable the ERC-4337 to support aggregated signatures. We also need a Bundler that is compatible with aggregated BLS signatures. Status: Help needed. No implementations started yet. 5. ERC-4337 Client SDK We want to make integration of ERC-4337 into various wallets and dapps to be as simple as possible. We also want to allow dapps to reuse existing wallets, such as MetaMask, while still benefiting from ERC-4337. In order to do so we will provide and ERC-4337 Client SDK for both wallets and dapps. Implementations: | Project | Language | Status | Repository | | -| - | - | - | | [Infinitism](https://twitter.com/infinitism8) | TypeScript | Early prototype | [GitHub](https://github.com/eth-infinitism/account-abstraction) | | Unnamed ERC-4337 Fan Club Project | N/A | N/A | Starting | 6. Aggregated Signature Verification Smart Contract (BLS) Adding Aggregated Signatures support to ERC-4337 requires a delegation of signature check to an external contract that is not part of a Wallet or EntryPoint specification. Implementations: | Project | Language | Status | Repository | | -| - | - | - | | [Infinitism](https://twitter.com/infinitism8) | Solidity | Early prototype | [GitHub](https://github.com/eth-infinitism/account-abstraction/pull/94) | 7. EntryPoint Smart Contract The main contract of the ERC-4337. Implementations: | Project | Language | Status | Repository | | -| - | - | - | | [Infinitism](https://twitter.com/infinitism8) | Solidity | Ready. Audited and deployed. <br> Missing signature aggregation support. | [GitHub](https://github.com/eth-infinitism/account-abstraction) | | [Stackup](https://www.stackup.sh/) | Solidity | Ready. Not audited. | [GitHub](https://github.com/stackupfinance/stackup/blob/main/apps/contracts/contracts/entrypoint/EntryPoint.sol) | 8. Production Grade ERC-4337 Paymasters The ERC-4337 allows an external contract, named Paymaster, to pay for the transaction execution. We must provide implementations of such contracts for the most common use-cases. Implementations: | Project | Language | Status | Repository | | -| - | - | - | | [Infinitism](https://twitter.com/infinitism8) | Solidity | In progress <br> First ones ready and audited | [GitHub](https://github.com/eth-infinitism/account-abstraction/tree/main/contracts/samples) | 9. Production Grade ERC-4337 ECDSA Proxy Wallet Smart Contract The main mode of operation for ERC-4337 assumes each user will get their identity represented by a Proxy Wallet. This means that having a secure implementation for such wallet is critical. This also implies that we must guarantee that users' Proxy Wallet addresses will be deterministic and consistent across networks, same as with EOAs. Implementations: | Project | Language | Comment | Status | Repository | | -| - | - | - | - | | [Infinitism](https://twitter.com/infinitism8) | Solidity | Gnosis Safe Module | Prototype | [GitHub](https://github.com/eth-infinitism/account-abstraction/tree/develop/contracts/gnosis) | [Biconomy](https://biconomy.io/) | Solidity | ERC-191 and ERC-1271 signatures | In progress | [GitHub](https://github.com/bcnmy/scw-contracts) 10. ERC-4337 BLS Proxy Wallet Smart Contract Implementations: | Project | Language | Status | Repository | | -| - | - | - | | [Web3Well](https://github.com/web3well) | Solidity | In progress <br> Relies on custom non-4337 based infrastructure | [GitHub](https://github.com/web3well/bls-wallet) 11.Production Grade ERC-4337 Native Client Wallet While the ERC-4337 does not specify a signature scheme, dapps relying on MetaMask to use an ERC-191 or ERC-712 signature for the UserOp is not an optimal user experience. We want the Client Wallets to support Proxy Wallet addresses and their UserOp transactions natively with a dedicated standard signature scheme. Until we can get some old school wallets to add ERC-4337 support, we intend to maintain our own set of Client Wallets with a help from a community. Implementations: | Project | Wallet Type | Language | Status | Repository | | -| - | - | - | - | | [Stackup](https://www.stackup.sh/) | Mobile app | TypeScript <br> ReactNative | In progress | [GitHub](https://github.com/stackupfinance/stackup) |[Candide](https://www.candidewallet.com/)| Mobile app | Dart/Flutter | In progress<br>Code not published | [GitHub](https://github.com/candidelabs)| | Unnamed ERC-4337 Fan Club Project <br> (@zengjiajun, @jhfnetboy, @z_cejay, @StaritMe) | Browser Extension | N/A | Starting | N/A | 12. Documentation and tutorials Resources: | Authors | Name | Type | Links | | - | - | - | - | | Vitalik Buterin, Yoav Weiss, Kristof Gazso et al. | ERC-4337 | Specification | https://eips.ethereum.org/EIPS/eip-4337 | | Infinitism & ERC-4337 Fan Club | Official Documentation | ReadTheDocs | https://www.eip4337.com/ <br> <br> [GitHub](https://github.com/eth-infinitism/aa-docs)