Skip to main content

FAQ

What is Immutable Passport?

Immutable Passport is the best way for your game to onboard web2 and web3 users simultaneously. Passport includes several core components:

  • Identity: a single-sign on authentication experience with familiar social logins
  • Wallet: a non-custodial wallet which is accessible on all your devices, across all your games
  • Dashboard: a central tool for users to view and manage their Passport identity and wallet

Why do my players need wallets in a web3 game?

Wallets hold blockchain assets (e.g. NFTs) and send the transactions necessary to interact and trade with those assets. Your users only need a wallet when they need to either receive blockchain assets, or send blockchain transactions.

How is Passport different to existing web3 wallets?

The most famous web3 wallet is Metamask, which is primarily a browser extension wallet usable across all web-based applications. Metamask is very challenging for most users to set up (e.g. it requires users to save a seed phrase).

However, in recent years, a new type of wallet has become popular: an "embedded wallet". This experience looks great. Users are “seamlessly onboarded” via their email/socials/phone and get a web3 wallet they can use immediately. Users don't have to install anything, and probably don't even realise they have a wallet. As an application, you can pat yourself on the back, knowing you've done your part in bringing crypto to the masses.

Unfortunately, this is the UX equivalent of giving users a separate empty bank account and credit card every time they go to a new store.

