Show / Hide Table of Contents

# Activating the SDK License

An activation code is required to use the Nix Universal SDK. The license determines:

- Which device types are available for discovery and connection.
- Which features and data types are available for connected devices.

By default, all Nix device operations are disabled. It is necessary to activate the license before these are made available to the host application.

## Obtaining a license key

Free evaluation codes are available for non-commercial use. To obtain an activation code, visit to the SDK license page.

## Using the License Manager

License operations are handled via a static instance of the `LicenseManager`.

### Activating the license

A license is activated by calling `LicenseManager.Activate`. This method takes the license options and signature strings as arguments and returns the activation result as a `LicenseManagerState` value.

##### Note

License activations remain valid within a single session, but do not persist across different application launches. Therefore, it is required to call `LicenseManager.Activate` at least once per session.

    // Update these string values to match your provided license
    string Options = "REPLACE_WITH_LICENSE_OPTIONS";
    string Signature = "REPLACE_WITH_LICENSE_SIGNATURE";

    // Result is returned as a `LicenseManagerState` enum
    var activationState = LicenseManager.Activate(options, signature);

##### Tip

The license manager state can also be checked at any time via `LicenseManager.State`.

Device operations are only available if the resulting state is equal to `LicenseManagerState.Active`. All other values indicate an error state. Refer to the `LicenseManagerState` API documentation for further details.

##### Warning

You can switch licenses by calling `LicenseManager.Activate` repeated times within a single session. Doing so will invalidate any open device connections. Any connected Nix devices will need to be disconnected and discovered again using a `DeviceScanner` after switching licenses.

### Other license properties

Additional license properties can be queried on the `LicenseManager`. Note that some properties may be blank or empty depending on your license capabilities.

- UUID
  - Unique ID for your SDK license.
  - Refer to `LicenseManager.Uuid`
- Expiry date
  - Indicates when the current license ceases to be valid.
  - Refer to `LicenseManager.Expiry`
- Allocation codes
  - List of pre-authorized device allocation codes, used when accessing private labelled Nix devices.
  - May be empty for general use cases.
  - Refer to `LicenseManager.Allocations`
- Allowed device types
  - List of Nix device types that are supported by the current license.
  - Refer to `LicenseManager.AllowedDeviceTypes` and `LicenseManager.IsDeviceTypeSupported()`
- Enabled features
  - List of SDK features enabled by the current license.
  - Refer to `LicenseManager.Features` and `LicenseManager.IsFeatureEnabled()`
- SDK version
  - Indicates the current version of the Nix Universal SDK.
  - Refer to `LicenseManager.LibraryVersion`

## Next steps

- Discovering and Connecting to Nix Devices