.NET · C# & VB.NET · Free forever

The free license key system
for .NET, with HWID locking

Add licence keys, hardware-ID locking, and an instant remote kill-switch to a C# or VB.NET app with one NuGet package — free, unlimited, forever.

Free forever No credit card .NET Framework 4.6.2+ & net8.0 HWID multi-device Kill-switch in seconds

The part of a paid app nobody wants to build

Every piece of paid desktop software needs the same plumbing: issue a key, check it on launch, tie it to the buyer's machine so it isn't shared, and cut off access when a refund or a chargeback lands. Writing that yourself means a server, a database, a crypto scheme, and a support inbox for hardware resets. PWF Auth is that plumbing as a hosted service, with an official .NET package — and it is free at any volume.

Licence check in five lines

This is the whole integration for a C# or VB.NET desktop app. StartHeartbeat is what turns a one-time check into a live session — revoke the key in your dashboard and SessionEnded fires on the user's machine within seconds.

using PWFAuth;

var client = new PwfClient("your-64-char-app-secret");

// Fires when an admin bans, pauses, expires or revokes the key — or the
// server goes unreachable. Sign the user out here.
client.SessionEnded += (sender, e) =>
{
    MessageBox.Show(e.Message);
    Application.Exit();
};

var login = await client.LoginAsync("XXXXX-XXXXX-XXXXX-XXXXX");
if (!login.Success)
{
    MessageBox.Show(login.Message);   // safe to show the user
    return;
}

client.StartHeartbeat();   // keeps the session alive AND enforces the kill switch

Why developers pick PWF Auth

The reasons teams move over from a paid or limited licensing service.

Every .NET you ship

The PWFAuth package targets netstandard2.0 and net8.0, so .NET Framework 4.6.2+, VB.NET WinForms, WPF, and modern .NET all install the same package. dotnet add package PWFAuth.

HWID, one or many

Bind a licence to a single machine or to several through a max-devices limit, with each device tracked separately. Users request a hardware reset from inside your app; you approve it from the dashboard.

Instant kill-switch

A refund, a chargeback, a leaked key — revoke it and the running client stops within seconds, not at next launch. That is the heartbeat doing its job.

Ship updates too

Publish versioned builds per app and let the client check and download them through the same API, so licensing and updates are one integration instead of two.

From zero to licensed in an afternoon

No server to run, no database to design.

1

Create a free app

Sign up, create an application, and copy its app secret. No credit card at any point.

2

Generate keys

Issue keys from the dashboard — day, week, month, or lifetime — or call the API from your own store or bot to issue them on payment.

3

Add the package

Run dotnet add package PWFAuth, paste the snippet above, and set your max-devices limit. The API reference covers everything else.

License keys in .NET — FAQ

What developers ask before wiring this in.

Yes. Every feature, unlimited, forever — no credit card, no trial timer, and no paid "Pro" tier. It is in public beta and run by its own developers.
Both. The PWFAuth NuGet package targets netstandard2.0 and net8.0, so it installs into .NET Framework 4.6.2+ projects (including VB.NET WinForms) and into modern .NET alike, from the same package.
On first login the client sends a hardware fingerprint and the server binds the licence to it. A key can allow one device or several through a max-devices limit, and each bound device is tracked independently, so you can see exactly where a licence is in use.
They request a hardware-ID reset from a dialog inside your app, and you approve or deny it from the dashboard. You are not handling that by email.
Yes. The client sends a heartbeat on an interval; revoke, ban, pause or expire the key and the next heartbeat fails, raising SessionEnded on the user's machine within seconds. It does not wait for the next app launch.
No. Everything is a documented REST API, so C++, Python, Electron, Unity, Go or anything else that speaks HTTP works too — and the dashboard generates one-file SDKs for Python, C#, VB.NET, C++ and JavaScript if you would rather not take a dependency.
Yes. Bulk CSV import handles that, with a dedicated KeyAuth preset. Bulk export works the same way, so there is no lock-in.

Try the free alternative

Create a free account, generate your first keys, and integrate in an afternoon.

Also compare: PWF Auth vs KeyAuth · PWF Auth vs Cryptolens · PWF Auth vs Keygen