Commit graph

13 commits

Author SHA1 Message Date
Local Dev
e5bcdc0f46 feat(sirius-x): slim top nav + beautiful multi-column footer on landing
Moved secondary destinations (Docs, Roadmap, Brand, Silent Mode) out
of the top nav and into a proper site footer on the landing:

Top nav (all pages) is now:
  Sirius.X  |  Try it  |  🪪 Register  |  🌐 TLD  |  🧭 Theseus  |  🔑 Sign in

That's 6 items instead of 10, and every one is a primary action the
user takes on Sirius.X. Docs / Roadmap / Brand / Silent Mode read as
'learn more', not 'do a thing', so they belong in the footer.

Landing footer redesigned as a four-column grid:
  - Brand column: star mark, wordmark, one-line pitch
  - Product: Register / TLD / Portal / Theseus
  - Learn: Docs / Roadmap / Pantheon / Brand kit
  - Silent Mode: silentmode.st, TLD registry, theseus.x, hephaestus.x

Meta row at the very bottom: 'Alpha' badge + chipnet disclaimer on
the left, copyright + brand-kit link on the right. Cascades to 2-col
on tablet, 1-col on phone.

Subpages keep their existing minimal footers for now — the beautiful
footer is landing-only where it earns the real estate. Nav slim is
site-wide.
2026-09-07 21:54:06 +02:00
Local Dev
cf04b583aa feat(sirius-x): public tld.html — search + mint a TLD end-to-end
Missing user-facing surface: minting a TLD required either the portal
(sign in first, register second, tucked under 'Signed in') or the
operator-only admin panel. New tld.html is a public, single-purpose
page that lets anyone go straight from label to certificate.

Flow: type a label → live check against /api/tlds → 'Register .foo →'
appears → sign-in cards (New / Import / WizardConnect) revealed inline
→ mint section shows label, address, price → submit walks through
'connected → checking-availability → loading-coins → building →
signing → broadcasting → registered'.

Wire is proven end-to-end (search returns a registerable card for
free labels, wallet flow generates a valid seed, address, submit
reaches 'wallet is empty' with a friendly faucet hint for the
signed-in address). Downstream of loading-coins is the same build/
sign/broadcast path exercised by every name registration.

Dispatch on wallet.source uses registerTldWithExternalWallet when
signed in via WC, else registerTldWithBuiltInWallet. Live TLD table
under the search shows every currently registered TLD with its
category; refreshes on successful mint.

Nav: '🌐 TLD' added to all 7 pages between Register and Brand.
Landing's 'Register a TLD' card now points here (previously linked
to the operator admin, which locked out anyone who isn't operator).
2026-09-07 20:39:11 +02:00
Local Dev
1cca60c4df fix(sirius-x): profile-menu URLs, landing search, empty-wallet hint, drop Pantheon
Five UX fixes from a review pass:

1. profile-menu.js: dropdown links (New/Add/WC wallet, Admin) were
   absolute /sirius-x/portal.html paths. That's fine on silentmode.st
   but under the BCNR route (sirius.x/) the origin is different, so
   the gateway forwarded to Sia which returned 'NoSuchKey' XML. Now
   derive the base URL from the nav's own .portal anchor href — which
   is already set per page with the right relative path — so it works
   from the root, from subdirs, and under any BCNR gateway. Admin URL
   is derived from the same base.

2. Landing hero got a search input. Submitting it normalises the
   label ([a-z0-9-], 63 chars) and redirects to register.html?q=<label>.
   register.html now honours ?q= on load: prefills the input, triggers
   the parallel multi-TLD lookup, and scrolls into view. Single source
   of truth stays in register.html; the landing just hands it a query.

3. Portal TLD-mint error path now special-cases 'wallet is empty' and
   shows a friendlier message with the wallet's address and links to
   two chipnet faucets, so the fix is one click away instead of a
   guess.

4. Removed 'Pantheon' from every page's top nav — it's a section on
   the landing that anyone scrolling will discover, and keeping it in
   the nav crowded the bar.

5. Cache-buster ?v=20260907rel on the profile-menu.js script include
   across all 7 pages so browsers that cached the pre-fix version
   pick up the new one on next load.
2026-09-07 20:32:14 +02:00
Local Dev
6dd8b141d4 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.
2026-09-07 01:35:35 +02:00
Local Dev
e59a2a01b5 feat(sirius-x): host name-registration flow on sirius.x itself
Copies site/sirius/register.html to site-sirius-x/register.html with
paths rewritten to absolute silentmode.st URLs (js bundle, importmap,
shared.css, WizardConnect vendor) so the page works both from
silentmode.st/sirius-x/register.html and from sirius.x/register.html
via the BCNR gateway. Nav is swapped to the sirius.x layout with
profile-menu.js.

