expand.network
  • Overview
  • Getting Started
  • 🔑How do I get my API Key?
  • 📑List of All Endpoints
  • ⚙️SDK
    • Overview
    • Getting Started
  • ⛓️INTEGRATIONS
    • ⚡Blockchains
      • EVM based blockchains
        • Ethereum
        • Binance Smart Chain
        • Avalanche - C
        • Avalanche - P
        • Avalanche - X
        • Polygon
        • Cronos
        • Arbitrum
        • Fantom
        • Optimism
        • Base
        • zkSync Era
        • Mantle
      • Non-EVM based chains
        • Tron
        • Solana
        • Near
        • Algorand
        • Aptos
        • Sui
        • Starknet
        • TON
        • Cosmos Hub
        • Osmosis
        • Stacks
        • Bitcoin
        • Stellar
          • Stellar RWA
        • XRP Ledger
          • XRP Ledger RWA
    • ⚡Bridges
      • Stargate
      • Stargate V2
      • Squid Router
      • Squid Router V2
      • Allbridge Classic
      • Allbridge Core
    • ⚡DEX & DEX Aggregators
      • Uniswap V2
      • Uniswap V3
      • Uniswap X
      • Sushiswap V2
      • PancakeSwap V2
      • PancakeSwap V3
      • Aerodrome
      • Camelot V3
      • Curve V2
      • Balancer V2
      • STON.fi
      • Trader Joe
      • Orca
      • Raydium
      • SDEX
      • Cetus
      • REF Finance
      • Liquidswap
      • Sologenic
      • Alex
      • 0x (Aggregator)
      • 1inch (Aggregator)
      • Kyberswap (Aggregator)
        • Kyberswap ( Limit Order Endpoints )
      • Jupiter (Aggregator)
    • ⚡Derivatives
      • dYdX V4
    • ⚡Fungible Tokens
      • ERC20
      • WETH
    • ⚡Lending Protocols
      • Aave V2
      • Aave V3
      • Compound V2
      • Compound V3
      • Morpho
    • ⚡Yield Aggregators
      • Yearn Finance V2
      • Harvest Finance
      • Pendle
    • ⚡Liquid Staking
      • Chorus One
      • Lido V2
      • Stader
      • Benqi
      • Jito
      • EigenLayer
    • ⚡Non Fungible Tokens
      • ERC721
      • ERC1155
      • Metaplex
    • ⚡Oracles
      • ChainLink
      • WinkLink
      • Pyth Network
      • RedStone
    • ⚡Stablecoins
      • EVM
    • ⚡Synthetics
      • Synthetix
    • ⚡Supported Wallets
      • MPC Wallets
        • DFNS
        • FORDEFI
        • FIREBLOCKS
        • CIRCLE
      • HD Wallets
        • PHANTOM
        • COINBASE
        • TON Wallet
      • Wallet Connect v2
  • How To
    • Execute a Local Swap
    • Execute a Cross Chain Swap
    • Use Limit Orders
    • Lend and Borrow
    • Provision Liquidity
      • Adding Liquidity
      • Removing liquidity
    • Yield Farm
    • Use Our Transaction Decoder
    • Submit an RFQ
    • Subscribe to Events
    • Stream Data (WebSocket)
      • Stream Transaction
      • Stream Trade
      • Stream Gas
      • Stream Ticker Price
    • Source Pricing
    • Track Memecoins
    • Manage Token Approvals
  • Use Cases
    • Trade Reconciliation
    • Portfolio Management
    • Trading Features
    • On-Chain Data: DEX Liquidity Pool Forensics
    • Transaction and Pool Analysis
  • Account Abstraction
    • Overview
      • User Endpoints
      • Paymaster Endpoint
      • Bundler Endpoint
    • ⚙️SDK - Overview
  • Additional Info
    • Error Messages
    • Client-Side Security Essentials
    • Compute Unit Costs
    • API Metadata
    • Audit Certificate
    • Brand Assets
    • FAQs
    • Quicknode Marketplace
      • DEX
      • Lending Protocols
  • ID's
    • Chain IDs
    • Bridge IDs
      • Internal Chain IDs for Bridges
    • DEX IDs
    • Lending Protocol IDs
    • Yield Aggregator ID
    • Liquid Staking IDs
    • Oracle IDs
    • Stablecoin IDs
    • Derivatives IDs
    • Synthetics IDs
  • Mapping
    • Blockchains
    • DEXs
      • Uniswap V2
      • Uniswap V3
      • Sushiswap
      • PancakeSwap
      • Curve
      • Balancer
    • Lending Protocols
      • Aave
      • Compound
  • Protocol Spender
    • Spender list
Powered by GitBook
On this page
  • 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.
  1. Account Abstraction
  2. Overview

Bundler Endpoint

PreviousPaymaster EndpointNextSDK - Overview

Last updated 1 month ago

As per , 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

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

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

chainSymbol

String

bundler*

String

Beneficiary address for bundle execution.

gas*

String

Gas limit for bundler transaction.

{
    "userOps": [
        {
            "sender": "0x03D3a52d79eeB5014dFe28258e8c0978Ecd8e65c",
            "nonce": "0",
            "initCode": "0x",
            "callData": "0x38ed173900000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000063056e00436da25bcf48a40dfbbdcc708935100600000000000000000000000000000000000000000000000000000000634d00ee0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b4fbf271143f4fbf7b91a5ded31805e42b2208d600000000000000000000000011fe4b6ae13d2a6055c8d9cf65c55bac32b5d844",
            "callGasLimit": "260611",
            "gasLimit": "362451",
            "verificationGasLimit": "362451",
            "preVerificationGas": "53576",
            "maxFeePerGas": "29964445250",
            "maxPriorityFeePerGas": "100000000",
            "paymasterAndData": "0x",
            "signature": "0x06ba793e154877ba4beff535372f70be6d2ebb5503f374297658caa13a114b5b29b5a45cd4835176e637018823bba5990b6f043f93fe792a5bdb2a09958ecca61c"
        }
    ],
    "bundler": "0x6Fb447Ae94F5180254D436A693907a1f57696900",
    "gas": "516124"
}
{
    "status": 200,
    "msg": "success",
    "data": {
        "from": "0x6Fb447Ae94F5180254D436A693907a1f57696900",
        "to": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
        "gas": "516124",
        "data": "0x1fad948c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000006fb447ae94f5180254d436a693907a1f576969000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000003d3a52d79eeb5014dfe28258e8c0978ecd8e65c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000003fa0300000000000000000000000000000000000000000000000000000000000587d3000000000000000000000000000000000000000000000000000000000000d14800000000000000000000000000000000000000000000000000000006fa0526420000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010438ed173900000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000063056e00436da25bcf48a40dfbbdcc708935100600000000000000000000000000000000000000000000000000000000634d00ee0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b4fbf271143f4fbf7b91a5ded31805e42b2208d600000000000000000000000011fe4b6ae13d2a6055c8d9cf65c55bac32b5d844000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004106ba793e154877ba4beff535372f70be6d2ebb5503f374297658caa13a114b5b29b5a45cd4835176e637018823bba5990b6f043f93fe792a5bdb2a09958ecca61c00000000000000000000000000000000000000000000000000000000000000",
        "value": "0"
    }
}

Refer to the page for details.

Maximum fee per gas. (similar to max_fee_per_gas)

The user operation object as per .

Refer to the page for details.

ERC-4337
Chain ID
EIP-1559
ERC-4337
Chain ID