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 sign-in flow your product needs

For a straightforward paid download, key-only (Mikros) auth keeps the flow simple: the customer enters a license key and no user account is required. If your product already has customer accounts, account-based (Goliath) endpoints can authenticate with an account and confirm that the customer holds a valid key for the system.

When you need a production session rather than a single check at startup, System Locker's Quicksilver authenticates once and then keeps the session current with rotating heartbeat tokens. That gives the application a live authorization state to rely on while it is running, and inherently hardens your application against debuggers.

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.