The dashboard has a built-in Quick Start wizard that takes you through these exact steps and detects your app's first successful API call live. Sign up and it greets you on first login.
1 Create your free account
Sign up with your email, or use Google / Telegram sign-in. That's the whole step — there is no plan to pick and no trial clock. Enabling two-factor authentication right away (Dashboard → Security) is optional but recommended.
2 Create an application
In the dashboard, open Applications → Create App and give it a name. Two values matter from here on:
- App ID — identifies your app in every API call.
- App Secret — signs and encrypts the traffic between your app and PWF Auth. Keep it out of public repositories.
3 Install an SDK and add the check
Pick your language. Each snippet does the full production flow — login with a license key, then a heartbeat that keeps the session alive and enforces the kill switch (ban, pause, expiry, revoke).
C# (.NET)
// dotnet add package PWFAuth
using PWFAuth;
var client = new PwfClient(APP_SECRET);
client.SessionEnded += (s, e) => // ban / pause / expiry / revoke / offline
{
Console.WriteLine($"{e.ErrorCode}: {e.Message}");
Environment.Exit(0);
};
var login = await client.LoginAsync("XXXXX-XXXXX-XXXXX-XXXXX");
if (!login.Success) { Console.WriteLine(login.Message); return; }
client.StartHeartbeat(); // keeps the session alive AND enforces the kill switch
VB.NET
' dotnet add package PWFAuth
Dim client As New PwfClient(APP_SECRET)
AddHandler client.SessionEnded, Sub(s, e) ' ban / pause / expiry / revoke / offline
MessageBox.Show(e.Message)
Application.Exit()
End Sub
Dim login = Await client.LoginAsync("XXXXX-XXXXX-XXXXX-XXXXX")
If login.Success Then client.StartHeartbeat()
Python
# pip install pwfauth
import sys
from pwfauth import PwfClient
client = PwfClient(APP_SECRET)
client.on_session_ended = lambda code, msg: sys.exit(msg) # kill switch
login = client.login("XXXXX-XXXXX-XXXXX-XXXXX")
if not login.success:
sys.exit(login.message)
client.start_heartbeat() # keeps the session alive AND enforces the kill switch
Node.js
// npm install pwfauth
import { PwfClient } from 'pwfauth';
const client = new PwfClient(process.env.PWFAUTH_SECRET);
client.on('sessionEnded', ({ errorCode, message }) => { // kill switch
console.error(`${errorCode}: ${message}`);
process.exit(1);
});
const login = await client.login('XXXXX-XXXXX-XXXXX-XXXXX');
if (!login.success) { console.error(login.message); process.exit(1); }
client.startHeartbeat(); // keeps the session alive AND enforces the kill switch
Working in another language? The dashboard's SDK Generator writes ready-to-paste client code (C++, Java, Dart, PHP and more) already wired to your app's secret — and the API reference documents the raw HTTP contract for everything else. All official packages are listed on the SDKs & tools page.
4 Create a license key and test
In the dashboard, open License Keys → Generate, pick a duration (or lifetime), and copy the key. Paste it into the snippet above in place of XXXXX-XXXXX-XXXXX-XXXXX, run your app, and watch the login succeed.
Then try the fun part: hit Pause or Ban on that key in the dashboard while your app is running — the heartbeat picks it up and your SessionEnded handler fires within seconds. That's the kill switch working.