Today developers from various ERC-4337 projects met to discuss the implementation of a shared mempool for the protocol. A decentralized mempool is necessary for the adoption and health of the protocol, but one has not yet been developed. You can find the meeting notes here on github.
The meeting began by discussing the current state of bundler implementations. The reference implementation by the ERC-4337 team Infinitism and Stackup's bundler in Golang are the most up to date and pass all compatibility tests. The rest are in early stages. Nethermind has two ERC-4337 implementations that are about six months out of date, but do include a p2p protocol for broadcasting UserOperations similar to devp2p. A Rust implementation is in the early stages and Etherspot is working on a TypeScript implementation. Biconomy is using node.js and Candide is using Python for their implementations.
The design objectives for the mempool include making it as similar as possible to the Ethereum mainnet mempool and focusing on the P2P networking protocol. Interoperability with non-Ethereum EVMs is also a priority. The meeting determined that new message types specific to EIP-4337 will be necessary, including a block hash for simulations and a mempool ID for alternate mempools.
Other considerations discussed at the meeting included prioritization factors for bundlers and the relationship between bundlers and Ethereum nodes. It was determined that bundlers should be part of the node and have low latency access for simulations, though nothing in the protocol will require this.
Moving forward, Partha from Etherspot, Yoav from Infinitism, Jorge from Nethermind (if he agrees - he was volunteered after he left) and Hazim from Stackup will work on the new message types. We will meet again in three weeks. The goal of the meeting was to agree on a protocol for implementing a shared mempool for EIP-4337 and to ensure interoperability with other EVMs.
Test out Stackup's bundler for free!