AUVRA Dynamics is a synthetic autonomous cognitive defense engine for the Solana network. The public interface is a simple HTTP endpoint that accepts incident context and responds with an incident-grade analytic report in plain text.
{
"prompt": "Describe the incident, threat, or security question..."
}
You may also POST raw text in the body. If JSON parsing fails, AUVRA treats the body as the prompt string directly.
AUVRA:DYNAMICS//SOLANA-DEFENSE
synthetic autonomous cognitive defense for a decentralized future
REPORT: AUVRA-ANALYTIC
NODE: AUVRA-CORE-01
MODE: incident-grade-analysis
TIMESTAMP: 2025-11-09T12:34:56Z UTC
------------------------------------------------------------
Context:
...
Threat Model:
...
Recommended Actions:
...
------------------------------------------------------------
END-OF-REPORT
curl -X POST https://auvradynamics.pro/playground/auvra/ \
-H "Content-Type: application/json" \
-d '{"prompt":"Simulate a Solana validator compromise scenario."}'
The AUVRA inference server is exposed as a simple HTTP endpoint. You send a JSON payload
with a single prompt field and receive a fully formatted incident-grade report
as plain text.
POST /playground/auvra HTTP/1.1
Host: auvradynamics.pro
Content-Type: application/json
{"prompt":"Explain how to monitor validator integrity anomalies on Solana."}
You can also call it directly as:
https://auvradynamics.pro/playground/auvra.
From the browser, call https://auvradynamics.pro/playground/auvra with a JSON
body containing prompt. Use the helper from api.js to parse the
response and extract the report body.
import { callAuvraBrowser } from "./api.js";
async function run() {
const res = await callAuvraBrowser(
"Propose response steps for a compromised upgrade authority."
);
if (!res.ok) {
console.error("AUVRA error", res.status, res.text);
return;
}
console.log(res.parsed.reportBody);
}
- Send clear incident / threat context as
prompt. - Treat the result as a report, not a chat message.
- Pipe
parsed.reportBodyinto your UI, logs, or ticketing system. - Keep
brand,node, andtimestampfor audit trails.
Drop this file into your project as api.js. It exposes two helpers:
callAuvraBrowser and callAuvraNode, plus a parser that
extracts the analytic payload from the plain-text response.
const AUVRA_DEFAULT_ENDPOINT = "https://auvradynamics.pro/playground/auvra";
export async function callAuvraBrowser(prompt, options = {}) {
const endpoint = options.endpoint || AUVRA_DEFAULT_ENDPOINT;
const node = options.node;
const body = JSON.stringify({ prompt });
const url = node ? `${endpoint}?node=${encodeURIComponent(node)}` : endpoint;
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body
});
const text = await res.text();
const parsed = parseAuvraTextResponse(text);
return { ok: res.ok, status: res.status, text, parsed };
}
export async function callAuvraNode(prompt, options = {}) {
const endpoint = options.endpoint || AUVRA_DEFAULT_ENDPOINT;
const node = options.node;
const body = JSON.stringify({ prompt });
const url = node ? `${endpoint}?node=${encodeURIComponent(node)}` : endpoint;
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body
});
const text = await res.text();
const parsed = parseAuvraTextResponse(text);
return { ok: res.ok, status: res.status, text, parsed };
}
export function parseAuvraTextResponse(text) {
const result = {
raw: text,
meta: {},
reportBody: text
};
if (!text) return result;
const lines = text.split(/\r?\n/);
let bodyStartIndex = 0;
// Simple header parsing: read key-value lines until separator
for (let i = 0; i < lines.length; i++) {
const line = lines[i].trim();
if (line.startsWith("---")) {
bodyStartIndex = i + 1;
break;
}
const colonIndex = line.indexOf(":");
if (colonIndex > 0) {
const key = line.slice(0, colonIndex).trim();
const value = line.slice(colonIndex + 1).trim();
if (key && value) {
result.meta[key] = value;
}
}
}
// Extract body between separator and END-OF-REPORT (if present)
const bodyLines = [];
for (let i = bodyStartIndex; i < lines.length; i++) {
const line = lines[i];
if (line.trim().startsWith("END-OF-REPORT")) break;
bodyLines.push(line);
}
if (bodyLines.length > 0) {
result.reportBody = bodyLines.join("\n").trim();
}
return result;
}
import { callAuvraNode } from "./api.js";
(async () => {
const res = await callAuvraNode(
"Analyze risk of current Solana cryptography against future quantum attacks."
);
if (!res.ok) {
console.error("AUVRA error", res.status, res.text);
return;
}
console.log(res.parsed.meta);
console.log(res.parsed.reportBody);
})();
fetch (Node 18+)
or polyfill it (for example with node-fetch).