Landing, portal, docs, and theseus subpage now link locally with
./register.html instead of redirecting off to silentmode.st. Adds
'Register' to the top nav of all six sirius.x pages.

Sia and VPS mirrors updated for register.html and the six pages.
2026-09-06 22:32:23 +02:00
Local Dev
56e25d7938 sirius.x: fix electrum listunspent + profile dropdown across all pages
registrar.js: BNS.connect() now filters silentmode.st/electrum and
coinspectrum.duckdns.org:50011 out of the default electrum list. Those
endpoints are our own bns-indexer.js — beacon-only, serves get_history +
transaction.get but NOT listunspent for arbitrary scripthashes. Every
wallet op (getBalance, getUtxos, edit signing) needs listunspent, so
picking a beacon indexer first (which we did for best reachability) broke
every wallet unlock with "-32601 unsupported method: blockchain.
scripthash.listunspent". New `beaconOk: true` opts back in for pure-
resolution paths.

Rebuilt the browser bundle (site/js/bns-register.js) so the fix reaches
portal + admin + register.html + anything else that imports BNS.connect.

site-sirius-x/js/profile-menu.js: a small shared script that transforms
the "🔑 Sign in" nav pill into a dropdown menu on every sirius.x page.
Signed-out shows New wallet / Add wallet / WizardConnect + a link to the
sign-in page. Signed-in (reads localStorage 'siriusProfile') shows the
short address, My names, Admin, Sign out. Included via one <script defer>
tag on each of the 6 pages (landing / portal / admin / docs / theseus /
brand); dropdown CSS is inlined by the script itself so consumers don't
need a matching stylesheet.

Portal.html writing to localStorage.'siriusProfile' after sign-in is a
follow-up so the dropdown reflects state across pages — until then the
menu always shows the onboarding options.
2026-09-06 18:53:17 +02:00
Local Dev
1065739aee sirius.x/theseus: delegate downloads + versions + hashes to theseus.x
The Theseus subpage on sirius.x had a hardcoded v0.0.4 with pinned download
URLs and pinned hashes — went stale within days (current is v0.3.5). Since
theseus.x is now the canonical Theseus site with its own /#download and
/#verify sections that its operator keeps current, delegate:

  * Download section shrunk to a single 'Open theseus.x downloads' CTA.
    Removed hardcoded version, per-build cards, size estimates. Added a
    short note explaining why (sirius.x won't try to shadow theseus.x's
    release notes).
  * Verify section: sha256sum placeholder now takes '<downloaded-file>'
    instead of a specific filename; hash-check link points at
    theseus.x/#verify where the current release's hashes live.

Sirius.x/theseus becomes a small landing that says 'what Theseus is + how
it works' (evergreen); theseus.x owns everything version-sensitive.
2026-09-06 01:45:54 +02:00
Local Dev
13be3577be sirius.x: /brand/ kit — logo, mono, avatar, banner, favicon, palette
brand/ ships every reusable mark plus a browseable kit page:
  * logo.svg — full colour wordmark (star + sirius.x, .x in acid green)
  * logo-mono.svg — currentColor version for print / one-colour merch
  * favicon.svg — 64×64 rounded square, scales cleanly to 16×16
  * avatar.svg — 512×512 square, hard corners (platforms round-mask)
  * banner.svg — 1200×630 OG / Twitter Card canvas, crop-tolerant layout
  * index.html — brand-kit page: asset previews + download links, full
    colour palette with names/hex, typography sample, do/don't guidance,
    MIT-attribution notice.

Nav: added 🎨 Brand link to every sirius.x page (landing, portal, docs,
theseus). og:image on every page updated to point at /brand/banner.svg
instead of the wordmark logo — social crawlers get a proper 1200×630
banner with title, tagline, and mark instead of a thin logo strip.

Kept /assets/favicon.svg and /assets/logo.svg in place so existing
external references (Nostr metadata, third-party embeds) don't break.
2026-08-31 05:44:25 +02:00
Local Dev
adeeae4cd4 sirius.x portal: /api/holdings endpoint + favicon paths + roadmap link
gateway/public-gateway.mjs:
  * GET /api/holdings/<scripthash> and POST /api/holdings {scripthashes:[…]}
    — server-side wallet-holdings lookup for the portal. Bns-indexer is
    beacon-only so it can't answer listunspent for arbitrary addresses; the
    gateway does the electrum roundtrip and cross-joins with the cached BCNR
    index. Client posts scripthashes (no libauth needed on the server) and
    gets back the names owned.
  * elConnect now falls through to whole-buffer JSON.parse when a Fulcrum
    response lacks a trailing newline — chipnet.bch.ninja does this and
    otherwise every elCall to it times out. Same tolerance pattern as
    bns-indexer.test.mjs's tiny electrum client.
  * verifyElectrum picks a full electrum with a 3s server.version probe so a
    hung server fails over to the next in seconds instead of stalling 20.
  * Skips silentmode.st/electrum and coinspectrum.duckdns.org:50011 for
    /api/holdings — both are bns-indexer routes that don't do listunspent.

