How to Estimate the Gas Limits for a User Operation
We recommend using permissionless.js to estimate user operations gas limits as it provides type-safe wrappers for all bundler methods.
To estimate the gas limits for a user operation, you need to use your Pimlico API key and make a JSON-RPC request as follows:
viem
import { createClient, http } from "viem"
const pimlicoApiKey = "YOUR_PIMLICO_API_KEY_HERE"
const chain = "sepolia" // find the list of supported chains at https://docs.pimlico.io/bundler
const pimlicoEndpoint = `https://api.pimlico.io/v2/${chain}/rpc?apikey=${pimlicoApiKey}`
const userOperation = ...
const entryPoint = "0x0000000071727De22E5E9d8BAf0edAc6f37da032"
const pimlicoClient = createClient({ transport: http(pimlicoEndpoint) })
const estimationResult = await pimlicoClient.request({
method: "eth_estimateUserOperationGas",
params: [userOperation, entryPoint]
})
const preVerificationGas = estimationResult.preVerificationGas
const verificationGasLimit = estimationResult.verificationGasLimit
const callGasLimit = estimationResult.callGasLimit
const paymasterVerificationGasLimit = estimationResult.paymasterVerificationGasLimit
const paymasterPostOpGasLimit = estimationResult.paymasterPostOpGasLimit