Skip to main content

Cheat Sheet

This section provides quick access to the definitions of key concepts, terms and parameters that are essential to understanding and using Immutable zkEVM.

It is divided into sections by topic which you can browse using the sidebar on the right.
Cheat SheetCheat Sheet

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.

Blockchain Fundamentals


Bridge and bridging

Blockchain bridges work just like the bridges we know in the physical world. Just as a physical bridge connects two physical locations, a blockchain bridge connects two blockchain ecosystems and across layers (see L1 and L2). Bridges facilitate communication between blockchains through the transfer of information and assets.


L1 and L2

Blockchain consists of 5 layers: hardware infrastructure layer, data layer, network layer, consensus layer, and application layer. Ethereum is considered a "Layer 1" (L1) protocol. L2 or "Layer 2" is a term used to describe mechanisms that process batches of transactions independently of "Layer 1" (L1) and only periodically reports them to the main chain. This decreases the total number of transactions that have to be validated on Layer 1. Layer 2s are also known as "execution layers" or "rollups".


Rollup

"Rollups" perform transaction execution outside layer 1 and then the data is posted to layer 1 where consensus is reached. As transaction data is included in layer 1 blocks, this allows rollups to be secured by native Ethereum security. Typically you would also see "zero-knowledge rollups" or "optimistic rollups". Optimistic rollups are called “optimistic” because they assume all the Layer 2 transactions are valid until proven otherwise. On the other hand, ZK-rollups use a complex piece of cryptography called a zero-knowledge proof to prove the transactions' validity without knowing too much about the transactions' specifics.


zkEVM

zkEVM introduces 2 concepts. Zero-knowledge rollups which you can see above under "Rollups" and EVM compatibility, which stands for "Ethereum Virtual Machine Compatibility". This means creating an EVM-like (Solidity) code execution environment that makes it easy for Ethereum developers to migrate smart contracts to an EVM compatible chain without having to write the code from scratch again. Immutable zkEVM is the first of its kind - a chain for games that offers EVM compatibility, low cost, massive scale, and Ethereum security. The most cutting-edge technology in gaming with the largest ecosystem in Web3.


NFT

An NFT, or non-fungible token, is a type of digital asset that represents ownership of a unique item, like digital art, music, or virtual real estate. Unlike regular cryptocurrencies, which are all the same, each NFT is unique and cannot be exchanged one-for-one with another. They are stored on a blockchain, ensuring their authenticity and ownership. This makes NFTs ideal for proving ownership of rare or one-of-a-kind digital items.


SFT

An SFT, or semi-fungible token, is a type of digital asset that combines features of both fungible and non-fungible tokens. Initially, SFTs can be identical and interchangeable, like ERC-20 tokens, but they can also become unique and non-fungible, like NFTs, after a certain event or use. This flexible nature makes SFTs useful for things like gaming items that start off as the same but change as they are used. SFTs are stored on a blockchain, ensuring secure and transparent ownership.

Token Standards


ERC-20

An ERC-20 token is a type of cryptocurrency built on the Ethereum blockchain. It follows a standard set of rules, making it easy to create and use new tokens. All ERC-20 tokens are interchangeable, meaning one token is exactly like another in value and function. This makes them useful for creating in-game currencies.


ERC-721

An ERC-721 token is a type of non-fungible token (NFT) standard on the Ethereum blockchain that represents unique assets. Each ERC-721 token is distinct, making them ideal for representing ownership of individual items such as in-game assets.


ERC-1155

An ERC-1155 token is a versatile standard for creating both fungible and non-fungible tokens on the Ethereum blockchain. It allows for multiple types of tokens to be managed in a single contract, making it more efficient than older standards like ERC-20 and ERC-721. This means you can have both identical and unique items in one system, such as game assets or digital collectibles.


ERC-2981

A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal support for royalty payments across all NFT marketplaces and ecosystem participants.

NFT Concepts


Burning

Burning is the process of removing a NFT from circulation. It is identical to a transfer except the receiving address will always be the null address 0x000000000000000000000000000000000000000. (This null address is also the address from which a new token is minted - sender or from variable). Typically within the game building context, you burn assets as the item gets used in crafting.


Crafting

Crafting assets is a broad term for the process of combining various in-game resources or items to create new and unique items or equipment. At its core, crafting consists of receiving existing assets, combining them, and then burning them to create a new asset.


Metadata

To enable NFTs to be more descriptive, smart contracts can contain metadata, which is information about the special characteristics of each token. The aim of metadata is to allow applications to utilize this data. The metadata of an NFT can describe its characteristics and properties, such as its name, description, transaction history, traits, link to the hosted image, and more. Additionally, the metadata of an NFT can point to the link you use to view the NFT, whether it’s a photo or video.


Minting

Minting an NFT (Non-Fungible Token) refers to the process of creating a unique digital asset and recording it on a blockchain. NFTs are digital tokens that represent ownership or proof of authenticity of a particular item, such as artwork, music, videos or collectibles.


Primary sale

Primary sales are often the first step to getting game assets into your players' hands. They involve users paying funds to your collection's smart contract and then the contract directly minting the assets into the player's wallet. Typical primary sales campaigns include selling in-game assets such as land, weapons or characters.


