The Arbitrary Message (AM) feature enables Nxt users to send small amounts of data to the Nxt blockchain. A simple concept in theory, but the applications for this feature are extensive.
Arbitrary Messages commonly take the form of SMS-length communications between users. This was the first application and is still one of the most popular uses for AMs, but the term ‘message’ is a loose one: as well as being used to send public or encrypted text messages to each other, AMs can also be used to send up to 1,000 bytes of any form of data.
At its simplest, messaging involves sending a string of text from one NXT account to another. These messages can be viewed within the client. There is also an option to encrypt messages. If they are left unencrypted, they can be read by anyone since the blockchain is a public record of every transaction. Like a regular transaction, AMs are subject to standard tx fees – currently 1 NXT.
There are, of course, many valid use cases for unencrypted messages. A famous example is the AMs sent to the hacker who stole 50 million NXT from BTer’s hot wallet on August 15, 2014, or jl777’s use of an AM to cancel the SuperNET deal with CoinEVOLVE after the dev created a series of scam assets and went missing in action. You can view a list of all blockchain messages here.
Although transactions on the blockchain are meant to form a permanent record, AMs are intended to be removable. In the future, when the blockchain has grown and needs to be slimmed down to ensure its sustainability, messages may be pruned. Nevertheless, they form a critical building block in NXT’s second-generation functionality, underpinning a series of features.
MORE USE CASES
At the most basic level, the AM system can be used to transmit human-readable messages between accounts, creating a decentralised chat system. However, advanced applications can use this feature to store structured data, such as JSON objects. These can be used to trigger or facilitate services built on top of NXT.
The idea of a Twitter clone based on NXT messaging has been around since the earliest days of the platform. Nxtmemo (https://nxtmemo.com) is a straightforward version of this idea.
You can add your nxtmemo profile to the blockchain, and BBcodes are available for showing images, links, medialinks, etc. Log into your nxtmemo account with a NXT token to choose your display name – it must be a NXT alias that belongs to your account. Simply send your unencrypted messages to NXT-W6CT-NPDH-AAQW-HWCHA to have them show up on the site.
NXTMemo is free and open source, and is created and maintained by toenu. See more on the NXT forum.
Cryptamail is a project created at Techcrunch Disrupt NY 2014 by a group of five developers, led by Kushti (now a Nxt core developer). The goal was to create a user-friendly decentralised email client with Alias-based identification. Although not currently in active development, Cryptamail is still running on the NXT testnet. It’s at cryptamail.com.
The Multigateway (MGW) is Nxt’s distributed cryptocurrency exchange – the least centralised such service currently available anywhere.
The primary use case for AMs in MGW is the automated deposit and withdrawal of bitcoins and other supported cryptocurrencies. These are held on MGW’s secure servers and exchanged for tokens representing each currency in the Nxt Asset Exchange, allowing for direct peer-to-peer trading. There are three separate servers, at least two of which have to agree for a transaction to take place – making it vastly more secure than traditional exchanges.
Essentially, MGW creates a deposit address for the Nxt user account for each of the supported coins. When the user sends coins to that deposit address, MGW delivers to the associated Nxt account the same quantity of coin assets (designated mgwBTC, mgwLTC, etc). Each of these assets represents one coin. Coin assets can then be traded on the NXT Asset Exchange like any other asset. MGW uses a similar process in reverse to withdraw coin assets back into the user’s own coin wallet. The requests to the MGW servers are broadcasted to the Nxt blockchain as Arbitrary Messages.
Multigateway was originally a plugin to the Nxt NRS client from NXTservices. It has now been incorporated into the SuperNET client v.0, in the form of a modified Nxt client that can be downloaded from the Multigateway site.
You can read more about the Multigateway here.
Helix is a standalone cross-platform financial analytics and visualisation client. As a part of FinHive, a powerful distributed financial analytics initiative that is the backbone of SkyNET, Helix has the ability to learn. A small apps store for financial tools will be included in the client, not only for crypto but also for traditional traders. The Helix client includes a distributed computation module to provide BOINC-like functions, tailored towards the financial industry.
Helix uses AMs as data containers to store whole apps. Developer nexern explains:
‘The multilayer perceptron app is 2.3 kb in size and chunked into 3 AMs. You can see the compressed and encrypted perceptron (and tetris game 4 AMs) in the blockchain here’
Helix simply loads, concatenates, decompresses and decrypts these AMs directly from the blockchain, where they are stored, into memory. The process takes just three seconds. No disk space is needed. It is a fast, clean and secure solution which has a number of important real-world advantages:
- It makes apps very independent and robust against attacks.
- It provides nearly unrestricted access from anywhere due to the decentralised storage.
- It provides on-the-fly autorepair/update capabilities.
For example, if an app is broken due to an outdated API link, Helix can look for additional update/repair resources by scanning AMs and looking for the current app id. Where higher resource stamps are found, they can be added while Helix is running.
Helix will be used by FinHive, a wholly owned subsidiary of SkyNET. You can see FinHive’s roadmap here.
As a result of its versatility, AMs can be used to build a vast range of projects, from simple messaging apps to file-sharing services, decentralised applications, and higher-level NXT services.
NXT is in ongoing and constant development, and changes to the core can always be proposed by the community. One of the topics currently being discussed about the AM feature is adding a standard for multipart messages or increasing the allowed message length, as new projects have started to link AMs together so they can save more data to the NXT blockchain. You can join that discussion on the Nxtforum here.
Nxt is a versatile, open source cryptocurrency platform. In this Nxt CORE article series we will dive into the main 2.0 features of Nxt. The first article was about NXT, the token itself, the second about Nxt ALIAS system.