"use client"; import Link from "next/link"; import { useMemo, useState } from "react"; import ThemedLayout from "@/components/layouts/ThemedLayout"; function shortAddr(addr: string) { return addr.length > 12 ? `${addr.slice(0, 6)}…${addr.slice(-4)}` : addr; } export default function SupportPage() { const [copied, setCopied] = useState(false); // Placeholder addresses — replace with your own. const addresses = useMemo( () => ({ BTC: "bc1qexampledonationaddress0000000000000000000000000", ETH: "0x000000000000000000000000000000000000dEaD", XMR: "4Aexamplemonerodonationaddressxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", }), [], ); const copy = async (text: string) => { try { await navigator.clipboard.writeText(text); setCopied(true); window.setTimeout(() => setCopied(false), 1200); } catch { // no-op } }; return (
optional ritual

THE OFFERING

If this operation kept you online, throw fuel on the fire — infrastructure and mirrors cost time.

Transparent tip jar — optional, no paywalls, no pressure. You choose the asset and the amount.

{(["BTC", "ETH", "XMR"] as const).map((coin) => (
{coin}
donation address
{addresses[coin]}
{shortAddr(addresses[coin])}
))}
What you’re supporting
  • - More microsites and lore leaks
  • - More Vault unlocks and keys
  • - More UI weirdness (the good kind)
Where to go next
Webring Vault Profit Sim Back to CyberLux →
Settlement note: confirm the BTC address against the signed block on the hub each session. Same bytes, every time.
); }