Live · Build 49387

API Reference

This is the internal protocol between the VisionCheats loader and our backend. All endpoints, all encryption and all session logic are owned and operated by us, no third-party services.

AES-256-GCM encrypted
Session-token auth
Self-hosted backend
TLS 1.3 only
This API is internal. It is only accessible by authenticated loader instances. All requests must originate from a verified machine token.

Base URL

https://backend.VisionCheats.xyz/v1

Authentication

Every request (except /ping) requires a valid session token obtained from /session/open. The token is sent as a bearer header.

Machine tokens are derived from hardware identifiers and are unique per device. They are hashed before leaving the loader, the raw hardware data never leaves your machine.

Token Header

Authorization: Bearer <session_token>
X-Machine-ID:  <machine_token_hash>
Content-Type:  application/json

Token Lifecycle

💻
Loader starts
derives machine token
🔐
POST /session/open
sends machine hash
🎫
Session token
valid for 24 h
📦
GET /build/latest
uses token
🚀
Execute in memory
0 disk writes

Request Flow

Full sequence from loader start to menu execution.

TLS 1.3 AES-256-GCM HMAC-SHA256 signature In-memory exec
// 1. Loader derives machine token
hash = HMAC_SHA256("vm-salt-v1" + cpu_id + disk_id)

// 2. Open session
POST /v1/session/open
{ "machine": "<hash>", "loader_ver": "2.1" }
// ← { "token": "...", "expires_at": 1234567890 }

// 3. Fetch encrypted build
GET  /v1/build/latest
Authorization: Bearer <token>
// ← binary blob (AES-256-GCM, IV prepended)

// 4. Decrypt in memory
key  = PBKDF2(machine_hash + token, salt, 100000)
data = AES256GCM_Decrypt(blob, key)

// 5. Map to process memory & execute
MapViewOfFile  inject  menu live

Encryption

The build payload is encrypted server-side before dispatch. Only a loader with the correct machine token can derive the decryption key.

PropertyValueNote
AlgorithmAES-256-GCMAuthenticated encryption, tamper-evident
Key derivationPBKDF2-SHA256100 000 iterations per session
IV12 bytes randomPrepended to payload
Auth tag16 bytesAppended, rejects any modification
TransportTLS 1.3Second layer in transit
The decryption key is never stored or transmitted. It is derived at runtime from the machine hash and session token, both of which change each session.

POST  /session/open

Opens an authenticated session for a loader instance. Returns a session token used for all subsequent requests.

Request Body

FieldTypeDescription
machine requiredstringHMAC-SHA256 machine fingerprint (hex, 64 chars)
loader_ver requiredstringLoader version string, e.g. "2.1"
timestamp requirednumberUnix timestamp (±60 s tolerance)
POST /v1/session/open Opens session · returns token
Request
Response 200
Response 403
POST /v1/session/open HTTP/1.1
Host: backend.VisionCheats.xyz
Content-Type: application/json

{
  "machine":    "a3f8c12d...e7b091",
  "loader_ver": "2.1",
  "timestamp":  1725100000
}

Response

{
  "token":      "vm_sess_eyJhbGciOiJIUzI1NiJ9...",
  "expires_at": 1725186400,
  "build":      49387
}

Status Codes

200Session opened, token returned
400Malformed request body or missing fields
403Machine not authorised, unknown or banned
429Too many session attempts, rate limited (see Rate Limits)

GET  /build/latest

Returns the current encrypted build as a binary payload. The loader decrypts it in memory using the session-derived key.

GET /v1/build/latest Encrypted binary blob
GET /v1/build/latest HTTP/1.1
Host:          backend.VisionCheats.xyz
Authorization: Bearer vm_sess_eyJhbGciOiJIUzI1NiJ9...
X-Machine-ID:  a3f8c12d...e7b091

Response Headers

Content-Type:   application/octet-stream
X-Build:        49387
X-Payload-Size: 1241088
X-IV:          <12-byte IV, base64>

Payload Structure

[ 12 bytes IV ][ AES-256-GCM ciphertext ][ 16 bytes auth tag ]

Status Codes

200Encrypted build binary
401Missing or expired session token
403Session token does not match machine ID
503Build not available, server maintenance

GET  /ping

Unauthenticated health check. Use before opening a session to verify backend reachability.

GET /v1/ping No auth required
GET /v1/ping HTTP/1.1
Host: backend.VisionCheats.xyz

Response

{
  "status": "ok",
  "build":  49387,
  "ts":     1725100042
}

POST  /session/verify

Checks whether an existing session token is still valid without consuming rate limit. Use for re-launch without re-authenticating.

POST /v1/session/verify Validate existing token
POST /v1/session/verify HTTP/1.1
Authorization: Bearer <token>

{ "machine": "a3f8c12d...e7b091" }

Response

{
  "valid":      true,
  "expires_at": 1725186400,
  "build":      49387
}

Error Codes

All errors return JSON with a code and human-readable message.

{
  "error": {
    "code":    "MACHINE_BANNED",
    "message": "This machine has been permanently banned.",
    "status":  403
  }
}
CodeHTTPMeaning
MACHINE_UNKNOWN403Machine hash not in allow-list
MACHINE_BANNED403Machine permanently banned
SESSION_EXPIRED401Token older than 24 h
SESSION_MISMATCH403Token was issued for different machine
VERSION_TOO_OLD426Loader version no longer supported
BUILD_UNAVAILABLE503No build currently available (maintenance)
RATE_LIMITED429Too many requests, see Retry-After header
INVALID_BODY400JSON parse error or missing required field

Rate Limits

Limits are per machine token and reset on a rolling window.

EndpointLimitWindow
/session/open5 requestsper minute
/build/latest10 requestsper hour
/session/verify30 requestsper minute
/pingUnlimited-
When rate-limited the response includes a Retry-After header with the number of seconds to wait.

Changelog

VersionDateChange
v1.22026-09-04Added /session/verify endpoint
v1.12026-08-12Switched key derivation to PBKDF2 (100k rounds)
v1.02026-07-01Initial internal release
VisionCheats API, internal use only.
All endpoints are ours. All encryption is ours. Nothing passes through a third party.