Greetings,



Earlier attempts to develop robust client API library for NXT and subsequently Ardor were faced with several challenges:

1. The API library had to send the passphrase directly to a remote node in order to sign transactions, this meant that the remote node had to be trusted, this severely limited the usability of the API library.

2. Some client libraries did implement local transaction signing but still were unable to validate unsigned bytes data returned from a random remote node thus still making it somewhat insecure to submit transactions to a random remote node.

3. Client API libraries were developed by 3rd party developers which sometimes couldn't keep up with the protocol changes.



In order to address these problems, in release 2.0.1e we introduced for the first time a Node JS module which can be used for JavaScript application development using the Ardor platform APIs.

This node JS module is now integral part of the core and in fact is just a thin layer of Node JS wrapper on top of the existing Ardor Wallet JavaScript code.



Being so this node module has several advantages:

1. The Node JS module is able to work securely against any random Ardor node

2. Transaction data submitted to a remote node is validated against the returned unsigned bytes

3. Transactions are signed locally so that the account passphrase is never submitted to a remote node

4. Message encrytption can be performed client side

5. API calls work at a higher level compared to the APIs provided by the existing test page, so that for example, complex numeric conversions and various formatting functions are alreayd implemented by the API library

6. Updates to this API library will follow the standard Ardor release process and will be maintained by core developers



To quickly get started using the node JS module, see instructions in the ./html/www/js/README file which is part of the 2.0.1e release.

The ./html/www/js/sample folder contains several code examples to get you started quickly and provide a reference implementation.