Dedicated Bundler Setup
Ensure you have bundlers on your network, hosted by Stackup but dedicated to you.
Overview
There are three steps you need to take to get ERC-4337 deployed on a custom blockchain:
- Submit a request at the dedicated infrastructure intake page.
- Deploy the ERC-4337 contracts to your blockchain.
- Transfer funds into the bundlers.
1. Submit a request
Stackup can deploy ERC-4337 on any EVM equivalent blockchain, and most EVM compatible blockchains. Your request needs to include an RPC URL. This is the URL of the blockchain node endpoint that connect to your network.
This endpoint must be a full node with the debug
API enabled. The debug
namespace is used by the bundler to simulate user operations, and must be enabled for the bundler to work properly.
2. Deploy ERC-4337 contracts
The Ethereum Foundation has provided tools for deploying the EntryPoint and SimpleAccount contracts to your blockchain.
- Clone the
account-abstraction
project from the Ethereum Foundation and install the dependencies.git clone [email protected]:eth-infinitism/account-abstraction.git cd account-abstraction git checkout releases/v0.6 yarn install
- Open
hardhat.config.ts
and add your network to theconfig
object as shown below.yourNetwork
is the name of your networkurl
is a string that contains the RPC URL of your nodeaccounts
is an array of private keys that will be used to deploy the accounts. Only enter one.
const config: HardhatUserConfig = { solidity: { compilers: [{ version: '0.8.23', settings: { optimizer: { enabled: true, runs: 1000000 } } }], overrides: { 'contracts/core/EntryPoint.sol': optimizedComilerSettings, 'contracts/samples/SimpleAccount.sol': optimizedComilerSettings } }, networks: { yourNetwork: { url: 'your-url.com', accounts: [''] } }, mocha: { timeout: 10000 }, // @ts-ignore etherscan: { apiKey: process.env.ETHERSCAN_API_KEY } }
- Run
yarn run deploy --network yourNetwork
from the console.
3. Transfer funds to the bundlers
You will receive a list of bundler addresses from Stackup. These bundlers need to be funded to send transactions to the EntryPoint on behalf of smart accounts. To fund them, simply send the appropriate amount of your blockchain's native token. Typically you want sufficient funds for the bundler to accommodate at least one full block or a few hundred transactions, whichever is higher.
Updated 7 months ago