The decentralized Coin Exchange feature allows trading of all child chain tokens on the Ardor platform to each other and to the parent chain Ardor token. It is a fully decentralized exchange, with buy and sell orders placed and matched completely on-chain. The any-to-any trading engine can ensure liquidity even for child chain tokens that are not listed on external exchanges. Pegged to fiat child chains can be used as a gateway between the Ardor blockchain platform and the fiat economy.
Anyone can issue a token (asset) on top of the Ignis child chain, 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. Assets are global for the whole Ardor platform and can be traded on any child chain that has the asset exchange feature enabled, in its native token.
The 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 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 Ignis 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 Ignis Marketplace is an open and fully decentralized store for any digital or physical goods. Users can list for sale any items, with pictures. 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. Each child chain of Ardor can have its own Marketplace, if enabled, with prices in the native child chain token.
The Monetary System allows users to create and trade "currencies" on top of the Ignis child chain, or any child chain that supports this feature. 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 assets, currencies or child chain token funds (as long as the child chain has enabled such feature) 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. There are no centralized mixers - all shuffling steps happen on the blockchain itself. The Standby Shuffling add-on allows users to setup an on-demand shuffler which automatically joins any newly started shuffling, thus providing a decentralized Shuffling-as-a-Service functionality.
Any type of Ardor blockchain transaction 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 Alias System can be used to define mapping of names ("aliases"), unique within each child chain, 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 Ardor release checksum), or simply be used as an easy-to-remember nickname for the account that owns the alias. Each child chain has its own namespace of aliases, but only the Ignis aliases can be used as a shortcut for logging in or as nicknames for transaction recipients.
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, composite phasing and atomic transaction execution can be built.
Composite Phasing is an advanced feature that allows approval models for conditional transactions to be defined in terms of a Boolean Expression of other approval models, i.e. allows joining the current primitive approval models such as by whitelist, by asset balance, by hash, etc, using the AND, OR, and NOT operators. Composite phasing represents a declarative way of creating a simple smart contract which controls the transaction execution based on more primitive transaction approval models.
Ardor accounts 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 Ardor blockchain. Configuring account control must be done on the Ignis child chain, but once set it applies to all account transactions regardless of the chain.
Similar to Account Control which once set requires all transactions of an account to be subject to approval, the Asset Control feature allows imposing such restriction to all transactions involving a given asset - such as placing bid and ask orders, transfers, share deletions, and dividend payments that use the asset as a dividend. Setting asset control must be done on the Ignis child chain, but affects the transactions with the related asset on all child chains.
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). Account properties are global, but must be set using the Ignis child chain.
Similar to the Account Properties feature, Asset Properties allows assets to be tagged with arbitrary name/value metadata. These properties can be used to provide additional information about the asset, and are especially useful for use cases that require approval or categorization of assets, or defining which users are authorized to transact with each particular asset. Setting asset properties must be done on the Ignis child chain. Anyone can set an asset property, only the setter of the property or the asset issuer can delete it.
The bundling process is used to group child chain transactions from a child chain such as Ignis into a transaction on the Ardor chain. Bundlers accept the fees from those child chain transactions, in the corresponding child chain coin, and pay fees in ARDR to the parent chain forgers. It is a feature very unique to the Ardor multi-chain system, and allows interesting use cases such as zero-fee end user transactions sponsored by the business that runs a child chain.
Funding Monitor is a server side component which automatically transfers IGNIS or other child chain tokens, 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.
Shamir Secret Sharing
The Ardor platform support the use of Shamir Secret Sharing for splitting an account passphrase into several pieces, and reconstructing it from only a few of those pieces. There are two main scenarios where such passphrase splitting can be used to improve security - secure passphrase backup, and remote node management.
Transaction Vouchers are used like invoices - a user can request a payment by preparing a digitally signed transaction template (voucher), and sending it to the payer off-blockchain. The payer then simply loads the template, verifies the amount and other details, signs and submits the transaction. This prevents sending funds to the wrong account, and proves that the party that requested a payment actually controls the specified recipient account.
Plugins and Add-Ons
Lightweight Contracts represent a framework for developing a layer of automation on top of the existing Ardor APIs. Contracts are developed by implementing predefined interfaces. The contract code is deployed as a cloud data transaction on the Ignis child chain, and a contract reference transaction is submitted to announce that some account is running some specific contract and to defines the contract setup parameters for this account. Ignis lightweight contracts do not run on all nodes, only on those who elect to execute them. Being stateless, contracts do not store data on the blockchain and do not manipulate blockchain objects directly, but only submit standard blockchain transactions as a result of their execution.
Child Chain Control
The public Ignis child chain is permissionless, and will always remain without restrictions, for everyone to use. But for child chains that require the ability to control who can conduct transactions on them, the Ardor platform offers an innovative solution. The Child Chain Control feature can be used to define a permissioning policy for a child chain, with configurable user authorization levels, allowing the chain administrators to grant or revoke transaction privileges to the users of a permissioned child chain. Unlike account and asset control which determine whether a transaction accepted in the blockchain will be allowed to execute or not, child chain control acts at a higher level, it determines whether a transaction will be accepted in the blockchain at all.