Accurately estimate gas costs for transactions to ensure reliable execution without overpaying. This guide covers gas estimation for simple transfers and smart contract interactions using , , and .

Prerequisites

You need Web3 libraries configured with Para authentication.

Setup Web3 Libraries

Estimate Gas for a Transaction

import { ethers } from "ethers";

async function estimateGas(
  provider: ethers.Provider,
  to: string,
  value: string,
  data?: string,
  maxFeePerGas?: string,
  maxPriorityFeePerGas?: string
) {
  const tx = {
    to,
    value: ethers.parseEther(value),
    data: data || "0x",
    ...(maxFeePerGas ? { maxFeePerGas: ethers.parseUnits(maxFeePerGas, "gwei") } : {}),
    ...(maxPriorityFeePerGas ? { maxPriorityFeePerGas: ethers.parseUnits(maxPriorityFeePerGas, "gwei") } : {})
  };

  const gasEstimate = await provider.estimateGas(tx);
  return gasEstimate;
}