Sirius

Home for decentralized domain names on the Bitcoin Cash chain. Names that live as CashTokens certificates in a wallet you control, discovered through a public beacon address any electrum server can read. No registrar, no ICANN, no DNS root — resolvers read the chain directly. Named for the brightest star: a fixed reference everyone sees the same way.

Open Sirius.X — register a name How BNS1 works Live TLDs

Sirius.X is the sovereign registrar site, served from its own name. Mirror: silentmode.st/sirius-x/ · gateway: navigate.st/bns/sirius.x/ · native with a resolver: https://sirius.x/

BNS1 — the protocol in three parts

A minimal Namecoin-style name protocol on Bitcoin Cash. No fork, no sidechain, no new blockchain — three ordinary mechanisms of BCH doing three different jobs.

ownership

CashTokens certificate

An immutable NFT whose commitment is the UTF-8 name. Whoever holds the certificate owns the name. Consensus guarantees nobody can mint another output in the same category without spending it.

data

OP_RETURN payload

A tiny JSON payload prefixed BNS1 — the name's records (URL, inline HTML page, IPv4, cashaddr, Sia bucket, TLS fingerprint). Total budget: ≤ 200 bytes.

discovery

Beacon dust output

Every protocol transaction pays 600 sat to a well-known beacon address. Calling get_history on that address enumerates every registration and update ever made — no indexer to trust, no server between you and the answer.

What you can attach to a name

Seven record types cover the space between "point at any URL" and "the whole website lives in this transaction". Records travel in the same OP_RETURN as the name itself; the total payload stays inside 200 bytes.

RecordWhat it holdsUsed for
uAn HTTPS URL Redirect the name at any existing site
hInline HTML A tiny website served entirely from the transaction — no host, anywhere
aA cashaddr Payments — the "send to alice.bch" use case
ipIPv4 address Point DNS directly at a server you run for the name
pAn upstream URL Reverse-proxy an existing site — address bar stays on the BNS name
s3bucket/key or bucket/prefix/ A full multi-file site on the Sia storage network
tlsSHA-256 of the DER certificate Pin your server's TLS cert so nobody can MITM the connection

How registration works

  1. Pick a name. Labels: [a-z0-9-]{1,32}. Any TLD you like — the chain decides what exists, not a committee. Search availability on the Sirius.X registration page.
  2. Mint the certificate (a REG transaction). One BCH transaction simultaneously mints an immutable CashTokens certificate whose commitment is your name, publishes the records as a BNS1-prefixed OP_RETURN, and pays 600 sat to the beacon so every resolver can find it. First valid REG wins.
  3. Update records at any time (a UPD transaction). A signed transaction that spends and returns your certificate to yourself, carrying the new records. Only the certificate holder can do this, because a vout in a name's category is only possible if a vin held it.
  4. Transfer by sending the certificate. Sending the certificate to another wallet transfers the name. No beacon transaction needed — the certificate is the ownership token.

Wallets that can register a name

Registration is a normal Bitcoin Cash transaction shape with a small protocol twist: the certificate's identity is derived from the outpoint spent at input 0, so the buyer must choose the coin, not the wallet. Any wallet that can build a transaction to that spec works.

works today

Built-in browser wallet

Generated in your browser, seed encrypted with PBKDF2 → AES-GCM in localStorage, never transmitted. The registration page can search, quote, sign and broadcast in one flow. Self-custody throughout — the registrar never touches the certificate.

works today

WizardConnect LGPL

Pairs the registration page with an external wallet over NIP-17 gift-wrap messages — pass-through signing, so the dApp builds the exact transaction and the wallet's key just signs. Currently: Cashonize v0.9+ on chipnet.

deferred

CashConnect

Wallet-orchestrated, not pass-through — the wallet auto-selects UTXOs. That collides with the genesis-input rule that fixes the certificate's identity to a specific coin. May return once its bch_executeAction model ships.

Self-custody by construction. The certificate lands at the buyer's own address in the same transaction as the fee payment, so the registrar never holds the name. The acceptance test explicitly checks that no certificate exists at the fee address after each registration.

TLDs live on chipnet today

BNS on BCH is deliberately TLD-agnostic — the rightmost label is the registry. There is no pre-existing root; the first registration under a new suffix is what makes that TLD exist. Below is the working set as of today.

