A fully decentralized approach
This tutorial demonstrates a fully decentralized approach to managing the lifecycle of device identity and ownership in DePINs using ioID. This method aligns perfectly with the principles of a true Web3 project, enabling device owners to independently initiate and complete the registration process without relying on centralized cloud services.
The document offers a practical, hands-on guide featuring an ESP32 board, with instructions that can be easily adapted to a variety of other “machines,” including Linux-based boards, smartphones, and desktop computers.
1. Initial setup
Ensure you have completed the steps in the prerequisites section to fund an IoTeX developer account.
2. Device NFT Contract
Ensure you deployed an ERC721 NFT contract to "tokenize" your devices
See how to deploy an NFT Token on IoTeX using Hardhat: Deploy an NFT Token
and note the deployed contract address.
For a quicker option, you can deploy a standard NFT contract using its bytecode with the following ioctl command:
We will refer to this contract as the "Device NFT" from now on. Let's also export the contract address for convenience:
Register your DePIN project on IoTeX
Take note of your Project ID
and set it as an environment variable:
Bind the Device NFT to your Project ID
Integrate ioConnect in your device
In this step, we will use the popular ESP32 board as our DePIN device and create a simple firmware that enables the device to be registered on-chain by the device owner. This demonstrates the integration of ioConnect with minimal setup, making it a practical and efficient way to securely connect your DePIN devices to your Dapp on the IoTeX blockchain.
Below is a flowchart illustrating the basic flow common to most use cases. The process ensures proper device registration at boot and, during normal operation, the device utilizes its DID key to sign messages securely.
Prerequisite
Before proceeding, ensure you have an ESP32 toolchain correctly configured on your system. This is essential for building the code and deploying it to your ESP32 board. A VS Code extension is also available.
Get the ioConnect example
Clone ioConnect and enter the ESP32 examples folder:
Clone the tutorial:
Build the demo
Last updated