Learning by Example: IOTA Workshops

IOTA introduces a lot of new concepts, such as the Tangle and Trinary, which may seem difficult to use. That’s why we have some excellent client libraries that abstract most of the concepts into easy-to-use functions.  

To help you start developing with IOTA technology, we created several ‘workshops’ for the C, Go, JavaScript and Python libraries. They teach the most common things you will do with these libraries and give concrete code examples that demonstrate how to do these interactions. The workshops are great to use when you are starting with IOTA or when you are teaching others about what IOTA is and how to interact with the Tangle.

The client library for the C programming language is called “Entangled” and is one of the harder libraries to work with. That’s because it has been written in a low-level programming language.

Low-level programming languages are great for performance. They are good for devices with limited processing power/memory. However, you have to do a lot more yourself when it comes to programming — memory management, for example — which makes it harder to work with than with higher-level languages, like Python or JavaScript.  

The Entangled client library, built from the ground up by the IOTA Entangled team, can do a lot of things in a lot of different ways. It’s an excellent candidate for a workshop!

The workshop currently consists of examples of how to:

  • Send and receive transactions
  • Check your balance
  • Generate new addresses
  • Send IOTA coins

The C Workshop can easily be cloned from the IOTA Community GitHub. The Bazel build tool is the only dependency you need to get started.  

The Go programming language is a well-performing programming language that has gained a lot of popularity over the last couple of years.  

Go is a good compromise between the development of a higher-level language and the performance of a lower-level one. The Go Client Library for IOTA offers all the basic functionality you need to interact with the Tangle using Go. This library is actively maintained by the IOTA Foundation and is extensively used in the GoShimmer prototype for Coordicide.  

The Go workshop currently consists of examples of how to:

  • Send and receive transactions
  • Check your balance
  • Generate new addresses
  • Send IOTA coins
  • Send and receive multi-transaction messages
  • Utilize a real-time stream of incoming transactions using ZeroMQ

The Go Workshop can be cloned from the IOTA Community GitHub, all you need is Go version 1.10 or higher.  

The JavaScript workshop was the first workshop created — and with a good reason: JavaScript/Typescript is very often used in the IOTA Ecosystem, including the Trinity Wallet software and a lot of the proof of concepts built by the IOTA Foundation and IOTA communities.

JavaScript/TypeScript can be used in browsers (clientside) or servers in combination with Node.js (serverside), which makes it very versatile when integrating IOTA in a web application.  

The iota.js client library is a client library maintained by the IOTA Foundation and written in TypeScript. It will most likely be your best bet when you want to develop something with JavaScript and IOTA.  

The JavaScript workshop currently consists of examples of how to:

  • Send and receive transactions
  • Check your balance
  • Generate new addresses
  • Send IOTA coins
  • Send and receive multi-transaction messages
  • Utilize a real-time stream of incoming transactions using ZeroMQ
  • Send and receive data using MAM0 streams.

The JavaScript Workshop can also be cloned from the IOTA Community GitHub repository. All you need to run them is a recent version of Node.jsandnpm.  

Python is a popular higher-level programming language used for a lot of different purposes, including web development, automation, and data science. It’s easy to learn and work with, and it’s often recommended as a good first programming language to learn. A client library — calledPyOTA— is available for IOTA. It covers all the basic functionalities you need to interact with the Tangle.

The Python workshop currently consists of examples of how to:

  • Send and receive transactions
  • Check your balance
  • Generate new addresses
  • Send IOTA coins
  • Send and receive multi-transaction messages
  • Utilize a real-time stream of incoming transactions usingZeroMQ

The Python Workshop can be cloned from the IOTA Community GitHub. It requires Python 3.5 or 3.6 installed on your system to run the examples.  

We hope these workshops show you how easy it is to develop something that interacts with the Tangle.

As you might have noticed, these workshops are not part of the regular IOTA Foundation GitHub Organization. They are part of a separate Community Organization.

The current autonomy allows us to easily add community developers — who wish to contribute to the IOTA Ecosystem — to the organization. Someone, for example, who wants to develop a version of the workshop in another programming language or a tool that benefits others in the ecosystem.

We are always open to pull requests for additions or improvements to the existing workshops. We update and extend the workshops over time when new functionalities become available in the various client libraries.

If you wish to add a contribution, feel free to contact Dave de Fijter or Lewis Freiberg on Discord(you can find them in the IOTA Foundation section of the user list). They will add you to the organization.  


Follow us on our official channels for the latest updates:
Discord | Twitter | LinkedIn | Instagram | YouTube