feat(sirius-x): Sirius.X brand rebrand, banner star-divider, WC on portal

Three things from one review pass:

1. Rebrand text 'sirius.x' -> 'Sirius.X' as the brand style across all
   sirius.x pages (titles, meta, nav wordmark, headings, prose, footer).
   Also flipped the pantheon headings to Title.X form: Silentmode.X,
   Sirius.X, Theseus.X, Hephaestus.X, Prometheus.X, Helios.X, Hermes.X.
   Domain literals, URLs, and code samples stay lowercase (sirius.x is
   the actual on-chain name; only prose changes). Logo/avatar SVG
   wordmarks and aria-labels updated to match.

2. Banner (brand/banner.svg) redesigned around a centered layout:
   'Sirius.X' wordmark above, the star's horizontal arm extended
   edge-to-edge as a divider line, tagline lines below. Left tip at
   (0,315), right tip at (1200,315) so the arm crosses the full 1200px
   banner width; vertical body compact around center. Old layout had
   the star crammed into the right half and the wordmark on the left.

3. WizardConnect wired up on portal.html:
   - The 'Connect wallet' button now opens a real WC session via
     wizardconnect.js, shows the WIZ:// URI (copyable) and waits for
     the wallet to approve.
   - Successful connection builds a wallet-shaped wrapper with
     source: 'wc' and a WC session for signing; siriusProfile now
     carries the source so the nav dropdown can differentiate.
   - Record editor dispatches to setRecordsWithExternalWallet when
     source === 'wc' (bundle already ships the adapter), else stays
     on setRecordsWithBuiltInWallet.
   - TLD Register submit is gated off for WC users with a tooltip —
     no external-wallet variant of registerTld is exported yet, so
     TLD mint still needs a built-in wallet.
   - Sign-out disconnects the WC session before dropping the wallet.
   - toTokenAddress used to derive the tokenAddress for WC users so
     the 'Signed in' card shows both forms.
This commit is contained in:
Local Dev 2026-09-07 01:35:35 +02:00
parent 36e0ab7593
commit 6dd8b141d4
13 changed files with 1083 additions and 957 deletions

View file

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Admin — sirius.x</title> <title>Admin — Sirius.X</title>
<meta name="description" content="Sirius.x operator admin — mint TLDs, manage the registry, verify chain health. Operator-key gated."> <meta name="description" content="Sirius.x operator admin — mint TLDs, manage the registry, verify chain health. Operator-key gated.">
<link rel="icon" href="../assets/favicon.svg" type="image/svg+xml"> <link rel="icon" href="../assets/favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="../assets/favicon.svg" color="#d6ff3d"> <link rel="mask-icon" href="../assets/favicon.svg" color="#d6ff3d">
@ -80,7 +80,7 @@
<body> <body>
<nav class="topnav"> <nav class="topnav">
<a class="brand" href="../"><span class="g">sirius.x</span></a> <a class="brand" href="../"><span class="g">Sirius.X</span></a>
<a href="../#try">Try it</a> <a href="../#try">Try it</a>
<a href="../docs/">📚 Docs</a> <a href="../docs/">📚 Docs</a>
<a href="../theseus/">🧭 Theseus</a> <a href="../theseus/">🧭 Theseus</a>

View file

@ -1,5 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<!-- sirius.x — brightest-star favicon. Rounded dark square + 4-point sparkle <!-- Sirius.X — brightest-star favicon. Rounded dark square + 4-point sparkle
in the Silent Mode acid green so it reads clearly at 16x16 tab-icon size in the Silent Mode acid green so it reads clearly at 16x16 tab-icon size
while staying legible against both light and dark browser chromes. --> while staying legible against both light and dark browser chromes. -->
<rect width="64" height="64" rx="12" fill="#0b0e14"/> <rect width="64" height="64" rx="12" fill="#0b0e14"/>

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 473 B

View file

