How to Add License Key Verification to Your Game Cheat

February 22, 2026

You built a cheat. People are buying it. But they're also sharing it for free. License key verification stops that — here's how to integrate it in minutes.

How It Works

  1. Customer buys your cheat on CheatBay → receives a unique license key
  2. Your cheat loader sends the key to the CheatBay API on startup
  3. API returns valid/invalid → your cheat runs or exits

Simple. No database to maintain, no auth server to host.

API Endpoint

GET https://cheatbay.gg/api/verify/?key=XXXX-XXXX-XXXX-XXXX

// Success response:
{
    "valid": true,
    "hack": "your-cheat-name",
    "expires": null
}

// Invalid key:
{
    "valid": false,
    "error": "Invalid or expired key"
}

C++ Integration

For C++ loaders using WinHTTP:

#include <winhttp.h>
#include <string>
#pragma comment(lib, "winhttp.lib")

bool VerifyLicense(const std::wstring& key) {
    HINTERNET hSession = WinHttpOpen(L"CheatLoader/1.0",
        WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, NULL, NULL, 0);
    HINTERNET hConnect = WinHttpConnect(hSession,
        L"cheatbay.gg", INTERNET_DEFAULT_HTTPS_PORT, 0);

    std::wstring path = L"/api/verify/?key=" + key;
    HINTERNET hRequest = WinHttpOpenRequest(hConnect,
        L"GET", path.c_str(), NULL, NULL, NULL, WINHTTP_FLAG_SECURE);

    WinHttpSendRequest(hRequest, NULL, 0, NULL, 0, 0, 0);
    WinHttpReceiveResponse(hRequest, NULL);

    DWORD dwSize = 0;
    WinHttpQueryDataAvailable(hRequest, &dwSize);
    char* buffer = new char[dwSize + 1];
    DWORD dwRead = 0;
    WinHttpReadData(hRequest, buffer, dwSize, &dwRead);
    buffer[dwRead] = '\0';

    std::string response(buffer);
    delete[] buffer;

    WinHttpCloseHandle(hRequest);
    WinHttpCloseHandle(hConnect);
    WinHttpCloseHandle(hSession);

    return response.find("\"valid\": true") != std::string::npos;
}

C# Integration

For C# / .NET loaders:

using System.Net.Http;
using System.Text.Json;

public static async Task<bool> VerifyLicense(string key)
{
    using var client = new HttpClient();
    var response = await client.GetStringAsync(
        $"https://cheatbay.gg/api/verify/?key={key}");
    var json = JsonDocument.Parse(response);
    return json.RootElement.GetProperty("valid").GetBoolean();
}

Python Integration

For Python-based cheats or tools:

import requests

def verify_license(key: str) -> bool:
    r = requests.get(f"https://cheatbay.gg/api/verify/?key={key}")
    return r.json().get("valid", False)

Best Practices

  • Check on every launch — not just first run
  • Obfuscate the API call — don't leave the URL as a plaintext string in your binary
  • Cache the result briefly — if the API is unreachable, allow a short grace period so users aren't locked out by network issues
  • HWID binding — combine license keys with hardware IDs for extra protection

Start Protecting Your Revenue

Every copy shared for free is a lost sale. License key verification takes 10 minutes to integrate and pays for itself immediately.

List Your Cheat on CheatBay →

Ready to Level Up?

Browse verified, undetected cheats on CheatBay — or start selling your own and earn crypto.

Browse Cheats Start Selling

Related Guides