Overview
Last updated
Last updated
The Item standard is a new token standard for Ethereum, synthesizing and advancing on the ERC20, and ERC1155 standards. Because an Item can act as if it were any of these, it is naturally interoperable with all applications, and can do anything that all two can—and more.
Native Items
A native Item has all the capabilities of the Item standard.
Wrapped Items
Any ERC20, ERC721, ERC1155 or ETH can be wrapped as an Item, and thereby gain all the capabilities of the Item standard—with the exception that Wrapped Item collections cannot have extensions.
itemId
Every Item has its own unique itemId
, which corresponds to the hexadecimal conversion of its Interoperable Interface address, and is in unint256
format.
Main Interface
There is one Main Interface for the Items protocol.
This is a singleton contract—a single address—shared by all Items, native and wrapped. It serves as their collective ERC1155 Interface. When an Item needs to interact with an ERC1155-based protocol or application, it does so via the Main Interface—or, more specifically, via its Collection, stored virtually in the Main Interface. It represents the ERC1155 face of an Item.
Interoperable Interface
Each Item has its own unique Interoperable Interface that is its ERC20 face. When an Item needs to interact with an ERC20-based protocol or application, it does so via its Interoperable interface.
An Interoperable Interface does this by implementing the IERC20
, IERC20Metadata
and IERC20Permit
interfaces.
Collections
All Items belong to a Collection. A Collection is a set of Items that share the same metadata, mint logic, and host address.
collectionId
Each collection takes the form of a unique collectionId
—a bytes32 key—that is stored virtually in the Main Interface’s Collection contract. So the Collection represented by a specific collectionId is virtualized in the singleton Main Interface contract.
Host Address
The host address of a Collection is its "owner". It can mint new Items for the Collection and modify its metadata and modify the metadata of its individual Items.
A Collection can have as its host an Extension or no one.
Extension
An Extension is a smart contract linked to a Collection as its host. Actually, you can use the MultiOperatorHost or the Native Extension, cloning it from the Extension Factory.
Dynamic Metadata
All Items can have dynamic metadata. This allows their metadata— their description, name, image, ticker etc.—to be not only saved but also regenerated at any time they like, fully on-chain and without using any centralized off-chain storage.
If so desired, Items can also have ‘traditional’ metadata, using off-chain storage such as IPFS.