The client SDK: native code, industry-standard cryptography

A native C++ SDK for your native applications, and a .NET SDK built from the ground up in managed code - no native dependencies, no interop. Online activation, offline validation, hardware fingerprinting, deactivation - this is the client half of your licensing, done right.

Windows · Linux C++, C# and VB.NET One package, every platform

Downloads

One package works for every platform. Each format carries the compiled SDK for Windows x64 and Linux x64, headers, CMake package config, the .NET assembly, and samples in C++, C# and VB.NET. Full documentation lives in the online docs.

Platform Package
Windows x64 + Linux x64 EXE installer - setup wizard with automatic installation (per-user install needs no admin rights) Download
Windows x64 + Linux x64 MSI installer - Windows Installer package for enterprise deployment Download
All platforms ZIP archive - portable; Windows x64 and Linux x64 binaries side by side, build anywhere with CMake Download
.NET (all platforms) NuGet package Download

Verify your download against SHA256SUMS.txt. Integration docs: install, C++ quickstart, .NET / VB.NET quickstart. Signed Windows installers are on the way, and will replace these downloads in place.

On a paid plan? The source-code edition of the SDK (the same package plus the client library source) is available from the licensing console.

Activate and validate in a few lines

From the included samples/cpp/basic_cpp sample

C++ basic.cpp
#include "softactivate/sws_licensing.h"

// create a licensing client instance
auto client = sws::licensing::client::create(endpoint_url);

client->set_metadata("trusted_domain", trusted_domain);
client->set_vendor_id(VENDOR_ID);
client->set_license_key(CUSTOMER_LICENSE_KEY);

// validate: activates online the first time, then validates the
// locally-stored, cryptographically-signed license offline
auto params = client->create_license_validation_params();
auto result = client->validate_license(params);

if (!result->is_license_valid())
{
    // the status tells you WHY: expired, revoked, bound to another
    // machine, subscription payment required...
    handle_invalid(result->get_status());
}

// persist the (possibly updated) license for offline validation
if (auto updated = result->get_updated_license())
    save_license(updated);

What the SDK does for you

Offline validation

Licenses are signed documents. The SDK validates them locally against a certificate chain anchored in public PKI, with lease-based re-checks you control.

Hardware fingerprinting

Device fingerprints combine CPU, disk, MAC address and VM detection, weighted and tolerant enough that a RAM upgrade won't break your device limits.

Deactivation / move machine

A deactivation call releases the seat, so your customer can move to new hardware on their own. No support ticket needed.

Precise validation status

Expired, not yet valid, revoked, bound to another device, payment required - each one is a distinct status, so your app can show the right message for each.

TLS always on

Certificate verification is enforced in every build configuration. There's no debug mode that quietly skips it.

Clean packaging

One package covers every platform: CMake package config (find_package(sws)) for C++, a NuGet package for .NET, and working samples in C++, C# and VB.NET. Full documentation is online.

Frequently Asked Questions

Yes. The client SDK is free to download and use with any SoftActivate Licensing plan, with a 14-day free trial.

Yes. The Windows binaries and the installer - including the .NET assembly inside the NuGet package - are Authenticode-signed and RFC 3161 timestamped. You can additionally verify any download against the published SHA-256 checksums.

Only to activate (and to re-check on the lease schedule you configure). Day-to-day license validation is offline: the license is a signed document your app verifies locally against a public-PKI-anchored trust chain.

Call the deactivation API from your app (or your support tooling): it releases the device slot on the old machine so the license can activate on the new one - no support ticket required.

macOS (Apple Silicon) builds are available on request right now - ask us and we will send you one. Windows-on-ARM and Linux aarch64 presets, plus mobile platforms, are on the roadmap. Tell us if you need one, and we will prioritize it.

Yes - the SDK source-code edition (the same package plus the client library source) is included with paid subscription plans and downloadable from the licensing console.

Have more questions?

Contact Us

Ship licensing this week, not this quarter.

Create a free account, explore the seeded sandbox, and activate your first license - all before your coffee gets cold.

Create Your Account

No credit card to sign up

Read the Quickstart

From signup to activation

14-day free trial No self-hosting required 15+ years in software licensing