Overview
0
0
0
Unauthorized IP hopping blocked
0
Managed software items
Verification Activity
Valid vs Blocked checks (Last 7 Days)
Live Verification Stream
Software Products
Overview of protected applications
| Product Name | Product ID | Version | Default Max IPs | Total Licenses | Actions |
|---|
| License Key | Product | Buyer Details | Status | Bound IPs | Expires | Last Check | Actions |
|---|
Software Catalog
Create and configure DRM parameters per software title.
3 IPs / 15 mins
Triggers auto-suspension
ENABLED
Zero-day leak mitigation
0 rules
Enforced across all verification endpoints
Security Access Rules & Blacklists
Block cracked client IPs, banned Discord accounts, or malicious subnets.
| Type | Target Value | Reason / Note | Date Added | Action |
|---|
Integration Hub & Code Generator
Embed DRM license checks in your plugins, applications, and bots in any programming language.
Your software makes a simple HTTP POST request to /api/v1/license/verify. The server responds with JSON containing "valid": true or "valid": false.
If true, your app starts normally. If false, your app refuses to start and shuts down.
Java (Spigot / Paper Plugins & Standalone Apps)
Zero dependencies required (Java 11+). If true, enables plugin. If false, disables plugin immediately.
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
public class KryptLicenseGuard {
// Calls the Krypt DRM API and returns true (Valid) or false (Blocked/Invalid)
public static boolean verifyLicense(String serverUrl, String licenseKey, String productId) {
try {
String jsonPayload = "{\"license_key\":\"" + licenseKey + "\",\"product_id\":\"" + productId + "\"}";
HttpClient client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(5)).build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(serverUrl + "/api/v1/license/verify"))
.header("Content-Type", "application/json")
.timeout(Duration.ofSeconds(5))
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
return response.statusCode() == 200 && response.body().contains("\"valid\":true");
} catch (Exception e) {
System.err.println("[Krypt] License check error: " + e.getMessage());
return false; // License server unreachable or error -> Don't start!
}
}
}
// ----------------------------------------------------
// Example: Inside your JavaPlugin onEnable() method:
// ----------------------------------------------------
/*
@Override
public void onEnable() {
String licenseKey = getConfig().getString("license-key");
boolean isValid = KryptLicenseGuard.verifyLicense("http://localhost:3000", licenseKey, "krypt-core");
if (isValid) {
getLogger().info("✅ License verified successfully! Starting plugin...");
// Start your plugin features here
} else {
getLogger().severe("❌ Invalid or blocked license! Disabling plugin...");
getServer().getPluginManager().disablePlugin(this); // Shuts down plugin!
return; // Don't start the thing!
}
}
*/
Python (Applications / Bots / CLI Tools)
If true, starts Python app. If false, prints error and exits with code 1.
import requests
import sys
def verify_krypt_license(server_url: str, license_key: str, product_id: str) -> bool:
try:
url = f"{server_url}/api/v1/license/verify"
response = requests.post(url, json={
"license_key": license_key,
"product_id": product_id,
"version": "1.0.0"
}, timeout=5)
data = response.json()
return data.get("valid") is True
except Exception as e:
print(f"[Krypt] Error contacting license server: {e}")
return False
# ----------------------------------------------------
# Main Startup Check
# ----------------------------------------------------
LICENSE_KEY = "KRYPT-XXXX-XXXX-XXXX"
PRODUCT_ID = "krypt-core"
SERVER_URL = "http://localhost:3000"
if verify_krypt_license(SERVER_URL, LICENSE_KEY, PRODUCT_ID):
print("✅ License Verified! Launching application...")
# START YOUR PROGRAM HERE
else:
print("❌ Invalid or expired license! Exiting...")
sys.exit(1) # DONT START THE THING!
Node.js / JavaScript / TypeScript
Using native fetch. If true, starts server/bot. If false, aborts with process.exit(1).
async function verifyLicense(serverUrl, licenseKey, productId) {
try {
const res = await fetch(`${serverUrl}/api/v1/license/verify`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ license_key: licenseKey, product_id: productId })
});
const data = await res.json();
return data.valid === true;
} catch (err) {
console.error('[Krypt] License check failed:', err.message);
return false;
}
}
// ----------------------------------------------------
// Startup Guard
// ----------------------------------------------------
(async () => {
const isValid = await verifyLicense('http://localhost:3000', process.env.LICENSE_KEY || 'KRYPT-XXXX', 'krypt-core');
if (isValid) {
console.log('✅ License valid! Starting application...');
// START YOUR APP / BOT / SERVER HERE
} else {
console.error('❌ License verification failed! Terminating...');
process.exit(1); // DONT START THE THING!
}
})();
C# / .NET / Unity / WPF
Using standard HttpClient. If true, loads application. If false, shuts down.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
public class KryptGuard
{
private static readonly HttpClient client = new HttpClient();
public static async Task VerifyLicenseAsync(string serverUrl, string licenseKey, string productId)
{
try
{
var json = $"{{\"license_key\":\"{licenseKey}\",\"product_id\":\"{productId}\"}}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync($"{serverUrl}/api/v1/license/verify", content);
var responseString = await response.Content.ReadAsStringAsync();
return response.IsSuccessStatusCode && responseString.Contains("\"valid\":true");
}
catch (Exception)
{
return false;
}
}
}
// ----------------------------------------------------
// Startup Check
// ----------------------------------------------------
/*
bool isValid = await KryptGuard.VerifyLicenseAsync("http://localhost:3000", "KRYPT-XXXX", "krypt-core");
if (isValid) {
// Start application
} else {
Environment.Exit(1); // DONT START THE THING!
}
*/
Rust
Using reqwest. If true, runs program. If false, exits with panic/status 1.
use serde_json::json;
#[tokio::main]
async fn main() {
let is_valid = verify_license("http://localhost:3000", "KRYPT-XXXX", "krypt-core").await;
if is_valid {
println!("✅ License valid! Starting program...");
// Start your software
} else {
eprintln!("❌ License verification failed! Exiting...");
std::process::exit(1); // DONT START THE THING!
}
}
async fn verify_license(server_url: &str, license_key: &str, product_id: &str) -> bool {
let client = reqwest::Client::new();
let res = client.post(format!("{}/api/v1/license/verify", server_url))
.json(&json!({ "license_key": license_key, "product_id": product_id }))
.send()
.await;
match res {
Ok(response) => {
if let Ok(text) = response.text().await {
text.contains("\"valid\":true")
} else { false }
},
Err(_) => false
}
}
Go (Golang)
Standard net/http. If true, starts daemon. If false, aborts via log.Fatalf.
package main
import (
"bytes"
"encoding/json"
"io"
"log"
"net/http"
"strings"
"time"
)
func verifyLicense(serverUrl, licenseKey, productId string) bool {
payload, _ := json.Marshal(map[string]string{
"license_key": licenseKey,
"product_id": productId,
})
client := &http.Client{Timeout: 5 * time.Second}
resp, err := client.Post(serverUrl+"/api/v1/license/verify", "application/json", bytes.NewBuffer(payload))
if err != nil || resp.StatusCode != 200 {
return false
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
return strings.Contains(string(body), `"valid":true`)
}
func main() {
if !verifyLicense("http://localhost:3000", "KRYPT-XXXX", "krypt-core") {
log.Fatalf("❌ License check failed! Aborting...") // DONT START THE THING!
}
log.Println("✅ License valid! Starting daemon...")
// Start your service
}
cURL / Shell / Bash Script
Quick terminal validation. Exit code 0 on success, 1 on failure.
# Direct cURL License Verification (POST)
curl -s -X POST http://localhost:3000/api/v1/license/verify \
-H "Content-Type: application/json" \
-d '{
"license_key": "KRYPT-XXXX-XXXX-XXXX",
"product_id": "krypt-core"
}' | grep '"valid":true' > /dev/null
if [ $? -eq 0 ]; then
echo "✅ License Valid! Starting software..."
# ./start_my_software.sh
else
echo "❌ License Verification Failed! Exiting..."
exit 1 # DONT START THE THING!
fi
Storefront Auto-Provisioning Webhooks
Configure these webhook URLs in BuiltByBit or Tebex to automatically issue licenses on purchase.
/api/v1/webhooks/builtbybit
Header: X-API-Key: YOUR_API_KEY
/api/v1/webhooks/tebex
Header: X-API-Key: YOUR_API_KEY
Real-Time Verification Logs
| Timestamp | Product | License Key | Request IP | Result | Notes |
|---|
Admin Profile
Local MySQL Database Settings
Discord Bot Integration
OfflineManage and issue licenses directly from your Discord server via slash commands.
Bot#0000
Serving 0 Discord servers
Discord Alert Webhooks
Receive instant Discord embeds on leak attempts, IP violations, and new sales.
Anti-Leak & IP Reset Policies
Master API Keys
| Name | API Key | Permissions | Created | Action |
|---|