Free
Everything you need to ship a licensed app.
Get started- 2 applications
- Unlimited license keys
- Unlimited HWID resets
- HWID lock & sessions
- Variables & blacklist
- 14-day client logs
Cove is the licensing backend for desktop apps: keys, HWID lock, sessions, variables and a blacklist, behind one JSON API you can call from any language.
Built for people who sell desktop software and want to stop hand-rolling auth.
8XQJC-7L72M-TZD33-M5MS3N53FR-BVU6V-NUC4H-NJ3ECLEH6H-XV6PL-RSA8U-7ZPFZUYJ27-FV4ZC-9EGLE-LWVLEGenerate one or a thousand, lifetime or timed. Search, filter, bulk-reset, bulk-delete. Every key is visible and copyable after it's made.
A key binds to the first machine that uses it. Customer got a new PC? Reset it. No cap, no fee.
POST /api/v1/check
{ "session": "…", "nonce": "9f3a…" }
← X-Signature: 4c1d…e0a9
{ "success": true, "valid": true }Every reply is HMAC-signed with your secret and bound to your nonce. Fake servers and replayed responses fail.
download_urlhttps://cdn…/v1.4.2offset_health0x1A3F0maintenancefalseServer-side key/value pairs your client fetches after auth. Keep the important bits out of the binary.
a91f…c02ecracker185.22.…chargebackBlock a HWID or IP per app. Blocked clients are refused before the key is even looked up.
started8XQJC…2s agoinjected into gameN53FR…41s agoconfig loadedTEK2P…3m agoYour client sends one line, you see it against the key that sent it. Retained 14 days on Free, 90 on Pro.
No SDK, no DLL, no vendor lock-in. Post the key and a machine ID, get back a session and the license state. The full reference lives in your dashboard with C#, Python and Node examples.
const auth = await fetch(BASE + "/api/v1/license", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ appId, secret, key, hwid }),
}).then(r => r.json());
if (!auth.success) {
// "HWID mismatch" · "License banned" · "License expired"
return exit(auth.message);
}
const { session, license } = auth;
console.log("expires:", license.expires ?? "never");
// post() sends a nonce and verifies X-Signature (HMAC of your secret)
// so a spoofed server can never fake a "success" — see the API docs.
setInterval(async () => {
const c = await post("/api/v1/check", { session });
if (!c.success) exit("Session revoked");
}, 60_000);import requests
auth = requests.post(BASE + "/api/v1/license", json={
"appId": APP_ID, "secret": SECRET,
"key": key, "hwid": hwid,
}).json()
if not auth["success"]:
# "HWID mismatch" · "License banned" · "License expired"
raise SystemExit(auth["message"])
session = auth["session"]
print("expires:", auth["license"]["expires"] or "never")
while True:
time.sleep(60)
c = requests.post(BASE + "/api/v1/check", json={"session": session}).json()
if not c["success"]:
raise SystemExit("Session revoked")var auth = await Post("/api/v1/license", new { appId, secret, key, hwid });
if (!auth.success)
{
// "HWID mismatch" · "License banned" · "License expired"
MessageBox.Show((string)auth.message);
return;
}
string session = auth.session;
Console.WriteLine($"expires: {auth.license.expires ?? "never"}");
var timer = new PeriodicTimer(TimeSpan.FromSeconds(60));
while (await timer.WaitForNextTickAsync())
{
var c = await Post("/api/v1/check", new { session });
if (!c.success) Environment.Exit(1);
}Keys and HWID resets are unlimited on both. Pro is for more applications and longer log retention.
Everything you need to ship a licensed app.
Get startedFor sellers running more than a couple of products.
Get startedYes. No cap on keys per app or HWID resets per key on either plan. Free and Pro differ only in application count and log retention.
With HWID lock on, a key is tied to the first machine that activates it. When a customer changes hardware you press "Reset HWID" and the next login binds it to the new machine.
Yes. Keys are listed in full on the Licenses tab with a copy button, plus copy-all for the batch you just generated.
Anything that can send an HTTPS request with a JSON body — C#, C++, Python, Rust, Go, Node and so on.
Free for two applications. No card required.
Create your account