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?¶
- To buy a domain in .mnt zone you need to follow https://mns.hashex.org/buy.
- Enter a domain name into search field and push “Search” button.
- If domain is free, green arrow and button “Buy” will appear. If domain is not free, red cross will appear.
- Push “Buy” button. Buy popup helper will appear.
- 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.
- Just wait while transaction is complete. And go to https://mns.hashex.org/settings.
- Here you can enter your domain and manage interface will appear if previous transaction was correct.
- Congratulations, your are an owner of domain in .mnt zone!
How to update .mnt domain?¶
- To update a domain in .mnt zone you need to follow https://mns.hashex.org/settings.
- Enter a domain name into search field and push “Search” button.
- If domain exists, managing interface will appear.
- Push “Add” or “Edit” buttons. Editing popup helper will appear.
- Create a desired record and get an information for the transaction.
- 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.
- Just wait while transaction is complete. Refresh the page.
- 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]
- After changes are applied, go to https://mns.hashex.org/resolver and try to resolve your address.
- Congratulations, you have a pretty address!
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.
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¶
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.
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]
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
Pretty Address Resolve¶
Our standard for addresses resolving is a DNS record:
TXT v=mns1 A=Mx000 P=Mp000 C=COIN
Pretty Address Verification¶
To verify your domain pretty address you need to send a transaction with data field in format:
V:domain
Example¶
1. Domain testdomain.mnt registration. Data field is
R:testdomain.mnt
2. Adding A record on testdomain.mnt to 127.0.0.1. Data field is
U:testdomain.mnt:@:A:IP::
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
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::
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
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}}
Authors¶
- Dmitry Mishunin