Skip to main content

Pre-approved transactions

Occasionally, Web3 games will request transactions during gameplay. Unless you're building a fully on-chain game, these transactions are generally infrequent but important - things like burning, transferring or crafting assets as part of your game's economy.

Many wallets prompt the user with a popup to confirm these transactions, to ensure users consent to these actions. However, this popup is highly distracting: a very common request from games is for the wallet to be invisible in these scenarios. A common solution for games historically has been using custodial wallets which are fully controlled by the game. Unfortunately, these wallets are bound to the original game and cannot be used in other games or on external marketplaces, defeating one of the key advantages of web3 asset ownership.

Immutable Passport solves this by providing games with pre-approval from users to send these types of transactions without an explicit confirmation popup: we call this "pre-approved transactions". Users are generally happy to grant this approval: if users don't trust the game to manage the game's economy well, the game is in big trouble.

Currently, pre-approved transactions are only available inside native clients (e.g. Unity and Unreal games on mobile and Desktop). Web transactions must all be confirmed through explicit confirmation popups.

What is supported?

Listings and trades on the Orderbook, and any contract that is linked via Immutable Hub will be eligible for pre-approval, provided that transactions adhere to the rules below.

💡Linking contracts
  • All contract functions are automatically eligible for pre-approval. You do not need to request pre-approval for specific contract functions on Immutable zkEVM.
  • Once configured, pre-approved transactions will be available for all native Passport clients across your Organisation.

The following rules apply to pre-approved transactions:

Transaction TypeSupported
TransfersOnly for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub
MintingOnly for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub
BurnsOnly for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub
CraftingOnly for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub
Listings & TradesOnly for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub
Custom Contract InteractionsOnly for interactions with contracts which are linked via Immutable Hub.
Your custom contract may only interact with your game's custom ERC20s/ERC721s/ERC1155s
Native Token TransfersNo

How to enable pre-approved transactions

To enable pre-approved transactions for your game, follow the Enable pre-approved transactions guide.