"use client"; import { useState } from "react"; import Link from "next/link"; import ThemedLayout from "@/components/layouts/ThemedLayout"; import { useAccount } from "@/contexts/AccountContext"; import { useWallet } from "@/contexts/WalletContext"; const MEMBERSHIP_TIERS = [ { name: "Associate", minLux: 0, description: "Access to the channel digest and ring updates." }, { name: "Operative", minLux: 500, description: "Priority listing visibility and vault drop previews." }, { name: "Handler", minLux: 2000, description: "Early market access, barter priority lane, vendor fast-track." }, { name: "Principal", minLux: 8000, description: "All tiers plus operator-level forum ring keys and direct relay contact." }, ]; function getTier(lux: number) { let result = MEMBERSHIP_TIERS[0]!; for (const t of MEMBERSHIP_TIERS) { if (lux >= t.minLux) result = t; } return result; } const DIGEST = [ { tag: "MARKET", text: "New entropy dongle batch listed — vendor @relay_op, verified PGP.", href: "/market" }, { tag: "FORUM", text: "Thread on OPSEC hygiene for multi-site handles is trending in Ring IV.", href: "/forum" }, { tag: "DROPS", text: "Next scheduled drop in ~18h. Add /drops to your watchlist.", href: "/drops" }, { tag: "EXCHANGE", text: "WTB listing for XMR-to-credit bridge services posted 4h ago.", href: "/exchange" }, { tag: "VAULT", text: "Your receipts and earned keys live in the Vault — check after checkout.", href: "/vault" }, ]; export default function InnerCirclePage() { const { user, hydrated } = useAccount(); const { luxCredits } = useWallet(); const tier = getTier(luxCredits); const [tab, setTab] = useState<"digest" | "tiers" | "guide">("digest"); if (!hydrated) { return (
Loading…
); } if (!user) { return (

Members Only

The Inner Circle is gated by your CyberLux handle. Sign in and earn LUX credits through purchases and forum activity to unlock higher tiers.

Sign In Create Handle

Tier access based on LUX balance — no paid gate

); } return (
{/* Header */}

Welcome, @{user.username}

Tier:{" "} {tier.name} {" · "} {luxCredits.toLocaleString()} LUX

{tier.name}
{tier.description}
{/* Tier progress */}
{MEMBERSHIP_TIERS.map((t, i) => { const reached = luxCredits >= t.minLux; const active = t.name === tier.name; return (
{t.name}
{t.minLux.toLocaleString()} LUX
); })}
{/* Tabs */}
{(["digest", "tiers", "guide"] as const).map((t) => ( ))}
{/* Content */}
{tab === "digest" && (

Current hub signals · real-time activity

{DIGEST.map((d) => ( {d.tag}

{d.text}

))}
)} {tab === "tiers" && (

Earn LUX via purchases and activity

{MEMBERSHIP_TIERS.map((t) => { const reached = luxCredits >= t.minLux; return (
{t.name}
{t.minLux.toLocaleString()} LUX

{t.description}

{!reached && (

Need {(t.minLux - luxCredits).toLocaleString()} more LUX

)}
); })}
)} {tab === "guide" && (

Operational guidelines

Earning LUX

LUX credits are earned on every purchase at checkout. Spend at the Mixer (coin-blending theatre), or hold to maintain tier status. LUX is stored per-handle in your browser — export your account bundle to carry it across devices.

Adding Funds

Fund your account via Bitcoin at{" "} /account/add-funds . After one confirmation, paste the txid — USD credit is applied to your handle at current spot.

OPSEC basics

Use Tor Browser on .onion deployments. Export your account bundle from{" "} /dashboard {" "} before clearing site data. Verify mirror PGP each session — phishing clones exist.

)}
); }