Nxt was the first blockchain to launch a user-friendly and fully decentralized Asset Exchange. Anyone can issue a token (asset) on top of the Nxt blockchain, which can represent a crowdfunding token, company shares, or indeed anything the issuer intends. Assets can be transferred or traded between accounts, with the buy and sell orders matched on-chain. Issuers can pay dividends to the asset holders, and votings can be set up based on number of asset shares held. A special type of non-fungible assets are the so-called singleton assets, which can represent a unique physical or digital object.
The Nxt Voting System allows anyone to set up a poll, on any topic they wish, with a configurable number of single or multiple choice options. The results of a poll can be evaluated based on a variety of voting models - by account, by balance, by asset shares, etc, and are presented graphically after the poll ends. Voting on the blockchain ensures transparency and permanent immutability of the results. While voting is public by default, advanced Nxt features such as controllable monetary system currencies and coin shuffling can be used to improve the privacy of the voters.
The Data Cloud feature enables Nxt users to upload small amounts of data - documents, text files, images, torrent files, etc, to the blockchain. Such data can be tagged with keywords and classified in channels, making it easy to search and retrieve. While most nodes by default prune the cloud data after some time, dedicated archival nodes are used to permanently store it, allowing any piece of data to be retrieved whenever needed, with a cryptographic proof that it hasn't been tampered with.
The Nxt Marketplace is an open and fully decentralized store for any digital or physical goods. Users can list for sale any items, with pictures, priced in NXT. The Marketplace is searchable and browseable based on the keywords the goods are tagged with. After purchase, the buyers can leave a public review for the sellers, or communicate with them privately and securely via encrypted messages.
The Monetary System allows users to create and trade "currencies" on top of the Nxt blockchain. Currencies are a more specialized class of tokens - they can come with various predefined restrictions that make them more suitable for crowdfunding, voting tokens, game money, etc. Unlike assets, which are designed to represent real world company shares, the monetary system currencies are designed to represent payment or special purpose tokens.
Coin Shuffling is a privacy feature which enables users to mix NXT, assets or currencies quickly and efficiently with other users' funds by creating a random mapping between the existing user accounts and new recipient accounts provided by the users. Nxt was the first blockchain to launch in production a fully decentralized implementation of the Coin Shuffle algorithm, with no centralized mixers - all shuffling steps happen on the blockchain itself.
Any type of transaction on Nxt can optionally have a message attachment. It can be text or binary, plain or encrypted. Messages can be used to indicate the purpose of the transaction, referring to an invoice or account number, or just contain any information useful for the sender or recipient. When a message is sent encrypted, a unique encryption key is used for every new message, allowing its content to be safely revealed to a third party if needed.
The Nxt Alias System can be used to define mapping of globally unique names ("aliases") to arbitrary strings or pieces of data, implementing a decentralized on-blockchain naming system. Much like the DNS, such aliases can be used to map a domain name to IP address, hold the current value of some important publicly announced data (e.g. the latest Nxt release checksum), or simply be used as an easy-to-remember nickname for the account that owns the alias.
The execution of any transaction can be restricted to require additional conditions, such as approval by other accounts, approval by voting based on various voting models (balance, number of shares, ownership of voting tokens), the presence of another specific transaction on the blockchain, the publishing a secret matching a specific hash (pay on secret reveal), and so on. This is a very powerful feature on top of which multi-signature transactions and atomic transaction execution can be built.
Accounts on Nxt can be configured to have all their transactions require approval by other accounts, defined in a whitelist, thus making them multi-signature accounts. Even more flexible control can be achieved by requiring transactions to be approved for example by voting based on number of asset shares (e.g. shareholders voting on the company spending), or any of the voting models supported on the Nxt blockchain.
The Account Properties feature allows accounts to be tagged with arbitrary name/value metadata. Users can add such metadata to their own accounts, or to other accounts. This is a very convenient way to provide additional information about your account (e.g. email or social media handle), or endorse another account as having specific permissions or other attributes (e.g. businesses can tag accounts as KYC verified at different levels, or as having reached certain status as a regular customer).
The Nxt proof-of-stake protocol requires those who want to generate blocks to keep "forging" with their accounts, the account passphrase being available in the server memory to sign the new blocks. To eliminate this passphrase exposure risk for a high value account, the balance leasing feature can be used to lease its forging power to another account instead. The leasing feature can also be used to pool the forging balances of multiple users into a forging pool, allowing small NXT holders to still contribute to the blockchain security. Only the ability to forge is leased, account funds always remain free to transact with.
Funding Monitor is a server side component which automatically transfers NXT, asset or currency from a funding account to one or more recipient accounts when the amount held by the recipient account drops below a set threshold. This is useful to make sure the recipient account always has enough tokens to do transactions, while avoiding keeping too much tokens in it, in case it gets compromised.