web/register-entry.js: export addressToScripthash so the portal can derive
the scripthash for each of its wallet's watched addresses before POSTing.
Browser bundle rebuilt.

site-sirius-x pages:
  * favicon + logo hrefs made relative (./assets/… on index/portal,
    ../assets/… on docs/theseus). Absolute /sirius-x/… broke on the sirius.x
    BCNR route where the site is served from root instead of under /sirius-x/.
  * Roadmap nav link added back to portal, docs, theseus — the landing has an
    anchor to a section on itself, so subpages now link to it explicitly.
  * portal.html: loadNames rewritten to POST scripthashes to /api/holdings
    instead of doing client-side electrum. Works on browsers whose networks
    block chipnet electrum ports; same-origin HTTPS on 443.
  * portal.html: bundle import ?v= bumped so Chrome's in-memory ES module
    map picks up the new bundle instead of a stale cached copy.
2026-08-31 05:40:47 +02:00
Local Dev
32fdaac1ed sirius.x: branding — SVG favicon, wordmark logo, OpenGraph + Twitter Card
assets/favicon.svg — 4-point sparkle star in acid green on a rounded dark
square. Scales cleanly at any size (16px tab icon through Retina). Uses the
Silent Mode palette so it recognisably reads as Silent Mode family.
assets/logo.svg — the same star + "sirius.x" wordmark with the .x accented in
acid green. Used as the og:image; can also be inlined as a brand mark.

Every page (landing / docs / portal / theseus) gets:
  * <link rel="icon"> + <link rel="mask-icon"> pointing at favicon.svg
  * og:type, og:site_name, og:title, og:description, og:url, og:image
  * twitter:card + twitter:title/description on the landing (summary card)

Absolute paths (/sirius-x/assets/…) so subpages get the same brand mark
without per-page path juggling.
2026-08-31 04:30:53 +02:00
Local Dev
1f331a298b sirius.x: pull the sign-in link to the far right of the top nav
Standard header pattern — brand + main nav on the left, the account action on
the right. New .portal class does margin-left:auto plus a subtle acid tint so
it reads as a button, not another nav item. Applied on all four pages
(landing, docs, portal, theseus); the label is '🔑 Sign in' everywhere
(portal.html itself still marks it .here).
2026-08-29 22:22:37 +02:00
Local Dev
bd4b4602e0 sirius.x: extract docs to /docs/, cross-link portal + theseus navs
The landing kept expanding whenever documentation was added inline. Moving it
to its own subdirectory gives docs room to grow and keeps the landing to the
"try it / roadmap / verify" story it's supposed to be.

  * docs/index.html — TOC + eight sections (TLD registry, registration,
    records, resolver, mainnet pricing, tracker, verification, runbook).
    Reads on its own; no dependency on the landing.
  * index.html — #docs section shrunk to a one-paragraph call-to-action with a
    prominent "Open the docs →" button; nav Docs link now points at /docs/.
  * portal.html + theseus/index.html — nav Docs links updated to /docs/ (was
    ./#docs / ../#docs) so every subpage points at the standalone docs.
2026-08-29 22:00:37 +02:00
Local Dev
016095a604 sirius.x: portal (sign-in + names), Theseus subpage, drop .com public mention
* portal.html — sign in with a seed phrase (in-memory only, wiped on sign
    out), fetch owned NFT categories across all watched addresses, cross-join
    against BCNR buildIndex to show the wallet's names + records. Read-only
    for now; record edit (UPD) will piggyback on the register bundle's signing
    path. WizardConnect button stubbed with a "soon" pill — the adapter
    already exists in register.html and will be wired in the next pass.
  * theseus/index.html — download page for Theseus Navigator (v0.0.4) and
    Ariadne Resolver (Windows setup + Android APK). Same design system as the
    landing. Links to dl.silentmode.st for the actual binaries and to
    silentmode.st/releases for the manifest.
  * index.html — nav now has 🧭 Theseus and 🔑 Portal chips; "Try it" section
    adds cards for the portal and Theseus.
  * site/tlds/ — .com row removed from the public table; count updated to 14;
    supersedes the "held by operator" language per operator direction.
  * site-sirius-x/index.html — softened ICANN-adjacent note.

All routes verified live: silentmode.st/{tlds,sirius-x,sirius-x/portal.html,
sirius-x/theseus,bns/sirius.x} return 200. Sia mirror updated for all three
new/changed sirius.x pages.
2026-08-29 21:57:33 +02:00