API KEY
No API key yet.
API CREDITS
0credits (1 credit = 1 obfuscation)
EARN API CREDITS
Linkvertise+50 credits
Complete a quick Linkvertise offer to earn 50 API credits.
API USAGE
Endpoints:
| Method | Path | Description |
|---|---|---|
| POST | /v1/user/obfuscate | Start obfuscation |
| GET | /v1/user/status/{taskId} | Poll obfuscation status |
| GET | /v1/user/download/{taskId} | Download obfuscated file |
Headers:
x-api-key: YOUR_API_KEYBody (JSON) — POST /v1/user/obfuscate:
{
"code": "print('hello')",
"filename": "script.lua",
"target": "roblox",
"options": { "vm": true }
}Response — POST /v1/user/obfuscate:
{
"success": true,
"task_id": "627104be-8cae-4052-b19f-62607fb8d729",
"filename": "script.lua",
"credits_remaining": 49
}EXAMPLES
cURL (full workflow):
# 1. Obfuscate
TASK=$(curl -s -X POST https://crypt.redstoneguard.xyz/v1/user/obfuscate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"code":"print(\"hello\")","filename":"test.lua","target":"roblox","options":{"vm":true}}' | jq -r .task_id)
# 2. Wait for completion
while true; do
STATUS=$(curl -s https://crypt.redstoneguard.xyz/v1/user/status/$TASK \
-H "x-api-key: YOUR_API_KEY" | jq -r .status)
echo "$STATUS"
[ "$STATUS" = "complete" ] && break
sleep 2
done
# 3. Download
curl -o obfuscated.lua https://crypt.redstoneguard.xyz/v1/user/download/$TASK \
-H "x-api-key: YOUR_API_KEY"Python (full workflow):
import requests, time, sys
BASE = "https://crypt.redstoneguard.xyz"
HEADERS = {"x-api-key": "YOUR_API_KEY"}
# 1. Obfuscate
r = requests.post(f"{BASE}/v1/user/obfuscate",
json={"code": 'print("hello")', "filename": "test.lua",
"target": "roblox", "options": {"vm": True}},
headers=HEADERS)
data = r.json()
task_id = data.get("task_id") or data.get("id")
print("Task:", task_id, "| full response:", data)
if not task_id:
print("ERROR: no task_id in response:", data)
sys.exit(1)
# 2. Wait for completion
while True:
r = requests.get(f"{BASE}/v1/user/status/{task_id}", headers=HEADERS)
st = r.json()
status = st.get("status")
print("Status:", status)
if status in ("complete", "failed"):
if status == "failed":
print("Obfuscation failed:", st.get("error") or st)
sys.exit(1)
break
time.sleep(2)
# 3. Download
r = requests.get(f"{BASE}/v1/user/download/{task_id}", headers=HEADERS, stream=True)
if not r.ok:
print("Download failed:", r.status_code, r.text)
sys.exit(1)
with open("obfuscated.lua", "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
print("Downloaded obfuscated.lua")Node.js (full workflow):
const BASE = "https://crypt.redstoneguard.xyz";
const HEADERS = { "x-api-key": "YOUR_API_KEY" };
// 1. Obfuscate
const obRes = await fetch(BASE + "/v1/user/obfuscate", {
method: "POST", headers: { "Content-Type": "application/json", ...HEADERS },
body: JSON.stringify({ code: 'print("hello")', filename: "test.lua",
target: "roblox", options: { vm: true } }),
});
const { task_id } = await obRes.json();
// 2. Wait for completion
while (true) {
const stRes = await fetch(BASE + "/v1/user/status/" + task_id, { headers: HEADERS });
const st = await stRes.json();
console.log(st.status);
if (st.status === "complete" || st.status === "failed") break;
await new Promise(r => setTimeout(r, 2000));
}
// 3. Download
const dlRes = await fetch(BASE + "/v1/user/download/" + task_id, { headers: HEADERS });
const buf = Buffer.from(await dlRes.arrayBuffer());
require("fs").writeFileSync("obfuscated.lua", buf);SETTINGS (options)
| Option | Type | Default | Description |
|---|---|---|---|
| vm | bool | false | Bytecode virtualization |
| encrypt_strings | bool | false | String encryption |
| constant_protect | bool | false | Obfuscate numbers/bools |
| opaque_preds | bool | false | Opaque predicates |
| flatten_cf | bool | false | CFG flattening |
| rename_idents | bool | false | Symbol mangling |
| anti_dump | bool | false | Memory scrubbing |
| anti_hook | bool | false | Hook detection |
| dead_code | bool | false | Junk code injection |
| platform_lock | bool | false | Lock to target env |
| compress_vm | bool | false | Mini VM template |
| pretty | bool | false | Readable output |
| str_mode | string | rolling | rolling|xtea|v3-hybrid |
| density | number | 0.3 | Obfuscation density 0-1 |
| watermark | string | Custom watermark text embedded at runtime | |
| anti_tamper | bool | false | Timestamp expiry + multi-layer integrity |
| expiry | number | UNIX timestamp after which script self-destructs |