Configuration
Network Information
Immutable zkEVM Testnet | Immutable zkEVM Mainnet | |
---|---|---|
RPC Endpoint | https://rpc.testnet.immutable.com | https://rpc.immutable.com |
Chain ID | 13473 | 13371 |
Native currency / gas token | test-IMX | IMX |
Block explorer | https://explorer.testnet.immutable.com | https://explorer.immutable.com |
Parent Chain | Sepolia | Ethereum 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
Block Period
2 Seconds
The minimum time for transactions to be sealed into a block and considered final.
Importance For Gaming
Most 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 Limit
30 Million
The maximum amount of gas available in a block.
Importance For Gaming
This 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 Target
15 Million
Deviation from this target will adjust the base fee in the subsequent block.
Importance For Gaming
This 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 Change
2%
The 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.
Importance For Gaming
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
10 gwei-$IMX
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.
Importance For Gaming
Chain 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:
- Start the transaction in your application
- When MetaMask opens, select 'Market' in the gas fee section
- Select 'Advanced' to set custom gas fees and limits
- Set the 'Priority Fee' to at least 10 gwei
- Save the values as your default for the Immutable zkEVM network
- Confirm the transaction with the adjusted settings
For a visual guide, see the gif below: