> For a complete page index, fetch https://docs.conduit.xyz/llms.txt

# Enable Bundler on your Chain

> Learn how to install and use Conduit's Bundler. Step-by-step guide covering installation, supported RPC methods, contract addresses, and how to send UserOperations on your rollup.

## Installing the Conduit Bundler

#### Sign in

Log in to the [Conduit app](https://app.conduit.xyz)

#### Access Marketplace

In your chain dashboard, go to the `Marketplace` section, and find `Conduit Bundler` in the one-click installation section.

#### Install Integration

Click `Install integration` on the right side and wait for the Conduit Bundler to complete installation.

> **Note**
>
> When deploying a bundler through the **Conduit UI**, support for EntryPoint **v0.8 and v0.9** is automatically configured.\
> For existing mainnet deployments, newer EntryPoint versions may be enabled on request depending on the configuration.

## General Information

### Bundler URL & Supported RPC Methods

Once deployed, your bundler URL will be available at `https://bundler-{YOUR_NETWORK_SLUG}.t.conduit.xyz/<APIKEY>`. `APIKEY` might be not present or required depending on the configuration.

Our bundler supports all `eth`-namespaced RPC methods as specified in ERC-4337 including:

* `eth_chainId`
* `eth_supportedEntryPoints`
* `eth_estimateUserOperationGas`
* `eth_sendUserOperation`
* `eth_getUserOperationByHash`
* `eth_getUserOperationReceipt`

### Contracts

#### Entrypoint

Conduit Bundler supports the following ERC-4337 EntryPoint versions:

| Version | Address                                      |
| ------- | -------------------------------------------- |
| v0.9    | `0x433709009B8330FDa32311DF1C2AFA402eD8D009` |
| v0.8    | `0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108` |
| v0.7    | `0x0000000071727De22E5E9d8BAf0edAc6f37da032` |

EntryPoint `0.6.0` is not supported.

> **Note**
>
> EntryPoint **v0.9 is ABI-compatible with v0.7 and v0.8**, but introduces behavioral changes (e.g., paymaster flows and `initCode` handling).\
> Note: **signing semantics changed starting in v0.8** (EIP-712 typed data).\
> If your stack previously relied on v0.7 assumptions, review the migration notes below.

#### Safe Integration

The following two modules are compatible with Entrypoint `0.9.0` and are deployed with the Conduit bundler integration.

| Contract                          | Address                                      |
| --------------------------------- | -------------------------------------------- |
| Safe4337Module (version `0.3.0`)  | `0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226` |
| SafeModuleSetup (version `0.3.0`) | `0x2dd68b007B46fBe91B9A7c3EDa5A7a1063cB5b47` |

For turning your Safe wallet into a 4337-compatible smart account, see the [Safe documentation on ERC-4337](https://docs.safe.global/advanced/erc-4337/4337-safe).

#### Other Contracts

| Contract                           | Version | Address                                      |
| ---------------------------------- | ------- | -------------------------------------------- |
| SimpleAccountFactory               | v0.9    | `0xAD07bbb7bEA77E323C838481F668d22864e9F66E` |
| SimpleAccountFactory               | v0.8    | `0x13E9ed32155810FDbd067D4522C492D6f68E5944` |
| SimpleAccountFactory               | v0.7    | `0x0ACDDd4868E24aad6A16573b416133F58795A916` |
| Simple7702Account (implementation) | v0.9    | `0xa46cc63eBF4Bd77888AA327837d20b23A63a56B5` |
| Simple7702Account (implementation) | v0.8    | `0x4Cd241E8d1510e30b2076397afc7508Ae59C66c9` |
| TestCounter                        | —       | `0x475d5a5B128c1846b86493b357e75E27201447B7` |

## EntryPoint Version Notes

If your stack previously used **EntryPoint v0.7**, newer versions introduce several improvements.

### v0.8 Improvements

* UserOperation hashing uses **EIP-712 typed data**
* Native **EIP-7702 authorizations support** is added to the Entrypoint contract
* Improved unused gas penalty behavior
* `senderCreator()` helper for factory validation

### v0.9 Improvements

* **Parallelizable paymaster signatures** via `paymasterSignature`
* **Block-range validity windows** using `validAfter` / `validUntil` (block ranges are signaled via a top-bit flag)
* Improved diagnostics via:
  * `getCurrentUserOpHash()`
  * `IgnoredInitCode`
  * `EIP7702AccountInitialized`

### Important behavioral changes

Developers migrating from older versions should be aware of the following:

* **UserOperation signing changed in v0.8** (EIP-712 typed data)
* Accounts must be created through **UserOperation `initCode`**. `SimpleAccountFactory.createAccount()` can't be used directly and can only be called by **SenderCreator**
* Paymaster signature handling changed in v0.9 (`paymasterSignature` flow); malformed `paymasterData` / signature conventions may be rejected

Even though **v0.9 maintains ABI compatibility**, bundlers and mempools must understand the updated semantics for UserOperations to be accepted.

> **Note**
>
> For more details, refer to release notes below :
>
> v0.9 - [release note](https://github.com/eth-infinitism/account-abstraction/releases/tag/v0.9.0)
>
> v0.8 - [release note](https://github.com/eth-infinitism/account-abstraction/releases/tag/v0.8.0)

## Sending UserOperations

Use this three-step flow to handle dynamic `preVerificationGas` (PVG) networks and reliably submit UserOperations.

#### Estimate gas

Call `eth_estimateUserOperationGas` with your UserOperation. You can set `preVerificationGas` to `0x0` or omit it during estimation.

```bash
curl -s -X POST -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_estimateUserOperationGas",
    "params": [
      {
        "sender": "0x29657e08ba8c384c6e634149db8fb4e64ce29225",
        "nonce": "0x845adb2c711129d4f3966735ed98a9f09fc4ce5700000000000000000000",
        "callData": "0xe9ae5c53...",
        "callGasLimit": "0x238c",
        "verificationGasLimit": "0x462d8",
        "preVerificationGas": "0x0",
        "maxPriorityFeePerGas": "0xf4240",
        "maxFeePerGas": "0x1250f8",
        "factory": "0x2577507b78c2008ff367261cb6285d44ba5ef2e9",
        "factoryData": "0xea6d13ac...",
        "paymaster": "0xcb3871f1f320cd057a4170be2c15fee812919939",
        "paymasterVerificationGasLimit": "0x5033",
        "paymasterPostOpGasLimit": "0x0",
        "paymasterData": "0x00000000...",
        "signature": "0xc5c3ba33..."
      },
      "0x0000000071727De22E5E9d8BAf0edAc6f37da032"
    ]
  }' \
  "$RPC_URL"
```

Example response:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "preVerificationGas": "0xd8f0",
    "verificationGasLimit": "0x...",
    "callGasLimit": "0x...",
    "paymasterVerificationGasLimit": "0x..."
  }
}
```

#### Add a buffer

Since PVG is dynamic on DA-enabled networks, add a 10–20% buffer to account for price changes between estimation and submission.

> **Note**
>
> If the estimated PVG is `55,000` wei, a 20% buffer is `66,000` wei. Decimal
> `66,000` = Hex `0x101d0`.

#### Submit with updated PVG

Resubmit the UserOperation using `eth_sendUserOperation` with the updated `preVerificationGas` (including your buffer).

```bash
curl -s -X POST -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_sendUserOperation",
    "params": [
      {
        "sender": "0x29657e08ba8c384c6e634149db8fb4e64ce29225",
        "nonce": "0x845adb2c711129d4f3966735ed98a9f09fc4ce5700000000000000000000",
        "callData": "0xe9ae5c53...",
        "callGasLimit": "0x238c",
        "verificationGasLimit": "0x462d8",
        "preVerificationGas": "0x101d0", // your updated pre verification with buffer
        "maxPriorityFeePerGas": "0xf4240",
        "maxFeePerGas": "0x1250f8",
        "factory": "0x2577507b78c2008ff367261cb6285d44ba5ef2e9",
        "factoryData": "0xea6d13ac...",
        "paymaster": "0xcb3871f1f320cd057a4170be2c15fee812919939",
        "paymasterVerificationGasLimit": "0x5033",
        "paymasterPostOpGasLimit": "0x0",
        "paymasterData": "0x00000000...",
        "signature": "0xc5c3ba33..."
      },
      "0x0000000071727De22E5E9d8BAf0edAc6f37da032"
    ]
  }' \
  "$RPC_URL"
```

> **Note**
>
> If submission is delayed or conditions change, re-run estimation to refresh
> PVG before sending.

## Repository

You can find the Conduit Bundler repository [here](https://github.com/conduitxyz/account-abstraction). This repository includes scripts to create a SimpleAccount, fund it, and send a test transaction.