Client API
Put Keyguard in your app
Every product call after init is HMAC-signed. Replay is blocked with nonce + timestamp. Do not embed a seller key in the client.
You need
- App name (exactly as in the panel)
- Owner ID (Overview or Setup tab)
- A license key or a user you created
C#
Add KeyguardClient.cs to the project.
var kg = new Keyguard.Client.KeyguardClient("https://api.keyguard.live");
await kg.InitAsync("YourAppName", "OWNERID");
await kg.LicenseAsync(licenseKey, hwid);
// or: await kg.LoginAsync(user, pass, hwid);
Files in the loader
The Files tab assigns a random File ID and a full SHA-256. Copy both (or use Copy for loader). After a signed file download, compare the hash before writing bytes to disk.
var file = await kg.FileAsync("FILEID", expectedSha256: "SHA256_FROM_PANEL");
File.WriteAllBytes(file.Name, file.Bytes);
If the hash does not match, the SDK throws. Do not embed a seller key or website API key in the product. Loaders get dumped.
Python
Drop keyguard.py next to your entrypoint. pip install requests.
from keyguard import KeyguardClient
kg = KeyguardClient("https://api.keyguard.live")
kg.init("YourAppName", "OWNERID")
kg.license(key, hwid)
Node / Electron
const { KeyguardClient } = require("./keyguard");
const kg = new KeyguardClient("https://api.keyguard.live");
await kg.init("YourAppName", "OWNERID");
await kg.license(key, hwid);
Protocol (any language)
POST /api/client/v1/initwith{ "name", "ownerId" }. Response:sessionid,enckey(base64).- For each action, HMAC-SHA256 of
type|timestamp|nonce|sessionid|payloadJsonusing the decoded enckey. POST /api/client/v1/dispatchwith type, sessionid, timestamp, nonce, signature, payload.
Actions: login, license, register, upgrade, renew, check, logout, changepassword, var, getvar, setvar, file, webhook, log, chatget, chatsend, fetchstats, updates.
The Setup tab in the panel fills Owner ID and app name for you.