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.
- 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 Type | Supported |
---|---|
Transfers | Only for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub |
Minting | Only for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub |
Burns | Only for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub |
Crafting | Only for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub |
Listings & Trades | Only for your game's custom ERC20s/ERC721/ERC1155s linked via Immutable Hub |
Custom Contract Interactions | Only 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 Transfers | No |
How to enable pre-approved transactions
To enable pre-approved transactions for your game, follow the Enable pre-approved transactions guide.