Enable Bundler on your Chain

Installing the Conduit Bundler

1

Sign in

Log in to the Conduit app

2

Access Marketplace

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

3

Install Integration

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

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:

VersionAddress
v0.90x433709009B8330FDa32311DF1C2AFA402eD8D009
v0.80x4337084D9E255Ff0702461CF8895CE9E3b5Ff108
v0.70x0000000071727De22E5E9d8BAf0edAc6f37da032

EntryPoint 0.6.0 is not supported.

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.

ContractAddress
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.

Other Contracts

ContractVersionAddress
SimpleAccountFactoryv0.90xAD07bbb7bEA77E323C838481F668d22864e9F66E
SimpleAccountFactoryv0.80x13E9ed32155810FDbd067D4522C492D6f68E5944
SimpleAccountFactoryv0.70x0ACDDd4868E24aad6A16573b416133F58795A916
Simple7702Account (implementation)v0.90xa46cc63eBF4Bd77888AA327837d20b23A63a56B5
Simple7702Account (implementation)v0.80x4Cd241E8d1510e30b2076397afc7508Ae59C66c9
TestCounter0x475d5a5B128c1846b86493b357e75E27201447B7

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.

For more details, refer to release notes below :

v0.9 - release note

v0.8 - release note

Sending UserOperations

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

1

Estimate gas

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

$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:

1{
2 "jsonrpc": "2.0",
3 "id": 1,
4 "result": {
5 "preVerificationGas": "0xd8f0",
6 "verificationGasLimit": "0x...",
7 "callGasLimit": "0x...",
8 "paymasterVerificationGasLimit": "0x..."
9 }
10}
2

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.

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

3

Submit with updated PVG

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

$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"

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

Repository

You can find the Conduit Bundler repository here. This repository includes scripts to create a SimpleAccount, fund it, and send a test transaction.