ARCHERGATE / SDK
UNITY LICENSING

Machine-bound keys for Unity assets and tools.

Archergate links directly into your native plugin or wraps your managed assembly. Keys bind to the machine on first activation. No user accounts. No Unity Asset Store dependency.

The problem with Unity asset distribution

The Unity Asset Store terms allow buyers to use assets on any project they own, but redistribution is prohibited. In practice, enforcement is your responsibility. Buyers share .unitypackage files in Discord servers. Cracked shader packs circulate on forums. Without machine binding, the only thing stopping redistribution is an honor system.

Archergate adds hardware-level enforcement. A license key activated on machine A cannot be used on machine B. The fingerprint is derived from CPU identity and OS installation ID — stable across reboots, unique per hardware configuration.

Integration options

Unity does not support native code in every context, but there are two clean paths depending on what you are shipping:

C# — P/Invoke into native library (runtime plugins, Burst packages)
// Place archergate_license.dll (Win) or libarchergate_license.dylib (Mac) in Assets/Plugins/
using System.Runtime.InteropServices;

public static class LicenseGate
{
    [DllImport("archergate_license")]
    static extern System.IntPtr ag_license_new(string apiKey, string appId);

    [DllImport("archergate_license")]
    static extern int ag_license_validate(System.IntPtr client, string key);

    [DllImport("archergate_license")]
    static extern void ag_license_free(System.IntPtr client);

    public static bool Validate(string licenseKey)
    {
        var client = ag_license_new("your-api-key", "com.you.toolname");
        int rc = ag_license_validate(client, licenseKey);
        ag_license_free(client);
        return rc == 0;
    }
}
Editor tool — validate on package import via InitializeOnLoad
[InitializeOnLoad]
public static class ToolLicenseCheck
{
    static ToolLicenseCheck()
    {
        string key = EditorPrefs.GetString("MyTool_LicenseKey", "");
        if (!LicenseGate.Validate(key))
        {
            EditorUtility.DisplayDialog(
                "License Required",
                "Enter a valid license key to use this tool.",
                "OK"
            );
            // Open license entry window
            LicenseWindow.ShowWindow();
        }
    }
}

What ships in the SDK

NATIVE BINARIES

Pre-built .dll (Windows x64), .dylib (macOS universal), .so (Linux x64). Drop into Assets/Plugins/.

30-DAY OFFLINE

One online activation caches a signed receipt. Tools work offline for 30 days before re-check.

TRIAL MODE

14-day evaluation timer built in. No server calls needed to start a trial.

SELF-HOSTED SERVER

Rust + SQLite validation server. Run it yourself or use managed hosting at $7/month.

Header and download

The archergate_license.h header and pre-built binaries are available on GitHub Releases. No build system required — link the library, include the header, call three functions.

SDK DOWNLOADS AND DOCS