It is my pleasure to introduce you to Namespaces on NEM!
A domain name is required when making an asset on NEM (that asset function is called NEM Mosaics and will be explained more later). Each individual who wishes to create a mosaic needs to register a root domain name. This domain name can be thought of very much like a website domain and in NEM is known as a namespace. This can be bought for an amount of XEM (to be defined later). The namespace length shall be limited to 16 alphanumeric characters.
A creator owning the root domain namespace can create as many sub-domains as wanted, using a convention similar to the Java namespace convention, i.e., separated by a dot “.” to represent a domain or subdomain and an asterisk surrounded by a space on each side “ * ” to represent the name of an asset. This is the current internal convention in NIS and how it is represented later in the NIS and/or NCC UI might differ. This gives the creator a practically limitless number of mosaics that can be defined within a practically limitless number of sub-domains. The sub-levels of a namespace can act as the actual name of the asset, or in some cases can be a class of assets as it is itself a sub-domain with lots of assets under that sub-domain name. This means that last part of a mosaic will always be the name of the individual asset on the NEM blockchain and the prior names will act as the domain and/or subdomain for that asset.
In the above example there are 6 assets. They are as follows:
jabo38.jeffsilver * halfounce
jabo38.jeffsilver * ounce2015
jabo38 * iposhares
jabo38.exchange * usd
jabo38.exchange * eur
jabo38.exchange * zar
In the first example the domain is jabo38.jeffsilver and the asset is halfounce. In the second example the domain is jabo38.jeffsilver and the asset is ounce2015. And in the third example the domain is jabo38 and the asset is iposhares.
While the first part of a namespace is globally unique on the NEM blockchain, the rest of the parts of a namespace are not. Having non-unique sub-domains in a namespace system allows for anyone to use any name in the subdomain positions, making squatting on certain names far less exclusive as they are not globally unique, and at the same time giving chances for easily recognizable names within one’s personal local network.