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:

  1. Submit a request at the dedicated infrastructure intake page.
  2. Deploy the ERC-4337 contracts to your blockchain.
  3. 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.

  1. 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
    
  2. Open hardhat.config.ts and add your network to the config object as shown below.
    • yourNetwork is the name of your network
    • url is a string that contains the RPC URL of your node
    • accounts 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
      }
    }
    
  3. 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.