<!doctype html><htmllang="en"><head><metacharset="utf-8" /><metaname="viewport"content="width=device-width, initial-scale=1" /><title>cybergraph โ cyberstates</title><linkrel="preconnect"href="https://fonts.googleapis.com" /><linkrel="preconnect"href="https://fonts.gstatic.com"crossorigin /><linkhref="https://fonts.googleapis.com/css2?family=Play:wght@400;700&display=swap"rel="stylesheet" /><style>:root{--cyber-black:#000000;--cyber-green:#00ff41;--cyber-cyan:#00e5ff;--cyber-yellow:#ffd700;--cyber-magenta:#ff00ff;--cyber-dim:#1a1a1a;--cyber-muted:#333333;--cyber-text:#e0e0e0;}*{margin:0;padding:0;box-sizing:border-box;}html{overflow-y:scroll;scrollbar-gutter:stable;}body{font-family:"Play",sans-serif;background:var(--cyber-black);color:var(--cyber-text);min-height:100vh;-webkit-font-smoothing:antialiased;}.page-frame{max-width:1100px;margin:0auto;padding:20px24px80px;}@media(max-width:640px){.page-frame{padding:12px10px72px;}}.header-row1{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;flex-wrap:wrap;}.logo{font-size:clamp(22px, 4vw, 32px); font-weight:700;line-height:1.1;color:#fff;text-decoration:none;}.logospan.mark{color:var(--cyber-magenta);}.logo-suffix{min-height:14px;line-height:14px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,0,255,0.55);margin-top:4px;}.nav-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}.nav-btn{font-family:"Play",sans-serif;font-size:12px;font-weight:700;letter-spacing:2px;color:#000;text-decoration:none;background:var(--btn-c);border:1pxsolidvar(--btn-c);padding:8px14px;border-radius:2px;transition:all0.15s;white-space:nowrap;}.nav-btn:hover{filter:brightness(1.1);}.nav-states{--btn-c:var(--cyber-green);}.nav-tokens{--btn-c:var(--cyber-yellow);}.nav-lytics{--btn-c:var(--cyber-cyan);}.nav-bbg{--btn-c:#ff6600;}.nav-cybergraph{--btn-c:var(--cyber-magenta);}.nav-btn.nav-here{background:transparent;color:var(--btn-c);box-shadow:none;}.meta-line{font-size:12px;letter-spacing:1px;color:#555;margin:8px020px;line-height:1.6;}.section-label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#555;margin:28px012px;}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;}.stat-card{background:#050505;border:1pxsolid#1a1a1a;border-radius:2px;padding:14px16px;min-width:0;}.stat-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#555;margin-bottom:8px;}.stat-value{font-size:clamp(16px, 3vw, 24px); font-weight:700;color:var(--cyber-magenta);font-variant-numeric:tabular-nums;line-height:1.15;}.stat-hint{font-size:11px;color:#444;margin-top:6px;letter-spacing:0.5px;}.hint{font-size:12px;color:#3a3a3a;margin:10px00;letter-spacing:0.5px;line-height:1.5;}.table-wrap{overflow-x:auto;margin-top:4px;border:1pxsolid#111;border-radius:2px;}.cyber-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;}.cyber-tableth{background:#050505;border-bottom:1pxsolidvar(--cyber-muted);padding:10px14px;text-align:left;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--cyber-magenta);white-space:nowrap;}.cyber-tabletd{padding:9px14px;border-bottom:1pxsolid#0e0e0e;white-space:nowrap;}.cyber-tabletr:last-childtd{border-bottom:none;}.cyber-tabletd.num{text-align:right;font-variant-numeric:tabular-nums;}.cyber-tabletd.hash{font-family:monospace;color:#888;}.cyber-table.empty{color:#333;font-style:italic;padding:16px;text-align:center;}.feed{display:flex;flex-direction:column;gap:8px;}.sig-card{background:#050505;border:1pxsolid#161616;border-radius:2px;padding:12px14px;}.sig-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11px;color:#666;margin-bottom:8px;font-family:monospace;}.sig-headb{color:var(--cyber-cyan);font-family:"Play",sans-serif;}.link-row{font-family:monospace;font-size:12px;color:#aaa;padding:3px0;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}.link-row.arrow{color:var(--cyber-magenta);}.link-row.amt{color:var(--cyber-yellow);margin-left:auto;}.valence-pos{color:var(--cyber-green);}.valence-neg{color:#ff0040;}.valence-zero{color:#555;}.footer{margin-top:60px;font-size:11px;color:#333;text-align:center;letter-spacing:1px;}.footera{color:#555;}</style></head><body><divclass="page-frame"><divclass="header-row1"><div><aclass="logo"href="/lytics/cybergraph"><spanclass="mark">โฌ</span> CYBERGRAPH</a><divclass="logo-suffix"id="logo-suffix">cyberstates ยท chains + links</div></div><divclass="nav-row"><aclass="nav-btn nav-states"href="/">STATES</a><aclass="nav-btn nav-tokens"href="/tokens">TOKENS</a><aclass="nav-btn nav-lytics"href="/lytics/">LYTICS</a><aclass="nav-btn nav-bbg"href="/lytics/bbg">BBG</a><aclass="nav-btn nav-cybergraph nav-here"href="/lytics/cybergraph">CYBERGRAPH</a></div></div><divclass="meta-line"id="meta">loadingโฆ</div><divclass="section-label">overview</div><divclass="stat-grid"id="ov"></div><pclass="hint">
a signal chain is cybergraph's own per-node bookkeeping โ step,
prev, hash, equivocation-checked โ never a bbg dimension. these
numbers come straight from <code>Cybergraph.chains</code>, not a
query, the same way reading any Rust struct's own fields is not
"querying" (see <code>/bbg</code> for what is).
</p><divclass="section-label">estimated size</div><divclass="stat-grid"id="size-total"></div><divclass="table-wrap"style="margin-top:12px"><tableclass="cyber-table"id="size-breakdown"></table></div><pclass="hint"><code>size_of_val</code> on every stored <code>Signal</code>
plus its actual <code>links</code>/<code>delta_pi</code>
heap contents โ data payload only, <code>BTreeMap</code> node
overhead and <code>Vec</code> capacity slack not included.
</p><divclass="section-label">chains โ most active</div><divclass="table-wrap"><tableclass="cyber-table"id="chains"></table></div><divclass="section-label">network labels</div><divclass="table-wrap"><tableclass="cyber-table"id="networks"></table></div><pclass="hint">
every signal declares a resolved <code>private_network</code>
label (<code>H("network:"+neuron)</code>) โ but
<code>BbgState::insert</code> does not partition by it, confirmed
directly against the evaluator's source. every label below lands
in the one shared particles/axons/neurons state this instance
holds. shown honestly: this is a routing label today, not
isolation.
</p><divclass="section-label">recent signals</div><divclass="feed"id="signals"></div><divclass="footer">
๐ด a <ahref="https://cyberia.to">cyberia</a> project ยท
<ahref="https://cyberstates.net">cyberstates.net</a> ยท the semantic layer over bbg
</div></div><script>// this page is served at `<site-root>/cybergraph` (e.g.
// /lytics/cybergraph behind cyberstates' nginx rewrite) โ derive
// that root from location.pathname so the fetch below hits the
// same backend this page came from, not the outer site's /api/.
constroot=location.pathname.split("/").slice(0,-1).join("/")+"/";constget=(name,extra="")=>fetch(`${root}api/cybergraph/report/${name}${extra}`).then((r)=>r.json());constshort=(h)=>(h&&h.length>14?h.slice(0,8)+"โฆ"+h.slice(-4):h||"");functiontable(el,headers,data,cols){if(!data||!data.length){el.innerHTML=`<tbody><tr><td class="empty" colspan="${headers.length}">โ 0 records</td></tr></tbody>`;return;}el.innerHTML=`<thead><tr>${headers.map((h, i) => `
${h}</th>`).join("")}</tr></thead><tbody>` +
data
.map((r) => `<tr>${cols.map(([c, cls]) => `