@ -1,8 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 64" role="img" aria-label="sirius.x"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 64" role="img" aria-label="Sirius.X">
<path d="M32 12 L35.3 30.7 L54 34 L35.3 37.3 L32 56 L28.7 37.3 L10 34 L28.7 30.7 Z" <path d="M32 12 L35.3 30.7 L54 34 L35.3 37.3 L32 56 L28.7 37.3 L10 34 L28.7 30.7 Z"
fill="#d6ff3d"/> fill="#d6ff3d"/>
<text x="72" y="42" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif" <text x="72" y="42" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
font-size="28" font-weight="600" fill="#e7eaf1" letter-spacing=".5"> font-size="28" font-weight="600" fill="#e7eaf1" letter-spacing=".5">
sirius<tspan fill="#d6ff3d">.x</tspan> Sirius<tspan fill="#d6ff3d">.X</tspan>
</text> </text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 434 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="sirius.x avatar"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Sirius.X avatar">
<!-- Square profile-picture avatar. Full-bleed dark background, single star <!-- Square profile-picture avatar. Full-bleed dark background, single star
centered and enlarged so it reads at 24px in a social feed. Corners are centered and enlarged so it reads at 24px in a social feed. Corners are
square (not rounded) so the platform can apply its own mask (Twitter, square (not rounded) so the platform can apply its own mask (Twitter,

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 579 B

View file

@ -1,37 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 630" role="img" aria-label="sirius.x banner"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 630" role="img" aria-label="Sirius.X banner">
<!-- 1200x630 = the OpenGraph / Twitter Card canonical size. Left half is the <!-- 1200x630 = the OpenGraph / Twitter Card canonical size. Centered
wordmark + tagline; right half is a large decorative star that survives layout: "Sirius.X" wordmark above; a horizontal divider that is the
aggressive cropping (Facebook, Slack and Discord all crop differently). --> star's own horizontal arm, extended edge-to-edge; tagline below. -->
<defs> <defs>
<radialGradient id="glow" cx="70%" cy="50%" r="55%"> <radialGradient id="glow" cx="50%" cy="55%" r="65%">
<stop offset="0%" stop-color="#16202e"/> <stop offset="0%" stop-color="#16202e"/>
<stop offset="100%" stop-color="#0b0e14"/> <stop offset="100%" stop-color="#0b0e14"/>
</radialGradient> </radialGradient>
</defs> </defs>
<rect width="1200" height="630" fill="url(#glow)"/> <rect width="1200" height="630" fill="url(#glow)"/>
<!-- decorative giant star, right side --> <!-- The horizontal divider IS the star's horizontal arm. Left tip at (0,315),
<g opacity="0.95"> right tip at (1200,315), so the arm crosses the full banner width. The
<!-- 4-point star. The inner "waist" rectangle sits at x∈[885..915], y∈[300..330]: vertical arm is short and centered (top 230, bottom 400) so the star
30x30, so vertical and horizontal arms taper at the same rate. An earlier body reads as a compact 4-point mark sitting on the divider line. -->
100x30 waist made the vertical arms look bloated — see #brand review. --> <path d="M600 230 L620 310 L1200 315 L620 320 L600 400 L580 320 L0 315 L580 310 Z"
<path d="M900 90 L915 300 L1160 315 L915 330 L900 540 L885 330 L640 315 L885 300 Z" fill="#d6ff3d"/>
fill="#d6ff3d"/>
</g>
<!-- wordmark, left column --> <!-- Wordmark, centered above the divider -->
<g transform="translate(80, 250)"> <text x="600" y="185" text-anchor="middle"
<text font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
font-size="110" font-weight="700" fill="#e7eaf1" letter-spacing="-1"> font-size="120" font-weight="700" fill="#e7eaf1" letter-spacing="-1">
sirius<tspan fill="#d6ff3d">.x</tspan> Sirius<tspan fill="#d6ff3d">.X</tspan>
</text> </text>
<text y="70" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
font-size="30" font-weight="400" fill="#8b98a9"> <!-- Tagline, centered below the divider -->
The home for names on Bitcoin Cash. <text x="600" y="475" text-anchor="middle"
</text> font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
<text y="115" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif" font-size="34" font-weight="400" fill="#8b98a9">
font-size="18" font-weight="500" fill="#5e6678" letter-spacing="1.5"> The home for names on Bitcoin Cash.
REGISTER · RESOLVE · VERIFY </text>
</text> <text x="600" y="525" text-anchor="middle"
</g> font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
font-size="20" font-weight="500" fill="#5e6678" letter-spacing="4">
REGISTER · RESOLVE · VERIFY
</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -3,13 +3,13 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Brand — sirius.x</title> <title>Brand — Sirius.X</title>
<meta name="description" content="sirius.x brand kit — logo, wordmark, avatar, banner, favicon, colour palette, and usage guidance. All assets served as SVG so they stay crisp at any size."> <meta name="description" content="Sirius.X brand kit — logo, wordmark, avatar, banner, favicon, colour palette, and usage guidance. All assets served as SVG so they stay crisp at any size.">
<link rel="icon" href="./favicon.svg" type="image/svg+xml"> <link rel="icon" href="./favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="./favicon.svg" color="#d6ff3d"> <link rel="mask-icon" href="./favicon.svg" color="#d6ff3d">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:site_name" content="sirius.x"> <meta property="og:site_name" content="Sirius.X">
<meta property="og:title" content="sirius.x brand kit"> <meta property="og:title" content="Sirius.X brand kit">
<meta property="og:description" content="Logo, wordmark, avatar, banner, favicon, colour palette. All SVG, downloadable, MIT."> <meta property="og:description" content="Logo, wordmark, avatar, banner, favicon, colour palette. All SVG, downloadable, MIT.">
<meta property="og:url" content="https://silentmode.st/sirius-x/brand/"> <meta property="og:url" content="https://silentmode.st/sirius-x/brand/">
<meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg"> <meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg">
@ -76,7 +76,7 @@
<body> <body>
<nav class="topnav"> <nav class="topnav">
<a class="brand" href="../"><span class="g">sirius.x</span></a> <a class="brand" href="../"><span class="g">Sirius.X</span></a>
<a href="../#try">Try it</a> <a href="../#try">Try it</a>
<a href="../docs/">📚 Docs</a> <a href="../docs/">📚 Docs</a>
<a href="../theseus/">🧭 Theseus</a> <a href="../theseus/">🧭 Theseus</a>
@ -89,7 +89,7 @@
<header class="hero"> <header class="hero">
<div class="mark">🎨</div> <div class="mark">🎨</div>
<h1>sirius.x <span class="g">brand kit</span></h1> <h1>Sirius.X <span class="g">brand kit</span></h1>
<p class="tag">Logo, wordmark, avatar, banner, favicon, and the colour palette. Every asset ships as <p class="tag">Logo, wordmark, avatar, banner, favicon, and the colour palette. Every asset ships as
SVG so it stays crisp at any size and reads correctly in light and dark contexts. Free to reuse SVG so it stays crisp at any size and reads correctly in light and dark contexts. Free to reuse
with attribution.</p> with attribution.</p>
@ -99,7 +99,7 @@
<section> <section>
<h2>Logo &amp; wordmark</h2> <h2>Logo &amp; wordmark</h2>
<p class="lede">A 4-point sparkle star plus <b>sirius.x</b>, with the <code>.x</code> TLD picked out <p class="lede">A 4-point sparkle star plus <b>Sirius.X</b>, with the <code>.x</code> TLD picked out
in acid green. The star alone works when you have no room for the wordmark; the full lockup is in acid green. The star alone works when you have no room for the wordmark; the full lockup is
the default choice everywhere else.</p> the default choice everywhere else.</p>
<div class="grid"> <div class="grid">
@ -143,7 +143,7 @@
<div class="preview favicon"><img src="./favicon.svg" alt="sirius.x favicon"></div> <div class="preview favicon"><img src="./favicon.svg" alt="sirius.x favicon"></div>
<h3>Favicon <span class="meta">SVG · 64×64, 12px radius</span></h3> <h3>Favicon <span class="meta">SVG · 64×64, 12px radius</span></h3>
<p class="lede" style="margin-bottom:.6rem">Rounded browser-tab icon. Scales down to 16×16 <p class="lede" style="margin-bottom:.6rem">Rounded browser-tab icon. Scales down to 16×16
cleanly; used on every sirius.x page.</p> cleanly; used on every Sirius.X page.</p>
<div class="row"> <div class="row">
<a class="btn acid" href="./favicon.svg" download>Download SVG</a> <a class="btn acid" href="./favicon.svg" download>Download SVG</a>
<a class="btn" href="./favicon.svg" target="_blank">Open</a> <a class="btn" href="./favicon.svg" target="_blank">Open</a>
@ -169,7 +169,7 @@
<section> <section>
<h2>Colour palette</h2> <h2>Colour palette</h2>
<p class="lede">Silent Mode family colours. Dark chromes are the default; acid green is the <p class="lede">Silent Mode family colours. Dark chromes are the default; acid green is the
single accent that consistently signals "this is sirius.x".</p> single accent that consistently signals "this is Sirius.X".</p>
<div class="swatches"> <div class="swatches">
<div class="sw"><div class="chip" style="background:#d6ff3d"></div><div class="info"><b>Acid</b>#d6ff3d — accent, links, active nav</div></div> <div class="sw"><div class="chip" style="background:#d6ff3d"></div><div class="info"><b>Acid</b>#d6ff3d — accent, links, active nav</div></div>
<div class="sw"><div class="chip" style="background:#0b0e14"></div><div class="info"><b>Background</b>#0b0e14 — page canvas</div></div> <div class="sw"><div class="chip" style="background:#0b0e14"></div><div class="info"><b>Background</b>#0b0e14 — page canvas</div></div>
@ -192,7 +192,7 @@
<p style="margin:0;font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif; <p style="margin:0;font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
font-size:36px;font-weight:600;letter-spacing:-.5px">The quick brown fox</p> font-size:36px;font-weight:600;letter-spacing:-.5px">The quick brown fox</p>
<p style="margin:.4rem 0 0;color:var(--mut);font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif; <p style="margin:.4rem 0 0;color:var(--mut);font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
font-size:16px">jumps over the lazy dog · 0123456789 · sirius.x</p> font-size:16px">jumps over the lazy dog · 0123456789 · Sirius.X</p>
<div class="meta" style="margin-top:12px">system-ui, -apple-system, Segoe UI, Roboto, sans-serif</div> <div class="meta" style="margin-top:12px">system-ui, -apple-system, Segoe UI, Roboto, sans-serif</div>
</div> </div>
<div class="note">The wordmark's <code>.x</code> is a <code>&lt;tspan fill="#d6ff3d"&gt;</code> <div class="note">The wordmark's <code>.x</code> is a <code>&lt;tspan fill="#d6ff3d"&gt;</code>
@ -202,12 +202,12 @@
<section> <section>
<h2>Usage &amp; licence</h2> <h2>Usage &amp; licence</h2>
<p class="lede">All assets are MIT. Reuse them for third-party tools that integrate with sirius.x <p class="lede">All assets are MIT. Reuse them for third-party tools that integrate with Sirius.X
(wallets, indexers, explorers, blog posts about BCNR). Keep the star's proportions intact and (wallets, indexers, explorers, blog posts about BCNR). Keep the star's proportions intact and
don't recolour the acid to a similar-but-different green — palette drift is what makes brands don't recolour the acid to a similar-but-different green — palette drift is what makes brands
look untrustworthy over time.</p> look untrustworthy over time.</p>
<ul style="color:var(--mut);font-size:14px;padding-left:1.2rem"> <ul style="color:var(--mut);font-size:14px;padding-left:1.2rem">
<li><b style="color:var(--ink)">Do</b> use the mark to indicate "supports sirius.x" or "hosted on sirius.x".</li> <li><b style="color:var(--ink)">Do</b> use the mark to indicate "supports Sirius.X" or "hosted on Sirius.X".</li>
<li><b style="color:var(--ink)">Do</b> shrink to the favicon at 16×16 — the SVG scales cleanly.</li> <li><b style="color:var(--ink)">Do</b> shrink to the favicon at 16×16 — the SVG scales cleanly.</li>
<li><b style="color:var(--ink)">Don't</b> imply endorsement of a specific product without asking.</li> <li><b style="color:var(--ink)">Don't</b> imply endorsement of a specific product without asking.</li>
<li><b style="color:var(--ink)">Don't</b> stretch, skew, or re-tint the star.</li> <li><b style="color:var(--ink)">Don't</b> stretch, skew, or re-tint the star.</li>
@ -217,7 +217,7 @@
</div> </div>
<footer> <footer>
Brand kit for sirius.x · Brand kit for Sirius.X ·
<a href="../">back to sirius.x</a> · <a href="../">back to sirius.x</a> ·
<a href="https://silentmode.st/">silentmode.st</a> <a href="https://silentmode.st/">silentmode.st</a>
</footer> </footer>

View file

@ -1,10 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 64" role="img" aria-label="sirius.x (monochrome)"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 64" role="img" aria-label="Sirius.X (monochrome)">
<!-- Single-fill variant for print, embossing, one-colour merch. currentColor <!-- Single-fill variant for print, embossing, one-colour merch. currentColor
so the SVG inherits the surrounding text colour when inlined; pass so the SVG inherits the surrounding text colour when inlined; pass
style="color: #d6ff3d" to force the acid green. --> style="color: #d6ff3d" to force the acid green. -->
<g fill="currentColor"> <g fill="currentColor">
<path d="M32 12 L35.3 30.7 L54 34 L35.3 37.3 L32 56 L28.7 37.3 L10 34 L28.7 30.7 Z"/> <path d="M32 12 L35.3 30.7 L54 34 L35.3 37.3 L32 56 L28.7 37.3 L10 34 L28.7 30.7 Z"/>
<text x="72" y="42" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif" <text x="72" y="42" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
font-size="28" font-weight="600" letter-spacing=".5">sirius.x</text> font-size="28" font-weight="600" letter-spacing=".5">Sirius.X</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 623 B

After

Width:  |  Height:  |  Size: 623 B

View file

@ -1,8 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 64" role="img" aria-label="sirius.x"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 64" role="img" aria-label="Sirius.X">
<path d="M32 12 L35.3 30.7 L54 34 L35.3 37.3 L32 56 L28.7 37.3 L10 34 L28.7 30.7 Z" <path d="M32 12 L35.3 30.7 L54 34 L35.3 37.3 L32 56 L28.7 37.3 L10 34 L28.7 30.7 Z"
fill="#d6ff3d"/> fill="#d6ff3d"/>
<text x="72" y="42" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif" <text x="72" y="42" font-family="system-ui, -apple-system, Segoe UI, Roboto, sans-serif"
font-size="28" font-weight="600" fill="#e7eaf1" letter-spacing=".5"> font-size="28" font-weight="600" fill="#e7eaf1" letter-spacing=".5">
sirius<tspan fill="#d6ff3d">.x</tspan> Sirius<tspan fill="#d6ff3d">.X</tspan>
</text> </text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 434 B

View file

@ -3,13 +3,13 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Docs — sirius.x</title> <title>Docs — Sirius.X</title>
<meta name="description" content="How BCNR works: the TLD registry, name registration, records, resolver, and how to verify anything against the Bitcoin Cash chain."> <meta name="description" content="How BCNR works: the TLD registry, name registration, records, resolver, and how to verify anything against the Bitcoin Cash chain.">
<link rel="icon" href="../assets/favicon.svg" type="image/svg+xml"> <link rel="icon" href="../assets/favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="../assets/favicon.svg" color="#d6ff3d"> <link rel="mask-icon" href="../assets/favicon.svg" color="#d6ff3d">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:site_name" content="sirius.x"> <meta property="og:site_name" content="Sirius.X">
<meta property="og:title" content="sirius.x docs — how BCNR works"> <meta property="og:title" content="Sirius.X docs — how BCNR works">
<meta property="og:description" content="The TLD registry, name registration, records, resolver, mainnet pricing, and how to verify anything against the chain."> <meta property="og:description" content="The TLD registry, name registration, records, resolver, mainnet pricing, and how to verify anything against the chain.">
<meta property="og:url" content="https://silentmode.st/sirius-x/docs/"> <meta property="og:url" content="https://silentmode.st/sirius-x/docs/">
<meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg"> <meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg">
@ -80,7 +80,7 @@
<body> <body>
<nav class="topnav"> <nav class="topnav">
<a class="brand" href="../"><span class="g">sirius.x</span></a> <a class="brand" href="../"><span class="g">Sirius.X</span></a>
<a href="../#try">Try it</a> <a href="../#try">Try it</a>
<a href="./" class="here">📚 Docs</a> <a href="./" class="here">📚 Docs</a>
<a href="../theseus/">🧭 Theseus</a> <a href="../theseus/">🧭 Theseus</a>
@ -93,7 +93,7 @@
<header class="hero"> <header class="hero">
<div class="mark">📚</div> <div class="mark">📚</div>
<h1>sirius.x <span class="g">docs</span></h1> <h1>Sirius.X <span class="g">docs</span></h1>
<p class="tag">How the pieces fit together: the TLD registry, name registration, records that <p class="tag">How the pieces fit together: the TLD registry, name registration, records that
tell the resolver where a site lives, the resolver itself, and how anyone can verify anything tell the resolver where a site lives, the resolver itself, and how anyone can verify anything
against the chain.</p> against the chain.</p>
@ -208,7 +208,7 @@ node Argus/src/update.js myname.x '{"s3":"bns/myname/"}'</pre>
node Argus/src/update.js myname.x '{"ip":"1.2.3.4","tls":"&lt;sha256-of-leaf-cert&gt;"}'</pre> node Argus/src/update.js myname.x '{"ip":"1.2.3.4","tls":"&lt;sha256-of-leaf-cert&gt;"}'</pre>
<h3>Pattern C — Dual host (Sia primary, VPS mirror)</h3> <h3>Pattern C — Dual host (Sia primary, VPS mirror)</h3>
<p class="lede">What sirius.x itself uses. Sia is the chain-authoritative source (survives <p class="lede">What Sirius.X itself uses. Sia is the chain-authoritative source (survives
if the VPS is down); the VPS serves the same content on <code>silentmode.st/&lt;path&gt;</code> if the VPS is down); the VPS serves the same content on <code>silentmode.st/&lt;path&gt;</code>
for users without a BCNR resolver installed. On the VPS side, extend the nginx vhost for users without a BCNR resolver installed. On the VPS side, extend the nginx vhost
serving <code>silentmode.st</code> with a new <code>location</code> block that aliases serving <code>silentmode.st</code> with a new <code>location</code> block that aliases
@ -224,7 +224,7 @@ node Argus/src/update.js myname.x '{"ip":"1.2.3.4","tls":"&lt;sha256-of-leaf-cer
<code>https://myname.x/</code> via any BCNR resolver.</p> <code>https://myname.x/</code> via any BCNR resolver.</p>
<h3>The dual-host recipe, end to end</h3> <h3>The dual-host recipe, end to end</h3>
<p class="lede">This is the exact sequence sirius.x itself uses on every publish. The <p class="lede">This is the exact sequence Sirius.X itself uses on every publish. The
chain record stays constant; only file contents change, so no per-publish UPD is chain record stays constant; only file contents change, so no per-publish UPD is
needed.</p> needed.</p>
<ol class="steps"> <ol class="steps">
@ -423,7 +423,7 @@ process.exit(0);"</pre>
</div> </div>
<footer> <footer>
Documentation for BCNR + the sirius.x stack · Documentation for BCNR + the Sirius.X stack ·
<a href="../">back to sirius.x</a> · <a href="../">back to sirius.x</a> ·
<a href="https://silentmode.st/tlds/">TLD registry snapshot</a> · <a href="https://silentmode.st/tlds/">TLD registry snapshot</a> ·
<a href="../register.html">register a name</a> <a href="../register.html">register a name</a>

View file

@ -3,21 +3,21 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>sirius.x — the home for names on Bitcoin Cash</title> <title>Sirius.X — the home for names on Bitcoin Cash</title>
<meta name="description" content="sirius.x is the operator-run entry point for BCNR: register a top-level domain, register a name under one, look up records, verify anything against the chain. Backed by Sia storage, mirrored on the operator's VPS, name published on the chain."> <meta name="description" content="Sirius.X is the operator-run entry point for BCNR: register a top-level domain, register a name under one, look up records, verify anything against the chain. Backed by Sia storage, mirrored on the operator's VPS, name published on the chain.">
<!-- sirius.x branding: SVG favicon at 16/32/any size (the star + dark rounded <!-- sirius.x branding: SVG favicon at 16/32/any size (the star + dark rounded
square scales cleanly); OpenGraph + Twitter Card so shared links preview square scales cleanly); OpenGraph + Twitter Card so shared links preview
with the right title, description, and mark. --> with the right title, description, and mark. -->
<link rel="icon" href="./assets/favicon.svg" type="image/svg+xml"> <link rel="icon" href="./assets/favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="./assets/favicon.svg" color="#d6ff3d"> <link rel="mask-icon" href="./assets/favicon.svg" color="#d6ff3d">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:site_name" content="sirius.x"> <meta property="og:site_name" content="Sirius.X">
<meta property="og:title" content="sirius.x — the home for names on Bitcoin Cash"> <meta property="og:title" content="Sirius.X — the home for names on Bitcoin Cash">
<meta property="og:description" content="Register a top-level domain, register a name under one, look up records, verify anything against the chain. Backed by Sia + VPS + on-chain."> <meta property="og:description" content="Register a top-level domain, register a name under one, look up records, verify anything against the chain. Backed by Sia + VPS + on-chain.">
<meta property="og:url" content="https://silentmode.st/sirius-x/"> <meta property="og:url" content="https://silentmode.st/sirius-x/">
<meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg"> <meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="sirius.x — the home for names on Bitcoin Cash"> <meta name="twitter:title" content="Sirius.X — the home for names on Bitcoin Cash">
<meta name="twitter:description" content="Register a TLD or a name, look up records, verify against the chain. Your keys, your names."> <meta name="twitter:description" content="Register a TLD or a name, look up records, verify against the chain. Your keys, your names.">
<style> <style>
:root{ :root{
@ -91,7 +91,7 @@
<body> <body>
<nav class="topnav"> <nav class="topnav">
<a class="brand" href="./"><span class="g">sirius.x</span></a> <a class="brand" href="./"><span class="g">Sirius.X</span></a>
<a href="#try">Try it</a> <a href="#try">Try it</a>
<a href="./docs/">📚 Docs</a> <a href="./docs/">📚 Docs</a>
<a href="./theseus/">🧭 Theseus</a> <a href="./theseus/">🧭 Theseus</a>
@ -106,7 +106,7 @@
<header class="hero"> <header class="hero">
<div class="mark"></div> <div class="mark"></div>
<h1>Names on the <span class="g">chain</span>.</h1> <h1>Names on the <span class="g">chain</span>.</h1>
<p class="tag">sirius.x is the entry point for BCNR — Bitcoin Cash Name Registry. <p class="tag">Sirius.X is the entry point for BCNR — Bitcoin Cash Name Registry.
Register a top-level domain, register a name under one, look up records, Register a top-level domain, register a name under one, look up records,
verify anything against the chain. Backed by Sia storage, mirrored on the verify anything against the chain. Backed by Sia storage, mirrored on the
operator's VPS, name published on chain — this page survives if any single operator's VPS, name published on chain — this page survives if any single
@ -122,7 +122,7 @@
<section id="try"> <section id="try">
<h2>Try it</h2> <h2>Try it</h2>
<p class="lede">Three things you can do right now. The registrar and TLD-registry UIs live at <p class="lede">Three things you can do right now. The registrar and TLD-registry UIs live at
silentmode.st today; sirius.x is the canonical home and will consolidate them here.</p> silentmode.st today; Sirius.X is the canonical home and will consolidate them here.</p>
<div class="grid"> <div class="grid">
<div class="card"> <div class="card">
<h3><span class="dot d-chain"></span> Register a name</h3> <h3><span class="dot d-chain"></span> Register a name</h3>
@ -191,42 +191,42 @@
resolver, plus the silentmode.st gateway for browsers without one.</p> resolver, plus the silentmode.st gateway for browsers without one.</p>
<div class="grid"> <div class="grid">
<div class="card"> <div class="card">
<h3><span class="dot d-chain"></span> ⛓️ silentmode.x</h3> <h3><span class="dot d-chain"></span> ⛓️ Silentmode.X</h3>
<p>The project umbrella. Redirects to <code>silentmode.st</code> where every pillar <p>The project umbrella. Redirects to <code>silentmode.st</code> where every pillar
has its own landing page + download hub.</p> has its own landing page + download hub.</p>
<div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/silentmode.x/" rel="noopener">Open →</a></div> <div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/silentmode.x/" rel="noopener">Open →</a></div>
</div> </div>
<div class="card"> <div class="card">
<h3><span class="dot d-chain"></span>sirius.x <span class="pill">you're here</span></h3> <h3><span class="dot d-chain"></span>Sirius.X <span class="pill">you're here</span></h3>
<p>Names on Bitcoin Cash — register, resolve, verify, manage. This site.</p> <p>Names on Bitcoin Cash — register, resolve, verify, manage. This site.</p>
<div class="cta"><a class="btn ghost" href="./">Home →</a></div> <div class="cta"><a class="btn ghost" href="./">Home →</a></div>
</div> </div>
<div class="card"> <div class="card">
<h3><span class="dot d-chain"></span> 🧭 theseus.x</h3> <h3><span class="dot d-chain"></span> 🧭 Theseus.X</h3>
<p>The browser that speaks BCNR natively — Chromium build with the resolver baked in, <p>The browser that speaks BCNR natively — Chromium build with the resolver baked in,
no OS-level daemon or root-store install.</p> no OS-level daemon or root-store install.</p>
<div class="cta"><a class="btn ghost" href="./theseus/">Learn more →</a></div> <div class="cta"><a class="btn ghost" href="./theseus/">Learn more →</a></div>
</div> </div>
<div class="card"> <div class="card">
<h3><span class="dot d-srv"></span> 🔥 hephaestus.x</h3> <h3><span class="dot d-srv"></span> 🔥 Hephaestus.X</h3>
<p>The forge. Forgejo instance for the ecosystem's git repos, backed by BCH wallet <p>The forge. Forgejo instance for the ecosystem's git repos, backed by BCH wallet
auth. Sirius's own source lives here.</p> auth. Sirius's own source lives here.</p>
<div class="cta"><a class="btn ghost" href="https://code.silentmode.st/" rel="noopener">Open →</a></div> <div class="cta"><a class="btn ghost" href="https://code.silentmode.st/" rel="noopener">Open →</a></div>
</div> </div>
<div class="card"> <div class="card">
<h3><span class="dot d-sia"></span> 🔮 prometheus.x</h3> <h3><span class="dot d-sia"></span> 🔮 Prometheus.X</h3>
<p>Fire from the chain. The project's foresight / experimentation layer. <p>Fire from the chain. The project's foresight / experimentation layer.
Redirects to <code>silentmode.st/prometheus/</code> today.</p> Redirects to <code>silentmode.st/prometheus/</code> today.</p>
<div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/prometheus.x/" rel="noopener">Open →</a></div> <div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/prometheus.x/" rel="noopener">Open →</a></div>
</div> </div>
<div class="card"> <div class="card">
<h3><span class="dot d-sia"></span> ☀️ helios.x</h3> <h3><span class="dot d-sia"></span> ☀️ Helios.X</h3>
<p>The public gaze. Analytics, dashboards, transparency reports. <p>The public gaze. Analytics, dashboards, transparency reports.
Redirects to <code>silentmode.st/helios/</code> today.</p> Redirects to <code>silentmode.st/helios/</code> today.</p>
<div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/helios.x/" rel="noopener">Open →</a></div> <div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/helios.x/" rel="noopener">Open →</a></div>
</div> </div>
<div class="card"> <div class="card">
<h3><span class="dot d-srv"></span> ✉️ hermes.x</h3> <h3><span class="dot d-srv"></span> ✉️ Hermes.X</h3>
<p>Messenger. Nostr-based messaging bound to a BCNR name via the <code>np</code> <p>Messenger. Nostr-based messaging bound to a BCNR name via the <code>np</code>
+ <code>nr</code> records. Redirects to <code>silentmode.st/hermes/</code>.</p> + <code>nr</code> records. Redirects to <code>silentmode.st/hermes/</code>.</p>
<div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/hermes.x/" rel="noopener">Open →</a></div> <div class="cta"><a class="btn ghost" href="https://silentmode.st/bns/hermes.x/" rel="noopener">Open →</a></div>
@ -236,7 +236,7 @@
<section id="roadmap"> <section id="roadmap">
<h2>What's coming</h2> <h2>What's coming</h2>
<p class="lede">sirius.x consolidates docs and registration today; three larger pieces are on the roadmap.</p> <p class="lede">Sirius.X consolidates docs and registration today; three larger pieces are on the roadmap.</p>
<div class="grid"> <div class="grid">
<div class="card"> <div class="card">
<h3>Wallet &amp; name portal <span class="pill soon">next</span></h3> <h3>Wallet &amp; name portal <span class="pill soon">next</span></h3>
@ -305,7 +305,7 @@ process.exit(0);"</pre>
</div> </div>
<footer> <footer>
sirius.x — the Silent Mode name registry entry point · Sirius.X — the Silent Mode name registry entry point ·
<a href="https://silentmode.st/">silentmode.st</a> · <a href="https://silentmode.st/">silentmode.st</a> ·
<a href="https://silentmode.st/tlds/">TLD registry</a> · <a href="https://silentmode.st/tlds/">TLD registry</a> ·
<a href="./register.html">register a name</a><br> <a href="./register.html">register a name</a><br>

View file

@ -3,13 +3,13 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Portal — your names on sirius.x</title> <title>Portal — your names on Sirius.X</title>
<meta name="description" content="Sign in with your Bitcoin Cash seed phrase to see every BCNR name your wallet holds and manage records. Your keys never leave the browser."> <meta name="description" content="Sign in with your Bitcoin Cash seed phrase to see every BCNR name your wallet holds and manage records. Your keys never leave the browser.">
<link rel="icon" href="./assets/favicon.svg" type="image/svg+xml"> <link rel="icon" href="./assets/favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="./assets/favicon.svg" color="#d6ff3d"> <link rel="mask-icon" href="./assets/favicon.svg" color="#d6ff3d">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:site_name" content="sirius.x"> <meta property="og:site_name" content="Sirius.X">
<meta property="og:title" content="sirius.x portal — your BCNR names"> <meta property="og:title" content="Sirius.X portal — your BCNR names">
<meta property="og:description" content="Sign in with your seed phrase to see every name your wallet holds and manage records. Keys never leave the browser."> <meta property="og:description" content="Sign in with your seed phrase to see every name your wallet holds and manage records. Keys never leave the browser.">
<meta property="og:url" content="https://silentmode.st/sirius-x/portal.html"> <meta property="og:url" content="https://silentmode.st/sirius-x/portal.html">
<meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg"> <meta property="og:image" content="https://silentmode.st/sirius-x/brand/banner.svg">
@ -112,7 +112,7 @@
<body> <body>
<nav class="topnav"> <nav class="topnav">
<a class="brand" href="./"><span class="g">sirius.x</span></a> <a class="brand" href="./"><span class="g">Sirius.X</span></a>
<a href="./#try">Try it</a> <a href="./#try">Try it</a>
<a href="./docs/">📚 Docs</a> <a href="./docs/">📚 Docs</a>
<a href="./theseus/">🧭 Theseus</a> <a href="./theseus/">🧭 Theseus</a>
@ -176,12 +176,20 @@
<p>Use Cashonize 0.9+ or Paytaca via WizardConnect. The wallet signs record edits — the seed <p>Use Cashonize 0.9+ or Paytaca via WizardConnect. The wallet signs record edits — the seed
never touches this page.</p> never touches this page.</p>
<div class="row"> <div class="row">
<button class="btn ghost" id="wc-btn" disabled>WizardConnect <button class="btn acid" id="wc-btn">Connect wallet</button>
<span class="badge b-warn" style="margin-left:6px">soon</span></button>
</div> </div>
<p class="dim" style="margin-top:8px">Portal-side WizardConnect wiring is in progress; the <div id="wc-uri-box" class="hidden" style="margin-top:14px">
<a href="./register.html">register.html</a> flow already ships the WizardConnect adapter, and <label>Open your wallet, scan or paste this URI, then approve the connection:</label>
the portal will reuse it.</p> <div style="display:flex;gap:8px;align-items:center;margin-top:6px">
<code id="wc-uri" style="flex:1;word-break:break-all;background:#0e131b;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-family:ui-monospace,monospace;font-size:12.5px;color:var(--ink)"></code>
<button class="btn ghost" id="wc-copy" type="button">Copy</button>
</div>
<p class="dim" style="margin-top:8px">Waiting for your wallet…</p>
<div class="row"><button class="btn ghost" id="wc-cancel" type="button">Cancel</button></div>
</div>
<div id="wc-err" class="err hidden"></div>
<p class="dim" style="margin-top:8px">Record edits are approved on your device via the wallet's
signing prompt. TLD registration still requires a built-in wallet for now.</p>
</div> </div>
</div> </div>
<div class="status" style="margin-top:14px"> <div class="status" style="margin-top:14px">
@ -302,6 +310,7 @@ function writeProfile(w) {
localStorage.setItem("siriusProfile", JSON.stringify({ localStorage.setItem("siriusProfile", JSON.stringify({
address: w.address, address: w.address,
tokenAddress: w.tokenAddress, tokenAddress: w.tokenAddress,
source: w.source ?? "seed", // "seed" | "wc"
signedInAt: Date.now(), signedInAt: Date.now(),
})); }));
} catch {} } catch {}
@ -377,7 +386,109 @@ $("new-signin-btn").addEventListener("click", async () => {
await enterPortal(); await enterPortal();
}); });
$("signout-btn").addEventListener("click", () => { // ---------- WizardConnect ----------
// Ports the WC flow from register.html into a sign-in surface. The portal
// doesn't need to mint — it only reads holdings and signs UPDs — so this is
// simpler than the register flow: open a session, show the URI/QR, wait for
// approval, wrap the returned addresses in a wallet-shaped object with a
// `source: "wc"` flag so downstream code (record editor, sign-out) can
// dispatch to the external-wallet path.
$("wc-btn").addEventListener("click", async () => {
const btn = $("wc-btn");
const errBox = $("wc-err");
const uriBox = $("wc-uri-box");
errBox.classList.add("hidden");
btn.disabled = true; btn.textContent = "Starting…";
let session;
try {
const mod = await import("https://silentmode.st/js/wizardconnect.js");
session = await mod.openWizardSession({
dappName: BNS.REGISTRAR.wizardConnect.dappName,
dappIcon: BNS.REGISTRAR.wizardConnect.dappIcon,
prefix: BNS.REGISTRAR.addressPrefix,
// libauth is only bundled once (in the main bundle); wizardconnect.js
// needs these pubkey/hash helpers passed through.
crypto: {
pubkeyToAddress: BNS.pubkeyToAddress,
pubkeyToLockingBytecode: BNS.pubkeyToLockingBytecode,
binToHex: BNS.binToHex,
txidOfHex: BNS.txidOfHex,
},
});
} catch (e) {
errBox.textContent = "Could not start WizardConnect: " + (e.message || e);
errBox.classList.remove("hidden");
btn.disabled = false; btn.textContent = "Connect wallet";
return;
}
const uri = session.qrUri ?? session.uri;
$("wc-uri").textContent = uri;
uriBox.classList.remove("hidden");
btn.textContent = "Waiting for wallet…";
try {
await session.ready;
} catch (e) {
errBox.textContent = "Wallet did not approve: " + (e.message || e);
errBox.classList.remove("hidden");
uriBox.classList.add("hidden");
btn.disabled = false; btn.textContent = "Connect wallet";
try { await session.disconnect(); } catch {}
return;
}
let addresses;
try { addresses = await session.getAddresses(); }
catch (e) {
errBox.textContent = "Wallet returned no addresses: " + (e.message || e);
errBox.classList.remove("hidden");
uriBox.classList.add("hidden");
btn.disabled = false; btn.textContent = "Connect wallet";
try { await session.disconnect(); } catch {}
return;
}
if (!addresses?.length) {
errBox.textContent = "The connected wallet exposed no addresses.";
errBox.classList.remove("hidden");
uriBox.classList.add("hidden");
btn.disabled = false; btn.textContent = "Connect wallet";
try { await session.disconnect(); } catch {}
return;
}
// Wallet-shaped wrapper — enough for holdings lookup and dispatching the
// WC path in the record editor. External wallets don't expose keyFor(),
// so any codepath that needs it (TLD mint via built-in path) is guarded
// by `wallet.source !== "wc"`.
wallet = {
source: "wc",
address: addresses[0],
tokenAddress: BNS.toTokenAddress(addresses[0]),
watchedAddresses: addresses,
session,
};
writeProfile(wallet);
uriBox.classList.add("hidden");
btn.disabled = false; btn.textContent = "Connect wallet";
await enterPortal();
});
$("wc-cancel").addEventListener("click", async () => {
if (wallet?.session) { try { await wallet.session.disconnect(); } catch {} }
$("wc-uri-box").classList.add("hidden");
$("wc-btn").disabled = false;
$("wc-btn").textContent = "Connect wallet";
});
$("wc-copy").addEventListener("click", () => {
navigator.clipboard?.writeText($("wc-uri").textContent);
});
$("signout-btn").addEventListener("click", async () => {
// Close any live WC session before dropping the reference.
if (wallet?.source === "wc" && wallet.session) {
try { await wallet.session.disconnect(); } catch {}
}
wallet = null; wallet = null;
clearProfile(); clearProfile();
$("me").classList.add("hidden"); $("me").classList.add("hidden");
@ -389,6 +500,9 @@ $("signout-btn").addEventListener("click", () => {
$("new-phrase").classList.add("hidden"); $("new-phrase").classList.add("hidden");
$("new-ack").checked = false; $("new-ack").checked = false;
$("new-signin-btn").disabled = true; $("new-signin-btn").disabled = true;
// Reset the WC card too.
$("wc-btn").disabled = false; $("wc-btn").textContent = "Connect wallet";
$("wc-uri-box").classList.add("hidden");
}); });
// ---------- ?mode= deep-link ---------- // ---------- ?mode= deep-link ----------
@ -551,10 +665,15 @@ $("ed-save").addEventListener("click", async () => {
try { try {
el = await BNS.connect(); el = await BNS.connect();
push("connected to chipnet"); push("connected to chipnet");
const res = await BNS.setRecordsWithBuiltInWallet(el, { const res = wallet.source === "wc"
wallet, name: editorName, records, ? await BNS.setRecordsWithExternalWallet(el, {
onProgress: (step) => push(step), session: wallet.session, name: editorName, records,
}); onProgress: (step) => push(step),
})
: await BNS.setRecordsWithBuiltInWallet(el, {
wallet, name: editorName, records,
onProgress: (step) => push(step),
});
push("broadcast: " + (res.txid || res.txId || "(no txid)")); push("broadcast: " + (res.txid || res.txId || "(no txid)"));
msg.className = "msg ok"; msg.className = "msg ok";
msg.textContent = "Saved. Records will refresh on the chain within a block."; msg.textContent = "Saved. Records will refresh on the chain within a block.";
@ -597,8 +716,14 @@ function validateTldLabel(label) {
function updateTldButtons() { function updateTldButtons() {
const label = $("tld-label").value.trim().toLowerCase(); const label = $("tld-label").value.trim().toLowerCase();
const valid = validateTldLabel(label); const valid = validateTldLabel(label);
// TLD mint uses registerTldWithBuiltInWallet — no external-wallet variant
// is exported yet, so WC-signed-in users can check availability but can't
// submit. The label change explains why.
const isWc = wallet?.source === "wc";
$("tld-check").disabled = !valid || !wallet; $("tld-check").disabled = !valid || !wallet;
$("tld-submit").disabled = !valid || !wallet; $("tld-submit").disabled = !valid || !wallet || isWc;
if (isWc) $("tld-submit").title = "TLD registration via WizardConnect is not yet supported. Sign in with a built-in wallet to mint a TLD.";
else $("tld-submit").removeAttribute("title");
} }
$("tld-label").addEventListener("input", () => { $("tld-label").addEventListener("input", () => {

File diff suppressed because it is too large Load diff

View file

@ -3,12 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Theseus Navigator — the browser that speaks Bitcoin Cash names — sirius.x</title> <title>Theseus Navigator — the browser that speaks Bitcoin Cash names — Sirius.X</title>
<meta name="description" content="Theseus Navigator is a Chromium-based browser with native .bch / BCNR name resolution built in — no OS-level daemon, no DNS shim, no root-store install. Download for Windows."> <meta name="description" content="Theseus Navigator is a Chromium-based browser with native .bch / BCNR name resolution built in — no OS-level daemon, no DNS shim, no root-store install. Download for Windows.">
<link rel="icon" href="../assets/favicon.svg" type="image/svg+xml"> <link rel="icon" href="../assets/favicon.svg" type="image/svg+xml">
<link rel="mask-icon" href="../assets/favicon.svg" color="#d6ff3d"> <link rel="mask-icon" href="../assets/favicon.svg" color="#d6ff3d">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:site_name" content="sirius.x"> <meta property="og:site_name" content="Sirius.X">
<meta property="og:title" content="Theseus Navigator — the browser that speaks Bitcoin Cash names"> <meta property="og:title" content="Theseus Navigator — the browser that speaks Bitcoin Cash names">
<meta property="og:description" content="Native .bch and BCNR name resolution built into a Chromium browser. No OS-level daemon, no root-store install. Download for Windows."> <meta property="og:description" content="Native .bch and BCNR name resolution built into a Chromium browser. No OS-level daemon, no root-store install. Download for Windows.">
<meta property="og:url" content="https://silentmode.st/sirius-x/theseus/"> <meta property="og:url" content="https://silentmode.st/sirius-x/theseus/">
@ -80,7 +80,7 @@
<body> <body>
<nav class="topnav"> <nav class="topnav">
<a class="brand" href="../"><span class="g">sirius.x</span></a> <a class="brand" href="../"><span class="g">Sirius.X</span></a>
<a href="../#try">Try it</a> <a href="../#try">Try it</a>
<a href="../docs/">📚 Docs</a> <a href="../docs/">📚 Docs</a>
<a href="./" class="here">🧭 Theseus</a> <a href="./" class="here">🧭 Theseus</a>
@ -112,7 +112,7 @@
<a class="btn acid" href="https://silentmode.st/bns/theseus.x/#download" rel="noopener">Open theseus.x downloads →</a> <a class="btn acid" href="https://silentmode.st/bns/theseus.x/#download" rel="noopener">Open theseus.x downloads →</a>
<a class="btn ghost" href="https://silentmode.st/bns/theseus.x/" rel="noopener">Full Theseus site</a> <a class="btn ghost" href="https://silentmode.st/bns/theseus.x/" rel="noopener">Full Theseus site</a>
</div> </div>
<div class="note" style="margin-top:1.4rem"><b>Why not list versions here?</b> Theseus updates weekly; a hardcoded version on this page went stale within days last time. theseus.x is the single source of truth — its own operator ships the current build, and sirius.x links there instead of duplicating.</div> <div class="note" style="margin-top:1.4rem"><b>Why not list versions here?</b> Theseus updates weekly; a hardcoded version on this page went stale within days last time. theseus.x is the single source of truth — its own operator ships the current build, and Sirius.X links there instead of duplicating.</div>
</section> </section>
<section id="how"> <section id="how">
@ -163,7 +163,7 @@ sha256sum &lt;downloaded-file&gt;.exe</pre>
</div> </div>
<footer> <footer>
Theseus Navigator on sirius.x · Theseus Navigator on Sirius.X ·
<a href="../">back to sirius.x</a> · <a href="../">back to sirius.x</a> ·
<a href="https://silentmode.st/tools/">Silent Mode Tools</a> · <a href="https://silentmode.st/tools/">Silent Mode Tools</a> ·
<a href="https://silentmode.st/releases/">Release notes</a><br> <a href="https://silentmode.st/releases/">Release notes</a><br>