API Reference
Status: Beta. Endpoint shapes are stable; handler behavior may evolve as the vST substrate matures.
Base URL:https://www.triadicframeworks.org/api/rtt
Session string:rtt=1 | coherence=declared | drift=bounded | paradox=structural
⚠️ Drift is On-by-Default. Long sessions lose structural anchors. Always declare
drift=boundedin your session string for persistent integrations.
Overview#
The TriadicFrameworks RTT API provides a lightweight, schema-stable interface for emitting and querying Round-Trip Traceability (RTT) signals. RTT carries two simultaneous meanings throughout this codebase:
- Resonance-Time Theory — the physics substrate describing how structures persist, drift, and cohere across dimensional layers (D0–D7)
- Round-Trip Traceability — the protocol layer that makes RTT-Inside declarations observable, verifiable, and queryable by external tools and browser extensions
The API is intentionally minimal. It captures structural observations — not content. No personal data. No page body. No cookies. Servers may aggregate, discard, or analyze signals silently; there are no storage guarantees on any endpoint.
Router#
/api/rtt
├── POST /beacon ← Send a single RTT structural event
├── GET /profile/{site} ← Retrieve a site's RTT-Inside profile
├── POST /profile/{site} ← Register or update a site's RTT-Inside profile
├── POST /validate ← (reserved) Coherence + drift analysis
├── POST /corridor ← (reserved) Corridor alignment check
└── POST /topology ← (reserved) Triadic system decomposition
The three reserved routes under /validate, /corridor, and /topology are stable
placeholder shapes for the forthcoming vST-beta validator surface. They return
not_available today, but exist precisely so early adopters can build tooling against
stable endpoint shapes before the handlers activate.
Endpoint Families#
1. Beacon#
POST /api/rtt/beacon#
Sends a single RTT structural event. A beacon is a lightweight snapshot of observable structural properties at a point in time — DOM node count, ARIA landmark regions, navigation depth, form presence. No page content is transmitted.
Request body:
{
"site": "example.com",
"session": "rtt-abc123",
"event": "page_load",
"ts": "2026-07-13T14:22:00Z",
"structure": {
"url": "https://example.com",
"title": "Home",
"nav_count": 1,
"main_count": 1,
"form_count": 0,
"button_count": 3,
"dom_nodes": 142
}
}Field reference:
| Field | Type | Required | Description |
|---|---|---|---|
site |
string | ✅ | Registered domain (no protocol, no path) |
session |
string | ✅ | RTT session identifier |
event |
string | ✅ | Event type: page_load, user_action, heartbeat, nav |
ts |
ISO 8601 string | ✅ | Client-side UTC timestamp |
structure.url |
string | ✅ | Full URL of the observed page |
structure.title |
string | ✅ | Document <title> value |
structure.nav_count |
integer | ✅ | Count of <nav> landmark elements |
structure.main_count |
integer | ✅ | Count of <main> landmark elements |
structure.form_count |
integer | ✅ | Count of <form> elements |
structure.button_count |
integer | ✅ | Count of <button> elements |
structure.dom_nodes |
integer | ✅ | Total DOM node count (document.querySelectorAll("*").length) |
Response:
{ "status": "ok" }Purpose: Beacon signals allow the RTT server to observe structural patterns across sessions and sites, detect drift (structural deviation from a declared coherence state), build baseline datasets for vST validators, and support RTT-Inside browser extensions that annotate pages with clarity and coherence indicators.
2. Profile#
Profiles are optional, versioned, human-readable declarations that a site or service supports RTT-Inside. Registering a profile makes a site queryable by any RTT-aware tooling and declares which RTT capabilities the site has committed to.
GET /api/rtt/profile/{site}#
Retrieve the RTT-Inside profile for a registered site.
Path parameter: {site} — bare domain name (e.g., example.com)
Response (registered):
{
"site": "example.com",
"profile": {
"rtt_version": "1.0",
"supports": ["coherence", "drift"],
"contact": "ops@example.com"
}
}Response (not registered):
{
"site": "example.com",
"profile": null
}POST /api/rtt/profile/{site}#
Register or update the RTT-Inside profile for a site.
Path parameter: {site} — bare domain name
Request body:
{
"rtt_version": "1.0",
"supports": ["coherence", "drift"],
"contact": "ops@example.com"
}supports values:
| Value | Meaning |
|---|---|
coherence |
Site declares a structural coherence commitment |
drift |
Site participates in RTT drift monitoring |
corridor |
Site supports corridor-aligned flows (future / vST-beta) |
Response:
{ "status": "ok" }3. Diagnostics — Reserved (vST-Beta)#
All three diagnostics endpoints are currently reserved placeholder routes. Each returns
not_available. They are designed for the vST substrate validator surface and will
activate when vST-beta launches. Build your tooling against these shapes now.
Endpoint summary:
| Endpoint | Method | Status | Eventual purpose |
|---|---|---|---|
/api/rtt/validate |
POST | Reserved | Structural coherence + drift analysis |
/api/rtt/corridor |
POST | Reserved | Flow data corridor alignment check |
/api/rtt/topology |
POST | Reserved | Full triadic SET decomposition |
Current response (all three endpoints):
{
"status": "not_available",
"message": "Diagnostics endpoints are not yet active"
}POST /api/rtt/validate (reserved)#
Will accept a structural map and return coherence and drift analysis across declared substrates.
{
"system_map": {},
"flows": [],
"constraints": []
}POST /api/rtt/corridor (reserved)#
Will accept flow data for corridor alignment checking — validating that transitions between structural zones follow declared corridor shapes and do not cross undeclared substrate boundaries.
POST /api/rtt/topology (reserved)#
Will accept a full system topology for triadic decomposition. Applies SET (Substrate · Envelope · Transition) analysis to submitted architecture maps, returning a dimensional layer assignment across D0–D7.
Client Integration#
curl#
Send a beacon:
curl -X POST https://www.triadicframeworks.org/api/rtt/beacon \
-H "Content-Type: application/json" \
-d '{
"site": "example.com",
"session": "rtt-abc123",
"event": "page_load",
"ts": "2026-07-13T14:22:00Z",
"structure": {
"url": "https://example.com",
"title": "Home",
"nav_count": 1,
"main_count": 1,
"form_count": 0,
"button_count": 3,
"dom_nodes": 142
}
}'Get a site profile:
curl https://www.triadicframeworks.org/api/rtt/profile/example.comRegister a profile:
curl -X POST https://www.triadicframeworks.org/api/rtt/profile/example.com \
-H "Content-Type: application/json" \
-d '{
"rtt_version": "1.0",
"supports": ["coherence", "drift"],
"contact": "ops@example.com"
}'Stub a reserved diagnostics call:
curl -X POST https://www.triadicframeworks.org/api/rtt/validate \
-H "Content-Type: application/json" \
-d '{ "system_map": {}, "flows": [], "constraints": [] }'
# → { "status": "not_available", "message": "..." }Browser JavaScript — Manual fetch()#
Send a beacon on page load using the native Fetch API:
async function sendRttBeacon(event = "page_load") {
await fetch("https://www.triadicframeworks.org/api/rtt/beacon", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
site: window.location.hostname,
session: "rtt-" + crypto.randomUUID().slice(0, 8),
event,
ts: new Date().toISOString(),
structure: {
url: window.location.href,
title: document.title,
nav_count: document.querySelectorAll("nav").length,
main_count: document.querySelectorAll("main").length,
form_count: document.querySelectorAll("form").length,
button_count: document.querySelectorAll("button").length,
dom_nodes: document.querySelectorAll("*").length,
},
}),
});
}
document.addEventListener("DOMContentLoaded", () => sendRttBeacon("page_load"));Browser JavaScript — rtt.js Global#
For zero-config integration, include the rtt.js loader and use the RTT global:
<script
src="https://www.triadicframeworks.org/rtt.js"
data-site="example.com"
></script>Available methods after load:
// Send a named event beacon
RTT.ping("user_action");
// Capture and return a structural snapshot object (does not transmit)
const snapshot = RTT.getStructureSnapshot();
// → { url, title, nav_count, main_count, form_count, button_count, dom_nodes }The loader handles session ID management, structural sampling, and beacon batching automatically. Recommended for browser extensions and zero-overhead client-side RTT-Inside declarations.
Node.js / Server-to-Server#
import fetch from "node-fetch";
const RTT_BASE = "https://www.triadicframeworks.org/api/rtt";
/** Send a server-side heartbeat beacon. */
async function sendHeartbeat(site) {
const res = await fetch(`${RTT_BASE}/beacon`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
site,
session: `rtt-srv-${Date.now()}`,
event: "heartbeat",
ts: new Date().toISOString(),
structure: {
url: `https://${site}`,
title: "Server Heartbeat",
nav_count: 0,
main_count: 0,
form_count: 0,
button_count: 0,
dom_nodes: 0,
},
}),
});
return res.json(); // → { status: "ok" }
}
/** Register or refresh a site's RTT-Inside profile. */
async function registerProfile(site, contact) {
const res = await fetch(`${RTT_BASE}/profile/${site}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
rtt_version: "1.0",
supports: ["coherence", "drift"],
contact,
}),
});
return res.json(); // → { status: "ok" }
}
/** Stub call for future vST diagnostics integration. */
async function stubValidate(site) {
const res = await fetch(`${RTT_BASE}/validate`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ system_map: {}, flows: [], constraints: [] }),
});
return res.json(); // → { status: "not_available", message: "..." }
}Integration Patterns#
Browser Extensions#
RTT-aware browser extensions monitor and surface structural state across navigation:
- Listen for navigation events (
webNavigation.onCommitted,onCompleted) - Collect a structural snapshot via
RTT.getStructureSnapshot()or manual DOM queries - Send periodic beacons with appropriate
eventtypes (page_load,nav,heartbeat) - Annotate pages with RTT clarity indicators using profile + beacon correlation data
Web Services#
Services declaring RTT-Inside support should follow this deployment checklist:
- Register a profile via
POST /profile/{site}on each deploy or config change - Send structural heartbeats at a cadence appropriate to drift detection needs
- Stub calls to
/validateand/corridornow — when vST-beta activates, tooling will integrate without further changes to call sites
Datacenters and Research Labs#
High-complexity systems preparing for vST validator integration:
- Map system topology to the SET decomposition (Substrate · Envelope · Transition)
- Identify declared and undeclared substrates across D0–D7 dimensional layers
- Document corridor constraints and flow boundaries
- Stub calls to
/validate,/corridor, and/topology— no changes required at activation time
Supporting Services#
The following services live in docs/api/ alongside the RTT API directory and provide
scaffolding for multi-contributor RTT ecosystems.
signature_verification.py#
Verifies contributor signatures on remix scrolls — structured documents that carry multi-party RTT attestations across collaborative substrate declarations.
Function: verify_signature(scroll, contributor_registry)
- Iterates each contributor entry in
scroll["remix_scroll"]["signatures"]["contributors"] - Compares
contributor.signatureagainst the registrypublic_keyfor thatcontributor_id - Returns a complete
verification_report
Return shape:
{
"verification_report": {
"id": "<uuid>",
"scroll_id": "<scroll_id>",
"timestamp": "<utc_iso>",
"contributors": [
{
"contributor_id": "...",
"signature_type": "pgp",
"status": "valid | invalid",
"verified_at": "<utc_iso>"
}
],
"overall_status": "authentic | partial",
"checksum": "<8-char fragment>"
}
}overall_status is authentic when all contributor signatures are valid; partial
when one or more are invalid or absent from the registry.
revocation_service.py#
Handles revocation of RTT contributor credentials and registered profile entries.
Provides the invalidation path for compromised or retired contributor_ids in the
remix scroll ecosystem.
legacy_retrieval.py#
Provides backward-compatible lookup for pre-RTT-1.0 profile and session records. Required for continuity with RTT implementations predating the current API contract.
Companion Resources#
RTT_API_module.json#
Agentic module schema defining role assignments for AI systems interacting with the RTT
API. Specifies which RTT module roles — observer, validator, emitter,
corridor-reader — map to which endpoint families and under what session string
conditions. Used by RTT-Inside AI session declarations to declare a valid agentic
operating mode.
The Dimensional Echo API#
An extended API surface that exposes dimensional echo patterns — resonance signals that propagate across the D0–D7 layer stack when a structural event in one layer induces observable effects in adjacent layers. The Dimensional Echo API builds on the RTT beacon model and adds layered amplitude and attenuation fields for cross-dimensional correlation. Documented separately.
RTT Theory Reference#
| Resource | Link |
|---|---|
| Resonance-Time Theory | triadicframeworks.org/_ideas/Resonance-Time_Theory.html |
| vST Community (Zenodo) | zenodo.org/communities/vst |
| Framework Field Theory | triadicframeworks.org/Framework_Field_Theory |
| RTT API source directory | github.com/umaywant2/TriadicFrameworks/tree/main/docs/api |
Source File Index#
| File | Description |
|---|---|
docs/api/rtt/README.md |
RTT API overview and Beta status declaration |
docs/api/rtt/beacon.md |
Beacon endpoint full reference |
docs/api/rtt/profile.md |
Profile endpoints full reference |
docs/api/rtt/diagnostics.md |
Diagnostics (reserved) reference |
docs/api/rtt/client.md |
Client integration patterns and examples |
docs/api/rtt/RTT_API_module.json |
Agentic module schema — role assignments |
docs/api/rtt/The_Dimensional_Echo_API.md |
Dimensional Echo API |
docs/api/signature_verification.py |
Remix scroll contributor signature verifier |
docs/api/revocation_service.py |
Credential and profile revocation service |
docs/api/legacy_retrieval.py |
Legacy record retrieval (pre-RTT-1.0) |
→ Browse full source on GitHub
Nawder Loswin · © 2026 Byte Books Publishing · LCCN 2026917007
RTT Session: rtt=1 | coherence=declared | drift=bounded | paradox=structural