NewUnlimited keys and HWID resets on every plan

Ship licensed software
in an afternoon.

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.

Works fromC#C++PythonRustGoNode
Features

Everything between your loader and your customer.

Built for people who sell desktop software and want to stop hand-rolling auth.

8XQJC-7L72M-TZD33-M5MS3
N53FR-BVU6V-NUC4H-NJ3EC
LEH6H-XV6PL-RSA8U-7ZPFZ
UYJ27-FV4ZC-9EGLE-LWVLE

Unlimited license keys

Generate one or a thousand, lifetime or timed. Search, filter, bulk-reset, bulk-delete. Every key is visible and copyable after it's made.

machine-Abound
machine-Bmismatch
Reset HWID

HWID lock, unlimited resets

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 }

Signed sessions

Every reply is HMAC-signed with your secret and bound to your nonce. Fake servers and replayed responses fail.

download_urlhttps://cdn…/v1.4.2
offset_health0x1A3F0
maintenancefalse

Variables

Server-side key/value pairs your client fetches after auth. Keep the important bits out of the binary.

hwida91f…c02ecracker
ip185.22.…chargeback

Blacklist

Block a HWID or IP per app. Blocked clients are refused before the key is even looked up.

started8XQJC…2s ago
injected into gameN53FR…41s ago
config loadedTEK2P…3m ago

Logs and activity

Your client sends one line, you see it against the key that sent it. Retained 14 days on Free, 90 on Pro.

Integration

One request. Any language.

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.

  1. 1
    Create an applicationYou get an App ID and a secret.
  2. 2
    Generate keysPick a count and an expiry, copy the batch.
  3. 3
    Call /license from your loaderThat's it. Poll /check while the app runs.
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);
Pricing

Two plans. Nothing metered.

Keys and HWID resets are unlimited on both. Pro is for more applications and longer log retention.

Free

$0forever

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
FAQ

Questions

Is "unlimited" really unlimited?

Yes. 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.

What is an HWID reset?

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.

Can I see my keys after generating them?

Yes. Keys are listed in full on the Licenses tab with a copy button, plus copy-all for the batch you just generated.

Which languages can I use?

Anything that can send an HTTPS request with a JSON body — C#, C++, Python, Rust, Go, Node and so on.

Start licensing in five minutes.

Free for two applications. No card required.

Create your account