"use client"; import { FormEvent, useEffect, useState } from "react"; import Link from "next/link"; import { useAccount } from "@/contexts/AccountContext"; import { exportPortableAccountJson, importPortableAccountJson } from "@/lib/cyberluxAccount"; export default function HiddenServicesAccountPage() { const { user, hydrated, refreshProfile } = useAccount(); const [importText, setImportText] = useState(""); const [importMsg, setImportMsg] = useState<{ kind: "ok" | "err"; text: string } | null>(null); const [copyMsg, setCopyMsg] = useState(null); useEffect(() => { setImportMsg(null); }, [importText]); const onCopyBundle = async () => { setCopyMsg(null); const json = exportPortableAccountJson(); if (!json) return; try { await navigator.clipboard.writeText(json); setCopyMsg("Copied. Paste on another onion host → Import below."); } catch { setCopyMsg("Could not use clipboard — select and copy manually."); } }; const onImport = (e: FormEvent) => { e.preventDefault(); setImportMsg(null); const res = importPortableAccountJson(importText.trim()); if (!res.ok) { setImportMsg({ kind: "err", text: res.error }); return; } refreshProfile(); setImportText(""); setImportMsg({ kind: "ok", text: "Identity loaded on this hostname. You can use dashboard, forum, exchange, and barter here." }); }; if (!hydrated) { return (
Loading…
); } return (

hidden services

Account on every entry node

Each hidden-service hostname gets an isolated browser vault. Keys you mint on the forum onion do not automatically exist on the exchange or wiki host — mirror your identity deliberately or enroll separately. Verified Bitcoin USD credits are stored the same way: per host. Use a portable bundle to reuse your handle, then add funds on each hostname you actively use ( Add funds ).

  1. Create a handle on this host:{" "} Sign up {" "} (or{" "} Sign in ).
  2. Repeat on other mirrors with the{" "} same handle and passphrase,{" "} or export a bundle here (signed in) and import it on the other host.
  3. Use{" "} Dashboard ,{" "} Forum ,{" "} Exchange , and{" "} Barter {" "} once this hostname knows your session.
{user ? (

Portable bundle

Signed in as @{user.username}. The bundle contains a passphrase fingerprint — do not share it.

{copyMsg ?

{copyMsg}

: null}
) : (

Sign in {" "} to copy an export bundle for another host.

)}

Import bundle

Paste JSON from "Copy identity bundle" on the host where you exported it.