The ioID Registry is a smart contract deployed on the IoTeX Layer 1 blockchain. It acts as the authoritative on-chain source for mapping physical devices to their corresponding:
  • Device NFTs (ERC-721 tokens)
  • Owners’ wallet addresses
  • Machine-Bound Accounts (MBAs)
This registry extends the logic defined in ERC-6551, which enables NFTs to serve as smart contract wallets through token-bound accounts. The ioID Registry adapts and applies this model specifically to DePIN devices.

Example ioID Registry Entry

The following table shows a sample entry in the ioID Registry, illustrating how a device identifier is linked to its NFT representation:
ioID IdentifierNFT chainIDNFT contractNFT tokenID
5RJ1UfUCLX6…yH1bkF5CC4WpHXxa10x0ca53…400c123
This mapping allows contracts and off-chain services to resolve device identity, ownership, and associated MBAs using deterministic lookups.

Key Functions

Device Ownership Lookup

To determine the current owner of a device:
ownerOf(uint256 tokenid)
This function is called on the NFT contract. The tokenId corresponds to the unique identifier for the device’s NFT.

MBA Address Resolution

To retrieve the MBA (Machine-Bound Account) address associated with a device, call the account(…) function in the MBA factory contract:
function account(
    address implementation,
    bytes32 salt,
    uint256 chainId,
    address tokenContract,
    uint256 tokenId
) external view returns (address account)
This function returns the on-chain address of the MBA smart contract tied to the specific device NFT. This allows external Dapps to securely interact with the device’s programmable wallet.