Differences in chain design inevitably lead to some unique chain-specific considerations. Below are idiosyncrasies we have identified, though it may not be comprehensive and we are interested in hearing if you encounter others.
The idiosyncrasies below relate to the
chains field of
config.json discussed in Configuring Airnode and Deployment Files section.
Gas prices on Avalanche mainnet are often underestimated when getting
type 0 estimates (e.g. for the
providerRecommendedGasPrice strategy). The error manifests as the
maxFeePerGas being set to less than the block
baseFeePerGas, resulting in unfulfilled requests. A solution to this is to set
recommendedGasPriceMultiplier to slightly greater than
Execution costs on Arbitrum are calculated slightly differently than Ethereum, which impacts the gas required to fulfill requests. To account for this, it is recommended to use a minimum value of
fulfillmentGasLimit when using both Arbitrum mainnet and testnet. Read more about ArbGas➚ gas and fees.
On the Metis testnet Stardust, though not on the Metis mainnet Andromeda, it is recommended to use a
fulfillmentGasLimit of at least
type 0 transaction types is recommended over
type 2 so the use of
providerRecommendedEip1559GasPrice is discouraged.
As a L2 scaling solution, Optimism has an L1 data fee and an L2 execution fee, which are accounted for separately. To cover the L1 data fee when a sponsor requests a withdrawal, an amount has to be subtracted from the funds returned to the sponsor. The
withdrawalRemainder parameter has been introduced specifically for this reason, though the value required will differ between Optimism mainnet and testnet due to differences in L1 gas fees. For Optimism testnet, a
1 gwei should suffice, while for Optimism mainnet, a value as high as
2.4 finney (
2400000 gwei) may be required in order to cover an L1 gas price of
300 gwei and
8000 L1 gas used by the transaction.