ioID Registry

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 Identifier
NFT chainID
NFT contract
NFT tokenID

5RJ1UfUCLX6...yH1bkF5CC4WpHXxa

1

0x0ca53...400c

123

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.

Last updated

Was this helpful?