ioID Step by Step Tutorial
Last updated
Was this helpful?
Last updated
Was this helpful?
This tutorial demonstrates how to integrate ioID into your DePIN project and is divided into two parts:
1. Project Registration on the IoTeX blockchain, explained in this page.
2. Device Registration, which varies based on the scenario and may involve integrating ioID either directly on the device or in the project's cloud. Both cases are described in the next pages.
In this step, you will register your project on the IoTeX blockchain. This process generates a unique Project ID, which serves as an on-chain identifier for your project, enabling the verification of devices associated with it.
Use a dedicated wallet account as the owner of your on-chain project profile. Whenever possible, consider using a hardware wallet for enhanced security on mainnet.
Ensure your ioctl is up to date with
Start by creating an IoTeX wallet and funding it with test tokens.
Let's export the private key:
Let's also make this the default account on ioctl so that we don't need to indicate it as the signer in every command:
Take note of your Project ID
and set it as an environment variable:
Bind the Device NFT to your Project ID
Reserve a few ioID for your project (10 in the example command below):
To begin, clone the ioID contracts repository from GitHub. This repository contains the ioID smart contract code you will interact with, as well as related resources, including example contracts:
To finalize the integration with ioID on the blockchain side, your project must include an ERC721 NFT contract. This contract can be fully custom and allows you to pre-register devices on-chain, providing flexibility to manage and customize the binding process before linking devices to owner accounts.
Once you have the address for your NFT contract, you can link it to your Project ID with:
Create a new project using the Create Project button if you haven't registered one already
Identify your project id on the IoTeX Hub
Select Set Device Contract → Deploy Device Contract
from the Project's actions menu
Depending on the development stage of a DePIN project, there are multiple ways it can integrate ioID to allow decentralized device identity registration. In the next pages, we share different flows tailored to various use cases.
Note the 0x
wallet address provided. You can claim test IOTX tokens on the Developer portal at or ask on our .
If you don’t already have an NFT contract for your devices, you can deploy the repository. The example script below will perform the whole process of deploying the example Device NFT Contract, registering a project ID, linking the NFT contract to the project and finally reserving some ioID for the project
The same process can be performed using the on the IoTeX Hub Portal: