{"id":18088,"library":"aa-bundler-1","title":"AA Bundler","description":"Reference implementation of an EIP-4337 bundler for account abstraction on Ethereum. Current version 0.2.0, built by eth-infinitism. Supports production and debug RPC calls per bundler-spec-tests. Requires a GETH node with debug_traceCall and JavaScript tracer; does not work with Hardhat or Ganache without --unsafe flag. Includes SDK for creating UserOperations and utility contracts. Designed as modular reference for the EIP-4337 standard. Released as open-source with active maintenance.","status":"active","version":"0.2.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install aa-bundler-1","lang":"bash","label":"npm"},{"cmd":"yarn add aa-bundler-1","lang":"bash","label":"yarn"},{"cmd":"pnpm add aa-bundler-1","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Ethereum interaction and contract calls","package":"ethers","optional":false}],"imports":[{"note":"Package is ESM only; no CommonJS export","wrong":"const BundlerServer = require('@account-abstraction/bundler')","symbol":"BundlerServer","correct":"import { BundlerServer } from '@account-abstraction/bundler'"},{"note":"Named export, not default","wrong":"import UserOperation from '@account-abstraction/sdk'","symbol":"UserOperation","correct":"import { UserOperation } from '@account-abstraction/sdk'"},{"note":"Package has a default export for BundlerServer, but ESM import syntax differs","wrong":"import { default } from '@account-abstraction/bundler'","symbol":"default","correct":"import BundlerServer from '@account-abstraction/bundler'"},{"note":"Do not deep import from /dist","wrong":"import { InMemoryBundler } from '@account-abstraction/bundler/dist'","symbol":"InMemoryBundler","correct":"import { InMemoryBundler } from '@account-abstraction/bundler'"}],"quickstart":{"code":"import { BundlerServer } from '@account-abstraction/bundler';\nimport { JsonRpcProvider } from 'ethers';\n\nconst provider = new JsonRpcProvider('http://localhost:8545');\nconst bundler = new BundlerServer(\n  provider,\n  {\n    entryPoint: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',\n    beneficiary: '0xYourBeneficiaryAddress',\n    unsafe: false, // set true if not using GETH\n  }\n);\n\nbundler.start().then(() => {\n  console.log('Bundler running on http://localhost:3000/rpc');\n});","lang":"typescript","description":"Initializes a BundlerServer connected to a local GETH node and starts the HTTP RPC server."},"warnings":[{"fix":"Use a GETH node or pass --unsafe to skip security checks","message":"Bundler requires GETH node with debug_traceCall; Hardhat and Ganache will not work without --unsafe flag","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use correct entry point address for your contract version","message":"EntryPoint address must be 0x0000000071727De22E5E9d8BAf0edAc6f37da032 for v0.6 contracts","severity":"breaking","affected_versions":">=0.2.0"},{"fix":"Switch to using MNEMONIC env variable instead of --mnemonic file","message":"mnemonic file support may be removed in future versions; prefer environment variables","severity":"deprecated","affected_versions":">=0.2.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use GETH or add --unsafe flag","cause":"Running with non-GETH node without --unsafe","error":"Error: unsupported tracer"},{"fix":"Use import { BundlerServer } from '@account-abstraction/bundler'","cause":"Using require() on ESM-only package","error":"TypeError: BundlerServer is not a constructor"},{"fix":"Set entryPoint to 0x0000000071727De22E5E9d8BAf0edAc6f37da032 for v0.6","cause":"Wrong EntryPoint contract address","error":"Error: entry point address mismatch"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}