As Mosaic and Namespace near completion it is time to release them on the public testnet. The new testnet versions can be found here. Support for Namespace and Mosaic are currently being built into NCC but aren't ready yet. Until then a basic Nickel GUI has been released to test these features, which you will also find at the link above.Testing Nickel
Nickel is a simple GUI to test NEM’s new features “Mosaic” and “Namespace”.
Mosaic as a feature is going to form a very important backbone of the NEM platform. In fact, this is going to be a game changer rollout for NEM that will put us one big notch higher in the crypto landscape. Given this Mosaic, we are now able to do a lot more, and which actually opens up a plethora of things that otherwise cannot be done in most blockchain platforms. Coupled with NEM’s multisig, it is in a class of its own. It will officially put us as a true platform, and no more a mere cryptocoin.
Before you start testing the new features, you should understand how Namespace works. The easiest way to appreciate it is the folder and file analogy in a PC. Imagine that a folder has to be unique in a root (lowest level) directory. Namespace addresses this unique feature. If one creates a namespace, that namespace will appear unique in the NEM ecosystem. For example, if one were to create a namespace called “foo” that namespace cannot be created by a second person. Although, it is possible to create multiple sub-namespaces with the same name (example: “foo.bar” and “foo2.bar”, “bar” is the sub-namespace/sub-domain). A namespace and a domain name is the same in this document and shall be used interchangeably.
Next up is the mosaic itself. A mosaic is like a file in the PC directory system and represents an asset, and like a file in a directory, a mosaic can have the same name but in different namespaces/sub-domains. Namespaces can have up to 3 levels.
Examples: Namespace (root level domain): spaceminers Sub-domain 1: mars Sub-domain 2: moon
Mosaics: gold gem water
Accordingly, mosaics can be named as such: spaceminers * gold spaceminers * gem spaceminers * water spaceminers.mars * gold spaceminers.mars * gem spaceminers.mars * water spaceminers.mars.moon * gold spaceminers.mars.moon * gem spaceminers.mars.moon * water
Each of the above mosaics is made unique by the namespace’s fully qualified name. Also, the mosaic is preceded by an “ * ” to differentiate it from a namespace.
In summary, everything under the root level domain belongs to the account that created it. In the above examples, the root level domain name is “spaceminers”.Significance of Namespace and Mosaic
Namespace gives rise to a unique naming convention. Mosaic gives rise to the creation of assets. Some call it a colored coin while others may call it a token. We call it a mosaic, because it will finally evolve into more than just a mere colored coin. It is a tile that will take on many types of properties when it is full blown (hence we call it a mosaic as it evolves to form the “big picture”) .
Our initial rollout is a mosaic that has the following properties:
- description Free-text description of the mosaic up to 128 characters, changeable by the owner.
- divisibility Adding this makes a quantity divisible, up to 6 decimal places. A divisibility of 2 means 2 decimal places.
- information Arbitrary byte array that can be in the property, with a size limit; this is the same as “messages” in NEM.
- mutable quantity This property allows the quantity to be mutable or not.
- name (required) Name of the mosaic, up to a size limit of 32 characters; must be unique under the domain name.
- domain name or namespace (required) Globally unique fully qualified domain name that is registered and owned by the mosaic creator. A top level namespace has a size limit of 16 characters, sub-namespaces have a limit of 64 characters.
- quantity The amount of mosaic in circulation. If immutable, it is fixed, otherwise it is dynamic, i.e., more can be created or destroyed later.
- transferability If no, it means it can only be transferred between user and creator. Otherwise, it is freely transferable.
- levy A levy allows the creator of a mosaic to set a tax on any subsequent transactions of that mosaic. This levy is sent to an account of the creators choosing. Any mosaic or XEM may be used as a levy.
Download the Nickel program in a zip file. Extract everything as is into a folder. Go into the folder and double click on nickel.exe. It will just start up. Make sure your test NIS is running on your machine or a designated machine. You can also fire up the test NCC to view transactions you made. NCC can only show the Nickel transactions but not make any namespace/mosaic transactions.
The Nickel GUI has four main screens:
The first screen is for the creation of namespaces as shown in Figure 1. Shown here is the creation of “spaceminers” being the root level domain.
Be sure you have enough XEM in the account in order to create a namespace. The fee for the creation of a root level namespace is 50,000 XEM and for a sub-namespaces it is 5,000 XEM.
Figure 2 shows the creation of a sub-level namespace. Sub-level namespaces are separated with a “.” before the new sub-level domain. A user can create up to 2 sub-level namespaces following a root namespace.
Figure 3 shows the creation of a mosaic. Shown here is the creation of the mosaic named “water” under the namespace “spaceminers.mars”. Do note that this will appear as “spaceminer.mars * water” on NCC, but “ * “ doesn’t need to be typed in Nickel.
The number of “water” mosaics created are 10,000 units with a divisibility of 4, i.e., 4 decimal places. The number of units appearing in the initial supply is 100 000 000, taking into account the divisibility figure.
The checkbox “Mutable supply” is checked, which means that the quantity is not fixed and the creator can change the quantity thereafter. If the checkbox is not checked a fixed amount of assets will be created that can’t ever be added to or destroyed.
If the checkbox “Transferable” is not checked, it means that the mosaic can only be transacted between creator and user. Users cannot transfer the mosaic to other users in this case. In this example it is checked, so the mosaic can be traded amongst third parties.
There is a levy that the creator can make for every transaction. This levy can be in absolute number or a percentage of the mosaic value. This gives flexibility for the creator to actually tax the user for the use of the mosaic. If no levy is required do not check the box. Take note of the divisibility. In the above example, 0.01 “silver” will be levied, not 1 “silver” as is indicated because “silver” was created with a divisibility of 2 spaces. Likewise for the percentage, i.e. if 100 is input for percentage, it will mean 100/10000 = 1%.
Do note that the levy could also be in XEM or any other mosaic. Just enter the fully qualified name of the mosaic in the “Mosaic Levy Full Name”. XEM is known as “nem * xem” as a fully qualified mosaic.
Figure 4 shows how the quantity can be increased or decreased via the mosaic supply tab. This can only be done if the creation of the mosaic allows mutability.
Figure 5 shows how a mosaic is being sent. It shows a quantity of 500, being the amount sent. The multiplier basically is a multiplier of the assets being sent out. Set to 1 means 1 times the amount of mosaic(s) to be sent out. If it was set to 2, then double the amount of mosaic would be set out.
More mosaics can be added to this transaction by clicking on the “Add Attachment (Mosaic)” button.
To note: The XEM is also a mosaic. It is not just the fuel of the NEM system, it is also the very first mosaic. Its fully qualified name is “nem * xem”. In other words, if there is enough XEM in the account, one can also send XEM as a mosaic as shown in Figure 6. Using Nickel, just enter “nem” as the namespace and “xem” as the mosaic. Remember, quantity divisibility is 6, i.e., you need to enter 123000000 for sending 123 XEM.
Figure 7 shows the NCC transaction record where “spaceminers” is the root level namespace and was created for a namesapce creation fee of 50,000 + transaction fee of 108 XEM.
Also shown here is the second level namespace “mars” was created with a fee of 5,000 + 108 XEM
Figure 8 shows two transaction records in the NCC. One is the creation of the mosaic “water” being 108 XEM. The other shows a transaction for the “water” mosaic to a recipient. It is important to note that “-1.00 +1 mosaic(s)” reads as, one multiplier of one mosaic was included. If more mosaic types were sent, it will show a higher number. Refer to Figure 6, where there is an “Add Attachment (Mosaic)” button. One can click that to add more mosaic types to send to the recipient.
Figure 9 shows the window pop up after clicking the view hyperlink on the mosaic creation in NCC. The transaction fee for creating the water mosaic is 108 XEM. Note: An additional 50,000 XEM is taken out of the account for the mosaic definition, NCC does not display that yet. It should be noted that a levy of “spaceminers * sliver” was applied to this mosaic but doesn’t show up in these transaction details. It may however be reviewed in NEM testnet explorer.
Figure 10 shows the transaction details of sending the “spaceminers * water” mosaic. The transaction fee is a total of 11 XEM. The levy for the use of the mosaic is 10 “silver”. Please note since the divisibility of “spaceminers * silver” is 2, then the raw amount of silver being sent is actually 0.01. Likewise since the divisibillity of XEM is 6, to send 123 XEM, the sum of 123 000 000 must be entered.
Additional and more detailed information about your namespaces and mosaics may be found on the Tembex, the NEM testnet block explorer. http://bob.nem.ninja:8765/Mosaic. Elegant but extremely powerful!
This is a companion discussion topic for the original entry at http://blog.nem.io/mosaic-and-namespace-public-testnet-release/