Skip to content

Unity Quickstart

Setup

1. Install the Openfort SDK

There are two ways to install the SDK:

2. Set your auth providers

  1. Navigate to the auth providers page on the Openfort dashboard
  2. Click Auth providers Methods in the side bar in the users page
  3. Configure the methods you want users to be able to login with

3. Get your API keys

In the API keys section, you'll find:

  • Publishable Key: Safe to expose in client-side environment
  • Secret Key: Must be kept secure and used only server-side

To generate non-custodial wallets:

  1. Scroll to the Shield section and click Create Shield keys
  2. Store the encryption share safely when it appears (you'll only see it once)
  3. You'll receive:
    • Shield Publishable Key: Safe for client-side use
    • Shield Secret Key: Keep secure, server-side only

4. Initialize Openfort in your Unity project

Init

Initialize the Openfort SDK with your configuration.

Method Signature:
public static async UniTask<OpenfortSDK> Init(
    string publishableKey,
    string shieldPublishableKey = null,
    bool shieldDebug = false,
    string backendUrl = "https://api.openfort.io",
    string iframeUrl = "https://embed.openfort.io", 
    string shieldUrl = "https://shield.openfort.io",
    Func<string, Task<string>> getThirdPartyToken = null
)
Parameters:
  • string publishableKey - Your Openfort publishable key (required)
  • string shieldPublishableKey - Shield publishable key for embedded wallets (optional)
  • bool shieldDebug - Enable Shield debug mode (optional, default: false)
  • string backendUrl - Openfort API URL (optional, default: "https://api.openfort.io")
  • string iframeUrl - Embed iframe URL (optional, default: "https://embed.openfort.io")
  • string shieldUrl - Shield service URL (optional, default: "https://shield.openfort.io")
  • Func<string, Task<string>> getThirdPartyToken - Token provider function (optional)
Returns:
  • UniTask<OpenfortSDK> - Initialized SDK instance
Example:
using System;
using UnityEngine;
using Cysharp.Threading.Tasks;
using Openfort.OpenfortSDK;
using Openfort.OpenfortSDK.Model;
 
public class OpenfortManager : MonoBehaviour 
{
    private OpenfortSDK openfort;
    
    // Replace with your actual keys from the Openfort dashboard
    private const string PUBLISHABLE_KEY = "YOUR_OPENFORT_PUBLISHABLE_KEY";
    private const string SHIELD_PUBLISHABLE_KEY = "YOUR_SHIELD_PUBLISHABLE_KEY"; // Optional, for embedded wallets
    
    private async void Start()
    {
        await InitializeOpenfort();
    }
    
    private async UniTask InitializeOpenfort()
    {
        try
        {
            // Initialize the SDK
            openfort = await OpenfortSDK.Init(
                publishableKey: PUBLISHABLE_KEY,
                shieldPublishableKey: SHIELD_PUBLISHABLE_KEY, // Can be null if not using embedded wallets
                shieldDebug: false  // Set to true for debugging in development
            );
            
            Debug.Log("Openfort SDK initialized successfully");
            
            // You can now use the SDK
            // Example: Check if user is already logged in
            await CheckUserSession();
        }
        catch (OpenfortException e)
        {
            Debug.LogError(quot;Openfort initialization failed: {e.Message}, Type: {e.ErrorType}");
        }
        catch (Exception e)
        {
            Debug.LogError(quot;Unexpected error during initialization: {e.Message}");
        }
    }
    
    private async UniTask CheckUserSession()
    {
        try
        {
            // Try to get current user (will fail if not logged in)
            var user = await openfort.GetUser();
            Debug.Log(quot;User already logged in: {user.Id}");
        }
        catch
        {
            Debug.Log("No active user session");
        }
    }
}

5. You're ready to build!

With Openfort configured in your Unity project, you can now:

For a complete example of Openfort integration in Unity, check out our sample project.