"use client"; import Link from "next/link"; import { useState, useEffect, useCallback } from "react"; export default function VaultNetworkPage() { const [btcUsd, setBtcUsd] = useState(null); const [btcErr, setBtcErr] = useState(null); const [broadcast, setBroadcast] = useState(""); const [terminalLines, setTerminalLines] = useState([]); const [sessionToken, setSessionToken] = useState(""); const fetchBtc = useCallback(async () => { try { const res = await fetch("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd", { cache: "no-store", }); if (!res.ok) throw new Error("rate http"); const j = (await res.json()) as { bitcoin?: { usd?: number } }; const p = j.bitcoin?.usd; if (p && Number.isFinite(p)) { setBtcUsd(p); setBtcErr(null); } else throw new Error("bad payload"); } catch { setBtcErr("Could not load BTC/USD"); } }, []); useEffect(() => { setSessionToken( typeof crypto !== "undefined" && "randomUUID" in crypto ? crypto.randomUUID().slice(0, 13) : String(Date.now()), ); }, []); useEffect(() => { void fetchBtc(); const id = setInterval(() => void fetchBtc(), 60_000); return () => clearInterval(id); }, [fetchBtc]); useEffect(() => { const interval = setInterval(() => { const logs = [ `[TOR] circuit refresh (synthetic tick — not your live Tor log)`, `[NGINX] 200 GET /market from 127.0.0.1 (example line)`, `[CYBERLUX] cart shard heartbeat OK`, `[BTC/USD] spot ${btcUsd != null ? `$${btcUsd.toLocaleString(undefined, { maximumFractionDigits: 0 })}` : "…"}`, ]; setTerminalLines((prev) => [...prev.slice(-15), logs[Math.floor(Math.random() * logs.length)]!]); }, 4500); return () => clearInterval(interval); }, [btcUsd]); const handleBroadcast = () => { localStorage.setItem("shadow_broadcast", broadcast); setTerminalLines((prev) => [...prev, `[ADMIN] GLOBAL BROADCAST: ${broadcast || "(empty)"}`]); }; const btcDisplay = btcUsd != null ? btcUsd.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : btcErr ?? "…"; return (

Network digest

UI session: {sessionToken || "—"}
Not live Tor admin — decorative console

Public spot (CoinGecko)

BTC/USD ${btcDisplay}

Refreshes about every minute. For deposits use{" "} Add funds .

Broadcast stub