Welcome to Minter Name System documentation!

Contents:

Minter Name System

Minter Name System (MNS) is a Distributed Domain Name System by HashEx powered by Minter Network.

Features

  • Distributed and Secure Name System
  • Interoperation with DNS
  • Cryptoaddress Resolver
  • Decentralized Zones Support

Contribute

  • Issue Tracker:
  • Source Code:

Support

If you are having issues, please let us know. We have a mailing list located at: mns@hashex.org

License

The project is licensed under the GPLv3 license.

Quick Start Guide

Why do I need it?

First, MNS provides you an ability to buy a domain in .mnt zone. You can buy any domain, for example, mydomain.mnt. Domain will be registred to your minter address via blockchain. You can use it like classic domain to provide access to your website or receive emails.

Second, MNS provides you an ability to associate your cryptoaddress like Mx3b22ca335b9f55af452d8c4b117ee06578505282 to any domain, for example, mydomain.mnt or mydomain.com, so you could receive funds to pretty domain address, not ugly cryptoaddress.

How to buy .mnt domain?

  1. To buy a domain in .mnt zone you need to follow https://mns.hashex.org/buy.
  2. Enter a domain name into search field and push “Search” button.
  3. If domain is free, green arrow and button “Buy” will appear. If domain is not free, red cross will appear.
  4. Push “Buy” button. Buy popup helper will appear.
  5. You need to send a transaction to specified address with specified amount of funds and provided message with registration command. Do not send transaction without message. It will raise error.
  6. Just wait while transaction is complete. And go to https://mns.hashex.org/settings.
  7. Here you can enter your domain and manage interface will appear if previous transaction was correct.
  8. Congratulations, your are an owner of domain in .mnt zone!

How to update .mnt domain?

  1. To update a domain in .mnt zone you need to follow https://mns.hashex.org/settings.
  2. Enter a domain name into search field and push “Search” button.
  3. If domain exists, managing interface will appear.
  4. Push “Add” or “Edit” buttons. Editing popup helper will appear.
  5. Create a desired record and get an information for the transaction.
  6. To apply changes you need to send a transaction to specified address with specified amount of funds and provided message with registration command. Do not send transaction without message. It will raise error.
  7. Just wait while transaction is complete. Refresh the page.
  8. Your changes are applied if previous transaction was correct.

How to use pretty address insted of ugly cryptoaddress?

For pretty address you can use any domain classic or .mnt. If you are an owner of classic domain, steps are the same.

1. You need to add TXT record to your domain, host @, with data

v=mns1 A=YOUR_ADDRESS [P=YOUR_PUB_KEY C=YOUR_COIN]
  1. After changes are applied, go to https://mns.hashex.org/resolver and try to resolve your address.
  2. Congratulations, you have a pretty address!

How to browse .mnt zone?

You need to configure your NS setting in network adapter configuration to use one of our NS servers. Here is a list.

Minter Name System

Similar to any classic domain name system (RFC-1034, RFC-1035), MNS is supported by name servers. All decentralized zones data is stored in Minter Network blockchain. MNS has interoperability with classic DNS, so you could use our name servers for both zone types: classic and decentralized.

Zone Support

We support decentralized zones .bip and .mnt and any other classic zones via DNS forwarding.

Usage

Please configure your tcp/ip settings to use name server from the list:

  • 138.201.209.67

Decentralization

As of today, MNS is not totally decentralized. As we store data in the blockchain, we transfer this data via classical software. Basically this setup is satisfactory because data storing is fully decentralized, but we have plans to provide totally decentralized service via DNS integration into nodes. As we have more details, we will add them here.

Decentralized Zones

Zone Support

MNS supports decentralized name zones:

  • .bip
  • .mnt

Whois

You could lookup zone info via our web service https://mns.hashex.org.

Domain Registration

New domain with length more than 6 symbols in decentralized zones .bip or .mnt costs 100 BIPs. Domains with length equal or less than 6 symbols are called Premium. See next section for Premium domain registration. To register a new zone you need to send a transaction to Mx address with correct funds amount and with specified data field. We use our MNS Standard for registration and zone updates. You could create data field manually or use our web service for this.

Premium Domain Registration

Premium domain is a domain with length equal or less than 6 symbols, e.g. hashex.mnt. Rules and prices for Premium domains will be posted later.

