estimateFeesPerGas
Returns an estimate for the fees per gas (in wei) for a transaction to be likely included in the next block.
If chain.fees.estimateFeesPerGas
is set on the Client Chain or override Chain, it will use the returned value.
Otherwise, for EIP-1559 Transactions, viem will estimate the fees using a combination of the block's base fee per gas (to derive maxFeePerGas
) + the estimateMaxPriorityFeePerGas
Action (to derive maxPriorityFeePerGas
). For Legacy Transactions, viem will estimate the fee based on the gas price (via the getGasPrice
Action).
Usage
example.ts
import { publicClient } from './client'
const {
maxFeePerGas,
maxPriorityFeePerGas
} = await publicClient.estimateFeesPerGas()
{ maxFeePerGas: 15_000_000_000n, maxPriorityFeePerGas: 1_000_000_000n, } const { gasPrice } = await publicClient.estimateFeesPerGas({
type: 'legacy'
})
{ gasPrice: 15_000_000_000n }
Returns
An estimate (in wei) for the fees per gas.
Parameters
chain (optional)
- Type: Chain
- Default:
client.chain
Optional Chain override. Used to infer the fees per gas from chain.fees.estimateFeesPerGas
.
import { optimism } from 'viem/chains'
const { maxFeePerGas, maxPriorityFeePerGas } =
await publicClient.estimateFeesPerGas({
chain: optimism
})
type (optional)
- Type:
"legacy" | "eip1559"
- Default:
"eip1559"
const { gasPrice } = await publicClient.estimateFeesPerGas({
type: 'legacy'
})