The problem is that embedded wallets are just that - embedded - and can't be used anywhere but the original application. If I try to use 10 different dapps (even on the same device and platform), I will end up with 10 fully separate wallets. Even more annoyingly:

  • All these wallets will start with exactly $0, meaning every user will have to perform an onramp as their first action
  • Any assets the users owns in their embedded wallet won't be accessible outside the original website (e.g. I won't be able to trade NFTs on any third party marketplaces)
  • There is no way for users to consolidate funds between these wallets - I'll have to do 10 separate onramps to my 10 separate wallets
  • There is usually no easy way for users to get funds out of these wallets (e.g. offboard into Metamask). Even when embedded wallets offer this functionality, it relies on a) the application exposing this functionality to users (most don't) and b) users having already installed Metamask in anticipation of doing this

Immutable Passport has a different approach. Passport allows users to use the same wallet across all their games and marketplaces, rather than having one wallet per game. This is hugely valuable for games, as it allows them to access all the funds and assets that user has onboarded in other games across the Immutable ecosystem. It also means that users can trade their assets on third party marketplaces - tying the wallet to the game's account system means it is only accessible in-game or on first party marketplaces.

This is important because the core value proposition of web3 assets is unrestricted tradability. One wallet per game looks desirable in a demo, but when users realise that they can't trade their NFTs on any third party marketplace there will definitely be some anger!

This design does come with a tradeoff: you can't create wallets completely under the hood, as you can with embedded custodial wallets. Users will need to connect some credentials they have access to across many games (like their email or a social account) to access their wallet. This is why Immutable Passport contains both Identity and Wallet functionality - users can use their Immutable identity to access their wallet on any platform.

How does Passport's key management work?

Passport Login

On EVM chains, Immutable Passport is a smart contract wallet. This smart contract will only process transactions if they are signed by two separate keys (a 2-of-2 multisig):

  • User Key: stored on HSMs via Magic's DKMS system, downloaded directly to the user's device to sign transactions
  • Guardian Key: stored by Immutable, used to enforce risk controls and transaction scoping.

Note that Immutable never has access to the User Key, and all transactions must be signed directly on the user's device.

How will Passport integrate with my existing identity or account system?

Option 1: Full Identity & Wallet. If you're starting from scratch, a very common way to use Passport is as your game's primary identity and wallet (as games like Guild of Guardians do). This saves games the time, effort and expense of maintaining their own identity system, and allows them to have a single login system for both account creation and wallet generation. In this mode, Passport replaces the game's existing authentication system entirely.

Option 2: Identity Migration & Wallet. However, many games will already have an account system that they will be reluctant to migrate away from, which is very understandable! There are several options from here. One is replacing authentication with Passport, but your game continuing to run their own independent account backend. You can link players' existing accounts with their new Passport accounts when they log in by tying their emails together. Simply integrate Passport as your login UI and update your backend to authenticate Passport tokens instead of the ones from your previous account system. By doing so, you can effortlessly maintain your current account infrastructure and retain all user data. This is what games like Gods Unchained have done in the past.

Option 3: Wallet Only. Games can also retain complete control of their login flow by using Passport exclusively as a wallet. When the user comes to the game for the first time, they will go through your game's account flow. Later, before the user receives their first NFT or sends their first transaction, the user must log into Passport. This can often be pushed back in the user experience so that it does not appear as a "log in twice" experience - it's "get your Passport to receive your NFT and make money!"

It is worth noting that with any of these options there is nothing to stop your game tracking user metrics, conducting funnel analysis, etc. - games can save whatever data they like on their end, just tie it to the user's Passport ID.

What platforms is Passport supported on?

FunctionalityWebUnityUnrealPlayStationXbox
IdentityYesYesYesNoNo
Pre-approved in-game transactionsNoYesYesNoNo
Other transactionsYesNoNoNoNo

Note that while you can send every kind of transaction type on the web, currently only pre-approved transactions (e.g. in-game transfers, burns and crafting) can be executed from Unity and Unreal clients, though this will change in future.

What types of authentication does Passport support ?

Passport supports familiar social logins via Google, Apple, and passwordless email sign-in. Note that if a user signs in with email (e.g. fake@immutable.com), and then subsequently with a Google account with the same primary email, those will be associated with the same Passport account and the user will be able to login with either.

For example, if a user has an initially generated ID of email|123 and signs in with Google using the same email, their User Identifier will still be email|123 instead of google-oauth2|xyz.

Can Passport support my game's login system?

Users use Passport as their wallet across many applications. As your login system is not available inside other games, or on third party markeplaces, it can't be used as an authentication method to access Passport wallets. Even if it were to be added to Immutable Identity as an OAuth provider, it is unlikely that users of your game would consistently choose it on third party websites, fragmenting their assets across multiple wallets and defeating one of the core benefits of Passport.

What chains do you support?

Passport currently supports Immutable X and Immutable zkEVM. We will soon add support for most major EVM chains, as well as custom appchains for games which require them.

Is Immutable Passport ERC-4337 compatible?

The smart contracts which underpin Immutable Passport are a fork of the smart contracts used by the Sequence wallet. While Immutable Passport is a smart contract wallet and supports account abstraction, we do not implement ERC-4337. This is because in its current state 4337 offers limited benefits to Ethereum users compared to alternate implementations while dramatically increasing per-transaction gas costs.

What is the difference between Immutable Passport and Immutable Checkout?

Checkout is our set of ready-to-use widgets for applications that want to provide a great experience for onramps, swaps, NFT purchases and other common actions on Immutable-supported chains. Checkout works across all web3 wallets - you can use it with Passport, but you can also use it with wallets like Metamask. Please go to Checkout for more details on our widgets.

Can I export my Passport private keys?

As Passport is a smart contract wallet, there is no single "private key" for your Passport wallet. Exporting your wallet therefore means exporting one or both of the User and Guardian keys which control the wallet.

Currently, we don't provide explicit UI for exporting either of these keys in order to prevent scams. We plan to allow users to do this in future. Until then, the best way to "export your wallet" is to simply transfer your assets to a new wallet address using Passport Dashboard.

Does this mean my players are locked into the Immutable ecosystem?

Immutable Passport is non-custodial, which means neither Immutable nor any individual game can unilaterally migrate users to an alternative wallet without user input. This makes sense: users aren't using Passport for one game and one game alone, they're using Passport across all their games.

However, individual games can switch their identity and recommended wallet systems away from Passport at will. You'll be able to treat Passport just like any other wallet (e.g. Metamask).

Can I recover my account if I lose access to my email? What happens if my Passport email or social account is compromised?

Unfortunately, your wallet is bound to your email or social account, and Immutable cannot unilaterally recover your account. You should attempt the recovery process for your email or social account. If this underlying account is compromised, Immutable is unable to recover your account, and you should work with your email provider or social account to resolve the compromise.

We may introduce social recovery style schemes in future to preserve self-custody while allowing recoveries.

Will players still be able to use their existing wallets in my game?

Users who wish to retain their existing wallet can simply link the wallet that holds the assets to their Passport via the Dashboard, and they will be available for read-only use in your game. This allows Passport to store wallet addresses owned by the user, and share it with games via the SDK.

However, for users to execute transactions involving these assets, they must transfer them to their Passport wallet since linked wallets remain external and inaccessible.

How should I display Passport as an option to users in my DApp?

If you're adding Sign in with Immutable as your primary authentication option.

If you're prompting users to connect

If you're adding Passport as a wallet option in your dapp, see styling for dapps.

Can I bulk import assets into Passport?

Yes, directly in Passport Dashboard.

How does gas work for Passport users?

One key advantage of smart contract wallets like Passport is the ability for a third party to sponsor gas fees on behalf of users.

Currently, all non-spam Passport transactions on Immutable zkEVM are fully sponsored by Immutable.

Passport users are able to benefit from transaction relaying.

Has Passport been audited?

Immutable Passport's smart contracts have been audited by Halborn. Previous audit iterations commissioned by the Sequence teams are available here, though they are applicable to the upstream contracts rather than forked version used in Immutable Passport.

Can I use another wallet with my Immutable Passport?

Users can link other wallets to their Passport account via Passport Dashboard. Linking a wallet to your Passport identity allows applications to aggregate your asset holdings across all your wallets (e.g. displaying assets you hold in your hardware wallet).

Currently, you cannot sign transactions in these other wallets via Passport.

Users can link other wallets to their Passport account via Passport Dashboard. Linking a wallet to your Passport Identity allows applications who have logged in.

What regions do Immutable Passport support?

See https://support.immutable.com/en/articles/8725167-what-regions-does-passport-support