The Bundler is a key component in the ERC-4337 stack, responsible for collecting, validating, and bundling UserOperations (UserOps) into transactions submitted to the EntryPoint contract on the blockchain. The Bundler APIs provide direct access to Alchemy's high-performance, scalable infrastructure (powered by Rundler), letting developers interact with a production-grade ERC-4337 bundler for reliable onchain submission of UserOps.
These endpoints follow the standard ERC-4337 JSON-RPC interface and support v0.6, v0.7, and v0.8 of the protocol, with optimizations for gas estimation, validation, and error handling.
If you want SDK-level access, use viem's createBundlerClient with alchemyTransport({ apiKey }) from @alchemy/common as the transport, and pass @alchemy/aa-infra's estimateFeesPerGas helper as the fee estimator. For a higher-level abstraction, use @alchemy/wallet-apis instead.
The Bundler APIs are a collection of JSON-RPC endpoints for working with transactions. Below are the available endpoints and the corresponding docs for each of them.
| Method | Description |
|---|---|
| eth_sendUserOperation | Submits a user operation to a Bundler. If the request is successful, the endpoint will return a user operation hash that the caller can use to look up the status of the user operation. If it fails, or another error occurs, an error code and description will be returned. |
| eth_estimateUserOperationGas | Estimates the gas values for a user operation. It returns the [preVerificationGas], [verificationGasLimit], and [callGasLimit] values associated with the provided user operation. |
| eth_getUserOperationByHash | Returns a user operation based on the given user operation hash. It returns the user operation along with extra information including what block/transaction it was included in. If the operation has not yet been included, it will return [null]. |
| eth_getUserOperationReceipt | Returns a user operation receipt ( metadata associated with the given user operation ) based on the given user operation hash. It returns [null] if the user operation has not yet been included. |
| rundler_maxPriorityFeePerGas | Returns a fee per gas that is an estimate of how much users should set as a priority fee in UOs for Rundler endpoints. |
| eth_supportedEntryPoints | Returns a list of Entrypoint contract addresses supported by the bundler endpoints. |