Jump to: navigation, search

Register and Configure .bit Domains

Register a domain name with a registrar


  • No need to run your own node
  • No need to renew the registration yourself
  • No need to deal with Namecoins directly


  • Have to trust the registrar
  • You don't own the domain name
  • Registrar fees are higher than the fees for Namecoin-Qt or namecoind

Register a domain name using namecoind or Namecoin-Qt

How much does it cost

You can register a .bit domain for 0.02 NMC using the Namecoin software namecoind or Namecoin-Qt. The fee consists of two parts: a) the registration fee, and b) the transaction fees for the name_new and the name_firstupdate transactions.

Command Registration fee Transaction fee Summary Notes
name_new 0.01 NMC 0.005 NMC Pre-order a domain name You still don't own the domain!
name_firstupdate 0.00 NMC 0.005 NMC Finalize the registration. The name becomes public. You own the domain during the next 36000 blocks (six months, approx.)
name_update 0.00 NMC 0.005 NMC Renew, update, or transfer a name Gives you another ~6 months of ownership

Install the Namecoin software

Install Namecoin-Qt (GUI) or namecoind (no GUI), see http://namecoin.info/?p=download
Start the software and wait until it has synchronized, i.e. it has downloaded the whole blockchain.
Namecoin-Qt shows the synchronization progress on its main screen.
On namecoind use the command ./namecoind getinfo and compare the block count with the info at one of the Namecoin blockchain explorers (e.g. http://namecoin.webbtc.com/ or http://namecha.in/).
The sychronization process can take between 2 hours (fast network connection, SSD) and 50 hours (mediocre network connection, old harddisk). For advanced users: How to Speed-up the Initial Program Start

Namecoin-Qt (GUI) is mostly self-explanatory. If you choose namecoind, however, you have to issue the two initial steps name_new and name_firstupdate manually.

How to register names with the graphical interface namecoin-qt

First you register a name. For example "d/example" for the website "example.bit"

Second you update it with a value. This is a text that will tell the software where is the website.

If you have a regular hosting like, godaddy, or a free hosting, like 000webhost, enter your hosting dns servers here with a json format: How to configure your domain

{"ns": ["ns0.web-sweet-web.net", "ns1.web-sweet-web.net", "ns0.xname.org"]} 

For zeronet support just add a 'zeronet' key to your namecoin domain.

  {  "zeronet": {
       "": "1EU1tbG9oC1A8jz2ouVwGZyQ5asrNsE4Vr", 
       "subdomain": "1BLogC9LN4oPDcruNz3qo1ysa133E9AGg8", 
       "subdomain2": "1TaLk3zM7ZRskJvrh3ZNCDVGXvkJusPKQ" }

How to register names with the commandline

Pre-order a domain name

<name> is your domain name without .bit, in lowercase. For internationalized domain names, the IDNA ASCII standard applies. Unicode entries are not supported.
Use one of the Namecoin blockchain explorers ( e.g. http://namecoin.webbtc.com/ or http://namecha.in/ ) to check if the name is available. Or find out on the command line: ./namecoind name_show d/<name>

If the name is available you can now pre-order the name with the following command:
./namecoind name_new d/<name>

The output will look like this: "0e0e03510b0b0b7dbba6e301e519693f68062121b29f3cd3a6652c238360d0d0", "9f213ff4a582fd65"

This will reserve a name but not make it visible yet (you still don't own the domain!). Make a note of the short hex number. You will need it for the next step. Wait at least 12 blocks, which is usually between two and six hours, then finalize your registration by issueing the name_firstupdate command, see next step. (Do not shut down namecoind during the waiting time!)

If you lose the random number, you can just issue name_new again. You still need to wait 12 blocks before you can proceed.

Finalize your registration

./namecoind name_firstupdate d/<name> <rand> '<json-value>' where <rand> is the shorter hex number you got from the previous command, and <json-value> is a JSON-encoded string that contains your webserver/nameserver information, see below. Note that your JSON must be enclosed in quotes and escaped properly.

If you see this error message:

error: {"code":-1,"message":"previous tx used a different random value"}

try adding the long hex number: ./namecoind name_firstupdate d/<name> <rand> <longhex> '<json-value>'

(WARNING: if namecoind is not synchronized, then the getinfo command can fool you into thinking more than 12 blocks have passed. Do NOT use deletetransaction in an attempt to "fix" an unconfirmed name_firstupdate.)

Your registration is valid and publicly visible as soon as the name_firstupdate transaction is included in the block chain. This usually takes between 5 minutes and one hour.

Other updates

Use the name_update command if you want to change the JSON value.
Furthermore, name_update is used for the renewal of a registration after six months.
./namecoind name_update d/<name> '<json-value>'
Each name_update resets the expire time to the maximum value, i.e. 36000.

name_update can also be used to transfer a name to someone else.

How to configure your web server

Add your domain on your web hosting server, like you do it for other domains. For example, to host a yourdomain.bit you would add the following virtual host entry to your Apache configuration file.

<VirtualHost *:80> DocumentRoot /www/yourdomain.bit ServerName www.yourdomain.bit </VirtualHost>

Most shared hosts (like Dreamhost, Hostgator, Bluehost, etc.) and control panels (like CPanel) have error checking mechanisms that prevent non-traditional TLD's from being added. The best you can do is try to add your .bit domain using the normal domain configuration interface they provide and contact their technical support if this fails.

How to configure your domain

Adapted from : https://github.com/vinced/namecoin/blob/master/README.md

Values in the name_update command are JSON encoded. Here is a syntax validator that checks your json-value: http://dot-bit.org/tools/domainCheck.php

=> use it to get proper escaping for windows.

Delegate your domain and subdomains to DNS servers:

Recommended: * {"ns": ["ns0.web-sweet-web.net", "ns1.web-sweet-web.net", "ns0.xname.org"]}

Avoid ip if possible : * {"ns": ["", ""]}

=> Full zone control (standard way of managing domains). IP or hostname allowed.

Step required: * Add example.bit in the same interface where you added example.com

If you can only add a domain by registering it, you can't use this method. You may use another web hosting provider.

Map all hosts in the domain to one IP address:

  • {"ip":"", "map": {"*": {"ip":""}}}

Example: ./namecoind name_update d/<name> '{"ip":"", "map": {"*": {"ip":""}}}'

=> No custom subdomain : domain.bit and *.domain.bit point to

Step required: * Add example.bit in the same interface where you added example.com

If your web hosting provider don't accept unknown TLDs (.bit for example), you must use another provider.

Map hosts in the domain to several IP addresses:

  • {"ip":"", "map": {"demo": {"ip":""}}}

Example: ./namecoind name_update d/<name> '{"ip":"", "map": {"demo": {"ip":""}}}'

=> 1 custom subdomain : demo.domain.bit points to and, domain.bit points to

Do a translation step before delegation:

  • {"translate": "bitcoin.org", "ns": ["", ""]}

in which case, foo.example.bit will be translated to foo.bitcoin.org before the DNS server will reply.

Now compatible with DNS servers using a recent NamecoinToBind.