Names on the chain.

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, 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 mirror goes down.

Get started Read the docs

Try it

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.

Register a name

Pick a label, search across every TLD in the registry at once, mint the name certificate straight into your own wallet. A few cents in chain fees, no yearly renewal.

Register a TLD

Under the per-TLD registry, a TLD is itself a certificate on the chain. Public mints are operator-gated today; propose one below.

Look up & verify

Resolve any BCNR name, compare records across mirrors, and check the TLD registry snapshot against the chain. Everything is publicly verifiable.

Documentation

The BCNR protocol, the TLD registry, and the wallet/registrar layer — in that order. Everything is user-runnable; nothing here requires trusting a server.

The TLD registry

Under the current design, every second-level name lives beneath a TLD whose certificate exists on chain. No TLD cert → no valid name. The full model, current TLD list, and verification paths are documented at silentmode.st/tlds/. Fifteen TLDs currently minted on chipnet: bch p2p bit nav test x asm neo gt sc sia com dex cex nt (.com is held by the operator, not offered for public registration).

Register a name — end to end

The buyer's certificate mints straight to a wallet they control, in one transaction that also publishes the initial records and pays the beacon. Nobody, including the operator, can take the name back — the covenant work in progress adds an expiry / reclaim clock but does not change who controls the key.

  1. Search a label across every TLD The registrar fans out to all TLDs in the registry in parallel and shows available / taken / held per row.
  2. Create or connect a wallet Built-in browser wallet (PBKDF2 → AES-GCM in localStorage) or WizardConnect to Cashonize / Paytaca — both mint to the buyer's own key.
  3. Confirm the price Miner fee + beacon dust + certificate dust + service fee. Chipnet placeholder is 10,000 sat; real pricing is a mainnet decision.
  4. The certificate lands in your wallet The name resolves the moment the transaction confirms. Records can be set or changed later — only your key can sign a UPD.

Records — where a name points

A registered name carries a small JSON records object. Every record is optional; multiple can coexist. The gateway picks in order: h (on-chain inline HTML) → s3 (Sia bucket key) → ip (host header served by an IP) → u (redirect). Subdomains inherit from their parent with a slight priority tweak (see record-picker.js).

Where the chain is authoritative and where the tracker is a cache

A tracker publishes signed snapshots of the TLD registry to Sia and Nostr so downstream clients don't have to walk the chain. The chain is the authority; the tracker is speed. Every signed snapshot carries a cryptographic root anyone can recompute locally from the chain — a lying mirror is caught by any recipient that bothers to check.

Runbook — for operators / new sessions: the exact commands to register TLDs, mint names, update records, and deploy are in INSTRUCTIONS.md at the repo root. The public docs above explain what; the runbook is how.

Propose a new TLD

The per-TLD registry means minting a TLD is a real, paid action — not a namespace land-grab. During the alpha, all TLD mints are operator-signed. To propose a TLD, get in touch via the channels below. The design (mainnet) adds an on-chain covenant with countersignature + tiered USD price floors: 1-char $100k, 2-char $50k, 3-char $15k, 4-char $5k, 5–8-char $1k, 9+-char $250; one-time payment (not annual). See the design doc for the full model.

ICANN-adjacent TLDs (.com, .io, …) are specifically not open for public mint. They are reserved by the operator to prevent squatting, and — under the covenant — even a fully-priced request will not be countersigned. A TLD registry is only useful if it does not immediately collapse into an ICANN-shadow.

What's coming

sirius.x consolidates docs and registration today; three larger pieces are on the roadmap.

Wallet & name portal next

Sign in with your BCNR wallet, see every name you own, edit records inline, mint or renew from one place. Same self-custody as today — the portal never handles your keys.

Sirius Studio planned

An in-browser site editor for names you already own — the WordPress / Tilda / Wix pattern, but the whole site persists to Sia and the name's s3 record updates on save. Sites live where the name says they live.

Decentralized git remote MVP live

The Silent Mode repo is served as a bare git tree over dumb-HTTP from the VPS. Clone it with any git client, no login. Forgejo + Sia sync for a proper decentralized backend is the next track.

git clone https://silentmode.st/sirius-x/repo/silent-mode.git

One-shot snapshot as a downloadable git bundle (works when dumb-HTTP is blocked):

curl -O https://silentmode.st/sirius-x/repo/silent-mode.bundle
git clone silent-mode.bundle silent-mode

Verify this page against the chain

You do not have to trust that sirius.x is served by anyone specific. The name's certificate is on the Bitcoin Cash chain; the records point to Sia; every path is independently checkable.

1. Confirm the certificate exists on chain

node --input-type=module -e "
import { loadWallet } from './Argus/src/lib/wallet.js';
import { resolveName } from './Argus/src/lib/bns.js';
const w = await loadWallet('main');
console.log(await resolveName(w.provider, 'sirius.x'));
process.exit(0);"

2. Fetch the TLD-registry snapshot from Nostr

The operator-signed snapshot of the TLD list is published as a Nostr replaceable event. Any relay carries it; the event's content field carries the current snapshot root.

Kind / d-tag
30078 / bns-tld-list
Pubkey (x-only, hex)
f2c925194c531c7c398017e35b2396df64a61a613aa5fadebdf1f4990f2267f4
Relays
wss://nos.lol · wss://relay.damus.io

3. Reach this site via more than one route

The same content should be served from at least two independent paths. If one mirror is unavailable, the others still work. If two mirrors disagree, the on-chain record is the tiebreaker.