Secondary sale

Secondary sales refers to all subsequent sales of an NFT that occur after the initial purchase in the primary market. Once an NFT has been sold in the primary market, it can be resold by the buyer to another party in the secondary market. The secondary market provides a platform for the exchange of previously owned NFTs.

Transactions and Fees


Gas Fees

All on-chain transactions require a gas fee, which is used to cover the costs of the computational resources to execute that transaction. These fees are additional amounts that a user pays on top of a base price of an asset.


Gas-less transactions

Gasless transactions are those that have the gas fee paid for by a third party instead of the transaction sender. Typically, this means the dApp owner covers the gas costs of their users' transactions, providing a more seamless user experience.


Royalty fees

Royalties are amounts that a user pays on top of a base price (or subtracted from total price) of an asset which accrues to the royalty holder(s). These can be imposed by various entities. Royalties are usually imposed by the owner of the collection or contract.


Swaps and Swapping

A token swap refers to exchanging to exchanging one cryptocurrency token directly for another without using fiat money (eg USD). For example trading ETH for IMX. A common use case is when a user needs to pay in one currency but does not have it.


Transferring

Assets can be transferred to power a number of in-game mechanics from simple trading and rewarding to more complex crafting mechanics. Transferring can happen between:

  • Player to player
  • Player and the master application wallet

Put simply, asset transfer involves transferring the ownership of an asset from one wallet to another. This must be authorised by the sending wallet. This transaction requires a small amount of gas, which is paid by the transferring wallet.

Wallets and Keys


Wallet

Cryptocurrency wallets store users' public and private keys, while providing an easy-to-use interface to manage crypto balances.


Smart Contract Wallet

A smart contract wallet is a digital wallet on the blockchain that uses smart contracts to manage and execute transactions. Unlike traditional wallets, it can include advanced features like automated payments, multi-signature security, and spending limits. These smart contracts add an extra layer of functionality and control, making the wallet more versatile and secure. This allows users to customize how their assets are managed and spent automatically according to predefined rules.


Custodial (Self-custodial, Non-custodial)

Crypto wallets can be broken out into two different groups - non-custodial and custodial. Custodial wallet services include offerings from crypto exchanges like Kraken and Coinbase where a third party has control over your private keys (and therefore, your crypto). With a non-custodial wallet, like the Metamask or Ledger, the user is the only one with access to their private keys, and therefore, has complete control over their assets. The tradeoff between the custodial and non-custodial wallets usually lies in having less responsibility of safeguarding your crypto vs having more direct control.


Private key and public key

A public key is used to receive cryptocurrency, whereas a private key is used to sign transactions and send cryptocurrency.


Metamask

Metamask is one of the most popular self-custodial wallets. You can see the project here.

Smart Contracts


Smart contract

A smart contract is a program stored on a blockchain that runs when predetermined conditions are met. Their purpose is to automatically execute agreements without intermediaries, ensuring that all parties can confirm the result instantly. These are coded in a language called Solidity.


Signer

A signer is a representation of a user's wallet (account) that is used to authorise transactions. These transactions typically involve transferring the ownership of assets (currencies or NFTs) from one account to another, hence why the user is required to "sign" these transactions. Applications use signers to obtain user signatures to execute payments, asset transfers, and more. For more information, see the Signers definition from the ethers library.


Contract composability

Smart contract composability refers to the ability of different smart contracts to work together and interact with each other in a seamless and predictable manner. It's like having a modular system where you can combine different smart contracts like Lego pieces to create complex and sophisticated decentralized applications (DApps) or decentralized finance (DeFi) protocols. This interoperability allows developers to leverage existing smart contracts and build new functionalities on top of them, leading to innovation and the ability to create novel and interconnected blockchain-based applications.


Seaport contract

Seaport is the settlement contract used for safely and efficiently creating and fulfilling orders. Immutable zkEVM uses a modified version of the open sourced Seaport contract with a focus on enforceable royalties.


Proxy contract

A proxy contract is a special type of smart contract on the blockchain that acts as an intermediary for another contract. It allows for the logic of the original contract to be updated or changed without altering the contract's address. This means users can interact with the same address while the underlying instructions can be improved or fixed. Proxy contracts help maintain flexibility and upgradability in decentralized applications.


Implementation contract

An implementation contract is a smart contract on the blockchain that contains the actual business logic or code for an application. It works alongside a proxy contract, which handles user interactions. When users interact with the proxy contract, their requests are forwarded to the implementation contract. This setup allows the implementation contract to be updated or replaced without changing the proxy contract's address, ensuring seamless upgrades and improvements.

File Storage and Offchain Data


IPFS

InterPlanetary File System (IPFS) is a distributed protocol for storing and accessing files, websites, applications, and data. Underlying NFT metadata images are typically stored on this service.


On-chain and off-chain

On-chain means data is stored on a blockchain. Transacting and interacting with it requires the standard methods which you'd engage with a blockchain, including incurring gas fees. Off-chain means data is stored anywhere else, typically this can be done in a relational database that's hosted in a centralised fashion. This often improves speed and reduces costs. Game builders often need to make decisions on what assets and interactions to put on-chain and what to keep off-chain.