Domain Zone Updates

Zone update costs 1 BIP to avoid DDoS on the service. To update a zone you need to send a transaction to Mx address with correct funds amount and with specified data field. We use our MNS Standard for registration and zone updates. You could create data field manually or use our web service for this.

MNS Standard v1

For blockchain integration into name system we created the MNS Standard.

Domain Registration

To register domain you need to send a transaction with data field in format:

R:domain

domain - your domain in format domain.zone.

Domain Record Update

To update domain record you need to send a transaction with data field in format:

U:domain:host:type:arg1:arg2[:nonce_to_remove]
domain - your domain in format domain.zone.
host - your host (@ or subdomain) for the record.
type - record type (A, TXT, MX, etc).
arg1 - first argument of the record.
arg2 - second argument of the record.
nonce_to_remove - optional, nonce of transaction with records update which need to be removed. See example below.

NB. Now acceptable only A, AAAA and TXT types.

Domain Record Delete

To delete domain record you need to send a transaction with data field in format:

D:domain:nonce_to_remove
domain - your domain in format domain.zone.
nonce_to_remove - nonce of transaction with records update which need to be removed. See example below.

Pretty Address Resolve

Our standard for addresses resolving is a DNS record:

TXT v=mns1 A=Mx000 P=Mp000 C=COIN
mns1 - standard name and version.
A - your address.
P - your node’s public key for delegation.
C - your coin’s ticker.

Pretty Address Verification

To verify your domain pretty address you need to send a transaction with data field in format:

V:domain
domain - your domain in format domain.zone.

Example

1. Domain testdomain.mnt registration. Data field is

R:testdomain.mnt

Transaction.

2. Adding A record on testdomain.mnt to 127.0.0.1. Data field is

U:testdomain.mnt:@:A:IP::

Transaction.

3. Adding A record on subdomain sd.testdomain.mnt to 172.0.0.1. Data field is

U:testdomain.mnt:sd:A:IP::

Transaction or the same

U:testdomain.mnt:sd.testdomain.mnt.:A:IP::

4. Changing A record on subdomain sd.testdomain.mnt from 172.0.0.1 to 162.0.0.1. Data field is

U:testdomain.mnt:sd:A:IP::
D:testdomain.mnt:NONCE

Transaction and transaction or the same, but shorter with nonce_to_remove option

U:testdomain.mnt:sd:A:IP::NONCE_TO_REMOVE

Transaction.

5. Add cryptoaddress, delegation public key and coin ticker record on testdomain.mnt. Data filed is

U:testdomain.mnt:@:TXT:v=mns1 A=Mx P=Mp C=COIN::

Transaction.

Cryptoaddress Resolver

It’s too complicated to remember your cryptoaddress like Mx3b22ca335b9f55af452d8c4b117ee06578505282. When you provide somebody an address or QR code, you could easily make a mistake. So we created a helpful feature which connects your domain (classic or decentralized) with an address, delegation private key and coin ticker.

MNS Standard

Our standard for addresses resolving is a DNS record:

TXT v=mns1 A=Mx000 P=Mp000 C=COIN
mns1 - standard name and version.
A - your address.
P - your node’s public key for delegation.
C - your coin’s ticker.

Usage

To resolve cryptoaddress from DNS you could use our REST API located at https://mns.hashex.org/resolve with a parameter domain.

Example

Request:

GET https://mns.hashex.org/resolve?domain=testdomain.mnt

Reply:

{"address":"Mx2958c39ea42b2868218f6058794a772178bfa88b",
 "publickey":"Mp0d29a83e54653a1d5f34e561e0135f1e81cbcae152f1f327ab36857a7e32de4c",
 "ticker":"TESTCOIN",
 "signature":{"r":"439017adc3b350998fcbf5ae0ca3a3968ca07dbdd1d2ae2afd755568fb9506e3",
              "s":"311441ec3c8e4fdcb2f3bcdf103d8f008a4017da0b670a575aef4b090205ccdb",
              "v":27}}
address - Minter’s address.
publickey - Minternode’s public key for delegation.
ticker - Minter coin’s ticker.
signature - reply’s ECDSA signature by our node. You should check it in case of man-in-the-middle attack. Node’s public key is Mp.

Authors

  • Dmitry Mishunin

Indices and tables