Skip to main content
Native C# bindings for Passport authentication, wallet operations, and blockchain data queries.
Who is this for? Game developers using Unity who want to integrate web3 features, NFTs, and blockchain functionality into their games.

Platform Compatibility

Unity VersionWindowsmacOSAndroidiOS
Unity 6✅ Full support✅ Full support✅ Full support✅ Full support
2021.3 LTS+✅ Full support✅ Full support✅ Full support✅ Full support
Unity 6 Android Users: If using Unity 6 with Android, you must set the Application Entry Point to Activity (not the default GameActivity). See Unity 6 Configuration below.

Prerequisites

  • Unity: 2021.3 LTS or later
  • .NET Standard: 2.1
  • UniTask: The UniTask package (v2.3.3) is a required dependency of our SDK. Follow the instructions here to install it.
  • Git LFS: The SDK repository uses Git Large File Storage to manage .dll files and other binary assets. Install Git LFS before cloning or Unity Package Manager may fail to download binary dependencies correctly.

Packages

The SDK provides the following components:
PackagePurposePrerequisites
PassportAuthentication and wallet operations-
ZkEvmApiREST API for zkEVM (list NFTs, orders, and more)-
See the Installation section below for setup instructions.

Installation

  1. Install UniTask v2.3.3 or later The UniTask package is a dependency of our SDK.
  2. Install Git LFS
    Git LFS must be installed before adding the SDK. The SDK contains .dll files stored in Git LFS that won’t download correctly otherwise.
  3. Add the Immutable SDK:
  1. Open WindowPackage Manager
  2. Click + and select Add package from git URL…
  3. Enter https://github.com/immutable/unity-immutable-sdk.git?path=/src/Packages/Passport and click Add

Install a Specific Version

To install a specific version of the SDK using either method above, append # followed by the version tag to the git URL:
https://github.com/immutable/unity-immutable-sdk.git?path=/src/Packages/Passport#v1.0.0
For mobile platform setup (Android, iOS), see Platform-Specific Configuration.

Unity 6 Configuration

Unity 6 Android Required: If using Unity 6 with Android, you must configure the Application Entry Point.
  1. Go to Project SettingsPlayerAndroidOther SettingsConfiguration
  2. Set Application Entry Point to Activity (not GameActivity)
  3. Open AndroidManifest.xml and remove the UnityPlayerGameActivity activity block; keep only the UnityPlayerActivity block

Platform-Specific Configuration

Platform Requirements

  • Windows: 10 or later

Scripting Backend Support

BackendSupportNotes
Mono✅ Fully supportedUses default Unity Web Browser (UWB)
IL2CPP⚠️ Requires custom WebViewSee Advanced Configuration for Vuplex setup

Default WebView Setup

The SDK uses Unity Web Browser (UWB) by default on Windows. UWB is not bundled with the SDK, so you must install it.
  1. Add the VoltUPR registry and required scopes, then install UWB via the Package Manager. See the UWB GitHub repo and VoltUPR setup guide.
  2. Import these packages:
    • dev.voltstro.unitywebbrowser
    • dev.voltstro.unitywebbrowser.engine.cef
    • dev.voltstro.unitywebbrowser.engine.cef.win.x64
  3. Confirm UWB_WEBVIEW is present in your project after the packages are installed.
For IL2CPP builds, use a custom WebView like Vuplex. See Advanced Configuration.
The SDK handles deep links automatically. Ensure your redirect URIs match your configured URL scheme.
Your redirect URIs (like mygame://callback) must use the same URL scheme that you configure in your platform settings:
  • iOS: Only the scheme needs to match (e.g., mygame in mygame://callback)
  • Android: Both the scheme AND host must match (e.g., mygame and callback in mygame://callback)
See Initialize Passport for authentication setup.
// Must match your URL scheme
passport = await Passport.Init
(
    clientId: "YOUR_CLIENT_ID",
    environment: Environment.Sandbox,
    redirectUri: "mygame://callback",      // ← mygame matches URL scheme config
    logoutRedirectUri: "mygame://logout"
);

Next Steps

Getting Started

Additional Resources