Skip to main content
Native C++ and Blueprint support for Passport authentication, wallet operations, and blockchain data queries.

Requirements

  • Unreal Engine 4.26 or later (5.3+ recommended)
  • Supported platforms: Windows, macOS, iOS, Android
UE VersionWebViewNotes
5.3, 5.4, 5.5Built-in WebBrowserWidgetRecommended, actively tested
5.1, 5.2Built-in WebBrowserWidgetSupported
4.26, 4.27, 5.0BLUI pluginAdditional setup required

Installation

Plugin Installation

  1. Download from GitHub Releases
  2. Extract to your project’s Plugins folder
  3. Restart Unreal Editor
  4. Enable in EditPluginsImmutable

BLUI Plugin (UE 4.26–5.0)

For Unreal Engine 4.26, 4.27, and 5.0, you must install the BLUI plugin because Epic’s WebBrowserWidget uses an outdated CEF version incompatible with the SDK.
1

Download BLUI

Download or clone from immutable-BLUI to your project’s Plugins folder.
2

Rename the folder

Rename immutable-BLUI to BLUI. Your plugins directory should look like:
MyGame/
└── Plugins/
    ├── BLUI/
    └── unreal-immutable-sdk/
3

Disable WebBrowserWidget

Edit unreal-immutable-sdk/Immutable.uplugin and set WebBrowserWidget to disabled:
{
  "Plugins": [
    {
      "Name": "WebBrowserWidget",
      "Enabled": false
    }
  ]
}
4

Configure Hub

In Immutable Hub, add file://* to your Web Origin URLs. This is required for the BLUI browser.
UE 5.1+ does not require BLUI and should use the built-in WebBrowserWidget.

Marketplace

Coming soon to the Unreal Marketplace.

Configuration

Project Settings

Configure in DefaultGame.ini:
[/Script/ImmutableSDK.ImmutableSettings]
ClientId=YOUR_CLIENT_ID
Environment=Sandbox
RedirectUri=mygame://callback
LogoutRedirectUri=mygame://logout
Or use Project SettingsPluginsImmutable.

Quick Start

C++ Example

#include "Immutable/ImmutableSubsystem.h"

void AMyGameMode::BeginPlay()
{
    Super::BeginPlay();
    
    UImmutableSubsystem* Immutable = GetGameInstance()->GetSubsystem<UImmutableSubsystem>();
    Immutable->Initialize();
}

void AMyGameMode::Login()
{
    UImmutableSubsystem* Immutable = GetGameInstance()->GetSubsystem<UImmutableSubsystem>();
    
    Immutable->Login(
        FImmutableLoginComplete::CreateUObject(this, &AMyGameMode::OnLoginComplete),
        FImmutableLoginFailed::CreateUObject(this, &AMyGameMode::OnLoginFailed)
    );
}

void AMyGameMode::OnLoginComplete(const FString& WalletAddress)
{
    UE_LOG(LogTemp, Log, TEXT("Logged in: %s"), *WalletAddress);
}

Blueprint Example

  1. Get the Immutable Subsystem reference
  2. Call Initialize on BeginPlay
  3. Use Login node when player clicks sign in
  4. Connect success/failure execution pins

SDK Architecture

The Unreal SDK consists of:
ComponentPurpose
ImmutableSubsystemMain entry point, manages lifecycle
ImmutablePassportAuthentication and wallet operations
ImmutableOrderbookNFT trading (Alpha)
ImmutableApiGenerated REST API clients

Async Patterns

All SDK operations are asynchronous and use delegates:
// Delegate binding options
FImmutableLoginComplete::CreateUObject(this, &AMyClass::OnSuccess)
FImmutableLoginComplete::CreateLambda([](const FString& Address) { ... })

Sample Project

Download the complete sample demonstrating:
  • Authentication flow
  • Inventory display
  • Transaction sending
  • Marketplace integration

Sample Project

Download sample project

Resources