Skip to main content

Configuration

Network Information

Immutable zkEVM TestnetImmutable zkEVM Mainnet
RPC Endpointhttps://rpc.testnet.immutable.comhttps://rpc.immutable.com
Chain ID1347313371
Native currency / gas tokentest-IMXIMX
Block explorerhttps://explorer.testnet.immutable.comhttps://explorer.immutable.com
Parent ChainSepoliaEthereum Mainnet

These default RPC endpoints have rate limits. For custom volume-based plans and RPC endpoints/features, please reach out to our third-party RPC provider QuickNode at nanthony@quicknode.com or @captainquick (Telegram). We have an ongoing enterprise and self-service pricing plan for those interacting with Immutable zkEVM via QuickNode.

A list of core contracts on Immutable zkEVM can be found here.

Configuration

Parameter(Developer) DescriptionValueImportance for gaming
Block PeriodThe minimum time for transactions to be sealed into a block and considered final.2 secondsMost games we talk to operate at high-frequency tick rates; a 2s block period and finality time are necessary to enable good gameplay.
Block Gas LimitThe maximum amount of gas available in a block.30MThis minimum bandwidth is necessary to facilitate in-game economies, gameplay, and trading. For the more advanced reader, this is equivalent to Ethereum’s entire block space capacity multiplied by 6 and dedicated to Immutable games.
Considering the block gas limit with the block time, our chain’s theoretical bandwidth is 30M gas per 2 seconds (or 15M gas per second.) If we take a regular native transfer that costs 21K gas, we can accommodate up to approximately 714 native transfers per second.
Block Gas TargetDeviation from this target will adjust the base fee in the subsequent block.15MThis is an initial heuristic as we must observe the severe short-term gas spikes that games are willing to accept. Half of the block gas limit is reasonably conservative, and we’ll increase it over time as we see the network functioning stably.
Base Fee Rate of ChangeThe maximum rate to adjust the base fee, increasing it when the network is congested and decreasing it when it's under-utilized, to maintain an equilibrium of block space demand i.e. the Block Gas Target. See EIP-1559.2%This parameter aims to smooth severe gas price fluctuations, especially during peak demands such as a game’s primary sale launch. We want to minimize the impact on neighboring games on Immutable zkEVM.
Price limit (minimum $IMX price per gas unit)The minimum price per gas unit. This enforces a minimum value for the GasTipCap and GasFeeCap of transactions (GasFeeCap must be >= GasTipCap) submitted to the chain. Note that the extractable or effective tip can be less than this number. E.g. if the baseFee is 7 and the GasTipCap/GasFeeCap is 1000, then the effective tip is GasFeeCap - baseFee = 993, less than the GasTipCap.10 gwei-$IMXChain block capacity is a scarce resource; this price limit ensures that there will be a floor / minimum $IMX price per gas unit to prevent low-valued spam.
Note that this value will change depending on the $IMX price to ensure the chain remains cheap enough for games to transact while still being relevant to protect the chain from low-valued spam.

Gas Pricing

Configuring Gas Price for transaction

The network has introduced a minimum gas price of 10 gwei to protect it against SPAM traffic, ensure it can process transactions efficiently and remain cost-effective.

Minimum Gas Price: Transactions with a tip cap below 10 gwei are rejected by the RPC. This limit ensures a standard for transaction costs. This also implies that the fee cap must be greater than or equal to 10 gwei.

Notwithstanding the minimum tip cap, transactions will only be mined when the gas fee cap is greater than or equal to the base fee.

We generally expect the base fee to stay below the minimum gas tip cap.

Setting pricing details on a transaction

When you initiate a transaction, set the gas fee to ensure your transaction can be mined. Here's an example of how you would price a transaction:

const gasOverrides = {
maxPriorityFeePerGas: 10e9, // 10 gwei
maxFeePerGas: 15e9,
gasLimit: 200000, // Set an appropriate gas limit for your transaction
};

// Deploy the contract to the zkEVM network
const contract = await MyContract.deploy(gasOverrides);

For better pricing heuristics, please review the Ethereum RPC specification (e.g., see eth_feeHistory).

Adjusting pricing details for a MetaMask transaction

For MetaMask transactions, modify the gas price by following these steps:

  1. Start the transaction in your application
  2. When MetaMask opens, select 'Market' in the gas fee section
  3. Select 'Advanced' to set custom gas fees and limits
  4. Set the 'Priority Fee' to at least 10 gwei
  5. Save the values as your default for the Immutable zkEVM network
  6. Confirm the transaction with the adjusted settings

For a visual guide, see the gif below:

Adjust MetaMask gas