The Main Interface and Item Collections
The Main Interface acts as a singleton Collection for all the existing Items, both Native and wrapped, and each Item belongs to a specific virtualized Collection.
The Main Interface is the ERC1155 face of an Item.
"Virtualized" because a Collection is not a separate contract with its address, but the Collection is represented by a
collectionId(which is a bytes32 key stored in the Main Interface contract).
Benefits of having virtualized Collections
- You can natively perform batch operations between all existing Items (native and wrapped) since they all belong to the same singleton Main Interface. It is possible to execute a
burnBatchbetween different Items. For example, it is possible to batch transfer, in a single transaction, any native Items, any wrapped ERC20 item, any wrapped ERC721 ITEMs, and any wrapped ERC1155 Items. Generally speaking, using the Item standard is possible to execute batch operations on all the existing tokens on Ethereum.
- You can create virtualized Collections for Items, defining Collection-specific Metadata and minting permissions on that specific Collection, not having to deploy a different contract for each Collection of Items. In this way, the gas cost of creating a Collection of Items is reduced if compared with v1 operation (to learn more about the difference between Item v1 and v2, look here).
- Link, as its host, an Extension for each native virtualized Collection of Items. In this way, it is possible to manage each Collection through its Extension (at the moment, it is possible to use the MultiOperatorHost and the Native Extension) being able to define a granular permission system. You can find other features of using the Extension here.