TLDNote
.bchThe original TLD; bare on-chain names default to it
.p2pPeer-to-peer software and services
.deviantThe Deviant division's namespace (Silent Mode's parent house)
.bitNamecoin's legacy TLD, brought under BNS
New TLDs. Because there is no root registry to negotiate with, a new TLD is simply the first registration under a new suffix. Silent Mode's resolver clients will mint TLS certificates only for TLDs on a configured list (the local CA is name-constrained) — adding a TLD to that trust list is a resolver config change, not a chain change.

Live names on chipnet

These are actually registered on chipnet, right now, resolving through the relay and every Silent Mode client. Each demonstrates one record type from the list above.

NameBacking record
hello.bch h — a page inside the transaction itself
silentmode.bch h — this project's own on-chain demo
coinspectrum.bch ip · p · tls — a full site on an ordinary server, pinned by TLS fingerprint
coinspectrum.deviant.bch s3 — a full multi-file site on the Sia storage network
siatest.bch s3 — earlier Sia test
argo.bch h — the future hosting-pact brand
theseus.bch h — the browser's brand page
demo.p2p Multi-TLD proof — same chain, different rightmost label

Sirius vs an ordinary registrar

What you getOrdinary registrarSirius
How ownership is proven A row in the registry's database A CashTokens NFT in your wallet
Who can revoke it The registrar, the registry, ICANN, a court order to any of them Nobody — the certificate is an immutable NFT
Renewal Yearly — miss it and the name is auctioned Never on chipnet BNS1; mainnet BNS2 will have a lifecycle (below)
Cost per registration $8 – $30 / year, forever Chipnet: worthless test coins. Mainnet BNS2 target: ~$10–20 to register & renew
Identity required Email, sometimes phone, sometimes address, always payment method A wallet — no email, no phone, no card, no KYC
DNS resolution ICANN → TLD registry → registrar's nameservers → you Any electrum server reads the chain; your resolver does the rest
Web presence Depends on a hosting provider that can suspend you Point h at inline HTML, s3 at Sia, or ip/p at any server you run

Coming next — BNS2 & the covenant registry

BNS1 is the chipnet prototype. The mainnet version, BNS2, adds two consensus-enforced pieces the prototype leaves as indexer policy. Both are designed on paper — the specs live in Decentralized.DNS/ — and both wait on the mainnet cutover.

designed

Covenant-run registry

Certificates live in a CashScript covenant that enforces one certificate per name at consensus, not by indexer agreement. Same covenant enforces a lifecycle: ACTIVE → (6–12 months) IDLE → OPEN. The owner's option to reclaim during IDLE is 50–100× cheaper than a stranger's takeover, so the grace period is real: a takeover only ever happens when the owner is genuinely gone.

designed

Commit–reveal (CMT op)

A front-running defence. Publish a hash of your name first (with a 16-byte salt), reveal the name later; the reveal that points at the oldest valid commit wins. An attacker who sees the reveal cannot produce an older commit, because blocks are already written.

designed

Trustless purchase

Scan-to-sign registration for airgapped SPV wallets: the site builds an unsigned transaction, the wallet signs it on a separate device via QR, the buyer broadcasts. No relay, no connector, no third party at any point.

Why lifecycle matters — the Namecoin lesson. A study of Namecoin found ~120,000 .bit names registered and 28 in actual use. Names live forever mean the interesting ones get squatted forever. BNS2's covenant expiry is the design that avoids that trap without ever letting an active owner lose a name they still use.

Honest limitations of the current chipnet build

Uniqueness is indexer policy

BNS1 depends on resolvers agreeing that "first valid REG wins". Consensus does not enforce it yet — that is what the covenant registry above adds for mainnet.

No front-running defence yet

An observer of the mempool can copy your REG and race it. Does not matter on chipnet; matters the instant names have value. The commit-reveal spec above is written; not implemented on chipnet.

Names live forever (for now)

BNS1 has no expiry. The covenant registry adds the ACTIVE → IDLE → OPEN lifecycle; BNS1 keeps it flat because the mistake cost on chipnet is zero.

Records ≤ 200 bytes

The whole payload including BNS1 prefix and JSON fits in one OP_RETURN. Enough for URLs, cashaddrs, IPs and Sia keys — inline HTML (h) is a tiny page, not a full site. Bigger sites use s3.

Beacon is a keyed address

Prototype convenience — production would use a keyless constant script so no one can be pressured over the beacon key.

Everything is chipnet

Mainnet migration is a separate transaction and comes after BNS2 lands. All names, coins and mistakes on chipnet are worthless — that is the point of doing it there first.