Introduction#

The C Client library is built for embedded development and can be integrated to POSIX operating systems easily.

It has integrated with Software Development Kits(SDK) and a STM32Cube expansion:

C Client Library Diagram#

The C Client library consists 4 abstraction layers:

  • Crypto - provides cryptographic functions

  • Core - implements components include address/block/UTXO…

  • Client - implements node REST APIs and Event APIs. (optional)

  • Wallet - implements simple wallet functions. (optional)

As a client application, Client and Wallet modules could be an option as needed. For instance, the application can implement its own wallet logic or it uses the Core module to compose blocks then send blocks through another interface without the Client module.

The C Client library relies on some functionalities from the operating system API or external library:

  • HTTP/HTTPS Client

  • JSON parser

  • Crypto library

  • MQTT Client

IOTA Application Architecture#

The real world application could be vary, here shows an example of an IOTA client application.

With this design, the application can interact with IOTA Tangle in order to:

  • Create data and transaction blocks

  • Send data and transaction blocks

  • Query blocks

  • Query the node status

  • Generate addresses

  • Subscribe to node events