Transaction Fee Configuration
Configure the transaction fee for an Avalanche L1
Configuration Format
The fees are configured in the chainConfig
in the feeConfig
field:
Gas Configuration Parameters
gasLimit
Sets the maximum amount of gas consumed per block. This restriction caps the computational capacity of a single block and thereby limits the maximum gas usage allowed for any single transaction. For reference, the C-Chain value is set to 15,000,000.
You might notice that the gasLimit
field appears twice. This is because Avalanche introduced its own fee configuration under the feeConfig
key while maintaining compatibility with the standard EVM configuration. Ensure that both fields have the same decimal and hexadecimal equivalent values.
targetBlockRate
Specifies the target rate of block production in seconds. For instance, a target of 2 aims to produce a block every 2 seconds. If blocks are produced faster than this rate, it signals that more blocks are being issued to the network than anticipated, leading to an increase in base fees. For C-Chain, this value is set to 2.
minBaseFee
Establishes a lower bound on the EIP-1559 base fee for a block. This minimum base fee effectively sets the minimum gas price for any transaction included in that block.
targetGas
Indicates the targeted amount of gas (including block gas cost) to be consumed within a rolling 10-second window. The dynamic fee algorithm adjusts the base fee proportionally based on how actual network activity compares to this target. If network activity exceeds the targetGas
, the base fee is increased accordingly.
baseFeeChangeDenominator
Determines how much to adjust the base fee based on the difference between actual and target utilization. A larger denominator results in a slower-changing base fee, while a smaller denominator allows for quicker adjustments. For C-Chain, this value is set to 36, meaning the base fee changes by a factor of 1/36 of the parent block's base fee.
minBlockGasCost
Sets the minimum amount of gas charged for the production of a block. In the C-Chain, this value is set to 0.
maxBlockGasCost
Specifies the maximum amount of gas charged for the production of a block.
blockGasCostStep
Defines how much to increase or decrease the block gas cost based on the time elapsed since the previous block. If a block is produced at the target rate, the block gas cost remains the same as the parent block. If the production rate deviates from the target, the block gas cost is adjusted by the blockGasCostStep
value for each second faster or slower than the target block rate.