Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Bundler Endpoints

All bundler endpoints follow the JSON-RPC 2.0 specification and are available at:

https://api.openfort.io/rpc/{chainId}

Include your Openfort publishable key in the Authorization header:

Authorization: Bearer YOUR_OPENFORT_PUBLISHABLE_KEY

eth_sendUserOperation

Submits a UserOperation to be included on-chain. Returns the userOpHash if successful.

Request (EntryPoint v0.8 & v0.9)

{
  "jsonrpc": "2.0",
  "method": "eth_sendUserOperation",
  "params": [
    {
      "sender": "0x5a6b47F4131bf1feAFA56A05573314BcF44C9149",
      "nonce": "0x845ADB2C711129D4F3966735ED98A9F09FC4CE5700000000000000000000",
      "factory": "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
      "factoryData": "0xc5265d5d...",
      "callData": "0xe9ae5c53...",
      "callGasLimit": "0x13880",
      "verificationGasLimit": "0x60B01",
      "preVerificationGas": "0xD3E3",
      "maxPriorityFeePerGas": "0x3B9ACA00",
      "maxFeePerGas": "0x7A5CF70D5",
      "paymaster": "0x...",
      "paymasterVerificationGasLimit": "0x0",
      "paymasterPostOpGasLimit": "0x0",
      "paymasterData": "0x...",
      "signature": "0xa6cc6589..."
    },
    "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108"
  ],
  "id": 1
}

Request (EntryPoint v0.6)

{
  "jsonrpc": "2.0",
  "method": "eth_sendUserOperation",
  "params": [
    {
      "sender": "0xb341FEAFaF71b09089d03B7D114599f8F491EE45",
      "nonce": "0x0",
      "initCode": "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3...",
      "callData": "0x51945447...",
      "callGasLimit": "0x115b5c0",
      "verificationGasLimit": "0x249f0",
      "preVerificationGas": "0xeb11",
      "maxPriorityFeePerGas": "0x12a05f200",
      "maxFeePerGas": "0x5b08082fa",
      "paymasterAndData": "0x",
      "signature": "0xa6cc6589..."
    },
    "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
  ],
  "id": 1
}

Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x4c31ae84205a9c862dd8d0822f427fb516448451850ee6f65351951f6a2b2154"
}

Parameters

ParameterTypeDescription
senderAddressThe account making the operation
nonceHexUnique identifier for the request
factoryAddress(v0.8+) Factory contract for account deployment
factoryDataHex(v0.8+) Data for factory contract
initCodeHex(v0.6) Initialization code for the smart account
callDataHexData to pass during main execution
callGasLimitHexGas for main execution
verificationGasLimitHexGas for verification step
preVerificationGasHexGas for pre-verification
maxFeePerGasHexMaximum fee per gas (EIP-1559)
maxPriorityFeePerGasHexMaximum priority fee per gas
paymasterAddress(v0.8+) Paymaster contract address
paymasterVerificationGasLimitHex(v0.8+) Gas for paymaster verification
paymasterPostOpGasLimitHex(v0.8+) Gas for paymaster post-op
paymasterDataHex(v0.8+) Data for paymaster
paymasterAndDataHex(v0.6) Combined paymaster address and data
signatureHexSignature authorizing the operation

eth_estimateUserOperationGas

Estimates gas values for a UserOperation. Returns the estimated preVerificationGas, verificationGasLimit, and callGasLimit.

Request

{
  "jsonrpc": "2.0",
  "method": "eth_estimateUserOperationGas",
  "params": [
    {
      "sender": "0x...",
      "nonce": "0x0",
      "callData": "0x...",
      "signature": "0x..."
    },
    "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108"
  ],
  "id": 1
}

Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "preVerificationGas": "0xd3e3",
    "verificationGasLimit": "0x60b01",
    "callGasLimit": "0x13880"
  }
}

eth_getUserOperationReceipt

Returns the receipt of a UserOperation after it has been included on-chain.

Request

{
  "jsonrpc": "2.0",
  "method": "eth_getUserOperationReceipt",
  "params": [
    "0x4c31ae84205a9c862dd8d0822f427fb516448451850ee6f65351951f6a2b2154"
  ],
  "id": 1
}

Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "userOpHash": "0x4c31ae84205a9c862dd8d0822f427fb516448451850ee6f65351951f6a2b2154",
    "entryPoint": "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108",
    "sender": "0x5a6b47F4131bf1feAFA56A05573314BcF44C9149",
    "nonce": "0x0",
    "paymaster": "0x...",
    "actualGasCost": "0x5208",
    "actualGasUsed": "0x5208",
    "success": true,
    "logs": [],
    "receipt": {
      "transactionHash": "0x...",
      "blockNumber": "0x...",
      "blockHash": "0x..."
    }
  }
}

eth_getUserOperationByHash

Retrieves a UserOperation by its hash.

Request

{
  "jsonrpc": "2.0",
  "method": "eth_getUserOperationByHash",
  "params": [
    "0x4c31ae84205a9c862dd8d0822f427fb516448451850ee6f65351951f6a2b2154"
  ],
  "id": 1
}

Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "userOperation": {
      "sender": "0x...",
      "nonce": "0x0",
      "callData": "0x..."
    },
    "entryPoint": "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108",
    "blockNumber": "0x...",
    "blockHash": "0x...",
    "transactionHash": "0x..."
  }
}

eth_supportedEntryPoints

Returns the list of EntryPoint contracts supported on the current chain.

Request

{
  "jsonrpc": "2.0",
  "method": "eth_supportedEntryPoints",
  "params": [],
  "id": 1
}

Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
    "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108",
    "0x433709009B8330FDa32311DF1C2AFA402eD8D009"
  ]
}
Copyright © 2023-present Alamas Labs, Inc