Bundler Endpoint

As per ERC-4337, Bundler is a node (block builder) that can handle UserOperations, create a valid an EntryPoint.handleOps() transaction, and add it to the block while it is still valid. This can be achieved by a number of ways:

  • Bundler can act as a block builder itself

  • If the bundler is not a block builder, it MUST work with the block building infrastructure such as mev-boost or other kind of PBS (proposer-builder separation)

  • The bundler can also rely on an experimental eth_sendRawTransactionConditional RPC API if it is available.

Utilize the following API to send the bundle of user operations to the bundler.

/senduserops

Prepare the data, to send the bundle of user operations, to the bundler.

POST https://api.expand.network/aa/senduserops

Request Body

Name
Type
Description

rpc

String

Remote procedural call URL.

chainId

String

Refer to the Chain ID page for details.

signature*

String

Data passed into the account along with the nonce during the verification step.

paymasterAndData*

String

Address of paymaster sponsoring the transaction, followed by extra data to send to the paymaster. (empty for self-sponsored transaction)

maxPriorityFeePerGas*

String

Maximum priority fee per gas. (similar to EIP-1559 max_priority_fee_per_gas)

maxFeePerGas*

String

Maximum fee per gas. (similar to EIP-1559 max_fee_per_gas)

preVerificationGas*

String

The amount of gas to pay for to compensate the bundler for pre-verification execution and calldata.

verificationGasLimit*

String

The amount of gas to allocate for the verification step.

gasLimit*

String

Maximum gas limit provided by the sender, for the transaction.

callGasLimit*

String

The amount of gas to allocate the main execution call.

callData*

String

The data to pass to the sender during the main execution call.

initCode*

String

The initCode of the account. (needed if and only if the account is not yet on-chain and needs to be created)

sender*

String

The account making the operation.

userOps*

Array

The user operation object as per ERC-4337.

chainSymbol

String

Refer to the Chain ID page for details.

bundler*

String

Beneficiary address for bundle execution.

gas*

String

Gas limit for bundler transaction.

Last updated