Now that CClient v1.0.0-beta is released, IOTA can implement a hardware wallet based on it. I will, in this blogpost, briefly explain the architecture of the IOTA Wallet on ESP32 and I will demonstrate the wallet application.
Introduction
The CClient library is meant to apply the Tangle into IoT ecosystems. It is able to communicate with small devices. The ESP32 is a good candidate because it has built-in wireless connectivity.
But what’s the ESP32?
- It is a 32bit SoC (System on Chip) based on the Xtensa LX6
- It is able to operate at 160 or 240 MHz with the memory size of 512KB
- It provides two development frameworks: arduino-esp32 and esp-idf. Even if both of them are good, I prefer the esp-idf as my development framework since it’s native to the ESP32.
The IOTA ESP32 Wallet
The wallet architecture consists of three parts:
- Hardware: the Xtensa LX6 processes and peripherals
- FreeRTOS: real-time system, network, and HAL support
- Wallet application: IOTA CClient library, SNTP client, and Console service.
The system time will be reset on reboot every time, so we need to get the correct timestamp via SNTP client. The console service allows you to interact with IRI node through the terminal.
Demonstration
You can follow the README.md to create your IOTA wallet using ESP32 microcontroller.
This video demonstrates how to get account data and send 1i to an address :
Please feel free to give suggestions and continue the conversation on the #entangled-discussion channel on IOTA Discord.