Functionality Nxt Ardor

Blockchains Single chain One parent chain with multiple child chains

Transaction tokens The same token (NXT) is used for establishing the consensus and providing the security of the blockchain, as well as for the basic unit of value in all transactions Only the parent chain token (ARDR) is used in the proof-of-stake consensus, and thus provides security for all child chains. Child chain tokens are used as transactional units of value only.

Transaction fees Transaction fees are paid in NXT only, requiring users to always have NXT in their accounts. On each chain transaction fees are paid in the native token (coin) of that chain. End users do not need to own ARDR tokens.

Features Asset Exchange, Monetary System, Aliases, Messaging, Digital Goods Store, Voting System, Shuffling, Data Cloud, Phasing, Account Control, Account Properties All these features are preserved in Ardor, and are available on each child chain. A child chain can optionally be restricted not to enable some features. The parent chain supports a limited subset of features, as it is intended to be used for consensus establishing only and not for everyday transactions.

Accounts Each passphrase maps to a single account. Passphrases can't be changed, and there is no wallet file to store. The same mapping of passphrases to account numbers is used as in Nxt. Accounts are global across all child chains, and an account can have balances in each of the existing child chain coins, as well as in ARDR.

Holdings There is a single coin (NXT), and unlimited user-issued Assets and Monetary System currencies. Each chain has its own coin. Assets and MS currencies can be issued on any child chain, and are available for trading globally. Assets or MS currencies can optionally be restricted* to some child chains only.

Trading Assets and MS currencies can be traded for NXT only. Assets and MS currencies can be traded on any child chain, with price denominated in the corresponding child chain coin.

Coin Exchange N/A A new feature, Coin Exchange, allows trading of child chain coins to each other, and also to the parent chain coin (ARDR).

Dividends Asset dividends can be paid in NXT only. Asset dividends can be paid in any of the child chain coins, by simply issuing the payment transaction on the corresponding chain. Additionally, paying dividends in another Asset or in MS currency has been implemented.

Crowdfunding Crowdfunding feature is available in the Monetary System, but the funds must be collected in NXT only. Crowdfunding feature is available on all child chains, and on each child chain the funds are collected in the corresponding child chain coin.

Shuffling Shuffling of NXT, Assets, and MS currencies is available. On each child chain, shuffling of the corresponding coin, or any Asset or MS Currency, is supported.

Aliases Alias names are globally unique. Alias names are unique within each child chain only.

MS Currencies Currency codes and names are globally unique. Currency codes and names are unique within a child chain only.

Pruning Pruning is available for plain and encrypted messages, and for tagged data (data cloud feature). Pruned data are retrieved automatically on demand from designated archival nodes. Pruning and retrieving of all prunable data is available as in Nxt. In addition, the child chain transactions themselves are designed to be prunable and will not need to be stored permanently or re-downloaded by every new node. The actual pruning of transactions will be implemented later.*

Transaction identifiers Transaction IDs are 64-bit longs, and are globally unique. The 64-bit transaction IDs are no longer guaranteed to be globally unique for child chains. 256-bit transaction hashes (sha256 digests) are used instead as transaction identifiers.

Block generation A "forging" process is used to create new blocks, with the probability of block creation dependent on the account NXT balance (stake). The same forging algorithm is used as in Nxt, dependent on ARDR account balances only.

Bundling N/A A new process, "bundling", is used to group child chain transactions into a parent chain transaction ("child chain block"), which is then included in the parent chain. Any account can play the role of a bundler. The bundling process also performs the exchange of fees paid by users in child chain tokens into ARDR fees accepted by the block forgers.

Phasing Transaction execution can be made conditional, subject to approval using various voting models. Same voting models as in Nxt, but phasing is possible on child chains only. Approval transactions can be on a different child chain from the phased transaction, and the by-transaction voting model also supports linking to a transaction hash on a different child chain.

Account control Accounts can be restricted to use phasing only (mandatory approval). Same as in Nxt, but accounts under phasing-only restriction cannot submit transactions on the parent chain, as those cannot be phased.

Peer networking HTTP based, also with WebSocket support, transmitting JSON formatted data between peers. Completely re-written and optimized, using native Java sockets and binary messages between peers. Block and transaction propagation has been significantly improved, by exchanging and caching information about currently available blocks and transactions between peers and only propagating the missing data pieces.

API HTTP query APIs, returning JSON formatted response. Mostly unchanged, except:

1. A "chain" parameter has been added to each API that is child chain specific.

2. 64-bit long transaction IDs have been replaced with 256-bit hashes.

3. All prices and rates that were previously defined relative to the smallest indivisible holding amount ("QNT") are now defined relative to a unit of the holding (share).