All solutions

Desktop software

License desktop software without building a licensing backend.

Authenticate customers, keep a license on the right device, and make everyday support manageable from one place.

Desktop software needs a clear answer at launch: is this a paying customer or not? System Locker gives your application a server-backed answer without making you run the licensing service yourself.

Choose the API that matches where your code runs

Use the Simple API when the licensing check runs on a server you control, such as a central service your users connect to. It gives that trusted server a direct answer for account or license-key access without keeping a client session alive.

For a desktop app, game, plugin, or other software running on a customer's machine, choose the Bedrock API. It verifies signed responses, uses fresh challenges, and rotates the session token while the application is running. If the software must continue working without a reliable connection, choose the Nightflyer API for signed, device-bound offline leases.

Keep a license where it belongs

A key can lock to a HWID on first use, so copying a key to another computer is not the same as giving it access. Use a stable, privacy-conscious hardware identifier in your app; hashing the source value before sending it is a sensible default.

Device changes do happen. Your customer portal gives users a controlled way to reset their own HWID, and the Management API lets your support tooling perform the same operation when it is appropriate. You can keep the support experience reasonable without treating every new machine as a new sale.

Give support useful information

The developer portal brings together systems, keys, authentication logs, and license actions. Check whether a key has been redeemed, see expiry information, freeze a key when you need to investigate, or make a focused change instead of asking a customer to reinstall and hope for the best.

For a larger application, you can also use server-side variables for remotely managed values and add reseller access later. The core integration stays the same: your app asks System Locker whether access is valid, then enables the feature that depends on it.

Start with one protected build.

Create a test system, generate a test key, and put a real authentication check around one feature before expanding the integration.