Sirius — the BCNR name registrar. Mint .x / .bch / .p2p names in one Bitcoin Cash transaction.
Find a file
Local Dev 14cc83dfae feat(registrar): 90/10 revenue split — TLD owner earns from name mints
Every second-level name registration under a TLD now routes 90% of the
service fee to whoever holds that TLD's certificate on chain, with 10%
going to the platform address. That's the economic incentive for
minting a TLD: you earn from every name registered under it.

The mechanism, end to end:

1. resolver-web.js fetchTldMap now also records mintScriptHex — the
   scriptPubKey of the TREG output that carries each TLD's NFT.
   Exported so registrar can decode it into a cashaddr with libauth.
   MVP: this is the ORIGINAL owner; NFT transfers after mint are not
   traced yet (a follow-up will walk the chain of transfers).

2. registrar.js gains findTldOwnerAddress(client, tld) and
   splitServiceFee(sats). The split constants live at the top of the
   file (TLD_OWNER_SHARE_NUM/DEN = 90/100) so the ratio moves in one
   place. Rounding: BigInt division favours the platform on odd sat
   counts so the two shares always sum EXACTLY to the input.

3. quoteRegistration wraps the existing flow: it derives the TLD from
   the name, looks up the TLD owner, and if the owner ≠ buyer it asks
   buildRegistrationTx to add a second fee output. If the owner
   couldn't be resolved (TLD not registered, decode failure) the full
   fee stays on the platform address — the buyer still pays the same
   amount either way.

4. register-tx.js buildRegistrationTx accepts tldFeeAddress/tldFeeSats
   and, when set, emits an extra P2PKH output for the TLD owner. Sits
   between the beacon dust and the platform-fee output; outputMap
   records .tldOwnerFee so callers can find it. costs also carries
   tldOwnerFeeSats and netCostSats includes it.

5. priceSummary in registrar-config splits the 'Service fee' row into
   'Service fee — TLD owner (90%)' + 'Service fee — platform (10%)'
   whenever tldOwnerFeeSats > 0, with a per-line note explaining
   where the money goes.

Bundle: re-exported findTldOwnerAddress + splitServiceFee from
register-entry.js. Rebuilt bns-register.js (~34 kB) and deployed;
cache-buster bumped to ?v=20260908split on portal / admin /
register-flow.js.

Verified live: findTldOwnerAddress('.bch') returns the operator
cashaddr; quoteRegistration('tester42.bch') builds cleanly with a
9,000/1,000 split output pair on a 10,000-sat fee; priceSummary
renders both lines. No regressions on the TLD-mint flow (buyer IS
the TLD owner there — split short-circuits and it stays a single
fee output as before).
2026-09-08 02:42:16 +02:00
admin feat(registrar): 90/10 revenue split — TLD owner earns from name mints 2026-09-08 02:42:16 +02:00
assets feat(sirius-x): Sirius.X brand rebrand, banner star-divider, WC on portal 2026-09-07 01:35:35 +02:00
brand feat(sirius-x): admin TLD hide/unhide + tabbed sign-in modal (4 direct actions) 2026-09-08 02:19:41 +02:00
docs feat(sirius-x): admin TLD hide/unhide + tabbed sign-in modal (4 direct actions) 2026-09-08 02:19:41 +02:00
js feat(registrar): 90/10 revenue split — TLD owner earns from name mints 2026-09-08 02:42:16 +02:00
theseus feat(sirius-x): admin TLD hide/unhide + tabbed sign-in modal (4 direct actions) 2026-09-08 02:19:41 +02:00
.gitignore sirius.x/docs: add "Host your name" recipe + serve INSTRUCTIONS.md over http 2026-08-31 14:56:27 +02:00
index.html feat(sirius-x): admin TLD hide/unhide + tabbed sign-in modal (4 direct actions) 2026-09-08 02:19:41 +02:00
portal.html feat(registrar): 90/10 revenue split — TLD owner earns from name mints 2026-09-08 02:42:16 +02:00
register.html feat(sirius-x): merge register.html into landing via shared mint flow 2026-09-07 22:36:02 +02:00
tld.html feat(sirius-x): admin TLD hide/unhide + tabbed sign-in modal (4 direct actions) 2026-09-08 02:19:41 +02:00