The client SDKs: native C++, pure .NET, 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.

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/quickstart_cpp sample

C++ quickstart.cpp
// Every start: the purchased key once bought, the trial key until then.
std::string purchased_key = read_file("purchased-key.txt");
bool trial = purchased_key.empty();
auto c = create_client(trial ? TRIAL_KEY : purchased_key);

// the stored license; with none (the first run), validation activates: the trial starts
auto params = c->create_license_validation_params();
// ... params->set_license(stored) when license.dat holds one

auto result = c->validate_license(params);

// save the license whenever the SDK issues a new or renewed one
auto updated = result->get_updated_license();
if (updated)
    std::ofstream("license.dat") << updated->serialize();

if (result->is_license_valid())
{
    auto& current = updated ? updated : stored;

    if (current->is_trial())
    {
        long long days_left = (current->get_expiration_date() - std::time(nullptr)) / 86400;
        std::cout << "Trial: " << days_left << " day(s) left. To buy, run: quickstart_cpp <license-key>\n";
    }
    else
        std::cout << "Licensed.\n";
}

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 several hardware characteristics with virtual machine detection, tolerant enough that a routine hardware 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 - and every account starts with a 30-day free trial, no credit card required.

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

Download the SDK

Free • No account needed • Demo app included

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