"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 parody universe entertained you, you can support its continued existence.

This is a transparent tip jar. No promises, no paywalls, no “send or else” energy. Completely optional.

{(["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.
); }