ERC1155提供了ERC721功能的超集
ERC1155由 Enjin团队首创,将半同质化的理念引入NFT领域。使用ERC1155, ID不是代表单个资产,而是资产的类别。例如,一个ID可能代表“剑”,一个钱包可能拥有1000把这样的剑。在这种情况下,balanceOf方法将返回钱包拥有的剑的数量,用户可以通过用“剑”ID调用transferFrom来转移任意数量的剑。
interface ERC1155 {
function balanceOf(address _owner, uint256 _id) external view returns (address)
function transferFrom(address _from, address _to, uint256 _id, uint256 quantity) external payable
}
这种类型的系统的一个优点是效率:当使用ERC721时,如果用户想转移1,000把剑,他们将需要为这1,000个独特的代币修改智能合约的状态(通过调用transferFrom方法)。但对于ERC1155,开发人员只需要调用数量为1000的transferFrom,并执行一次转移操作。当然,这种效率的提高伴随着信息的丢失:我们无法再追踪单个剑的交易历史。
还要注意,ERC1155提供了ERC721功能的超集,这意味着可以使用ERC1155构建ERC721资产(您只需为每个资产拥有一个单独的ID和数量1)。由于这些优势,我们最近看到越来越多的人采用ERC1155标准。OpenSea最近在Github上开发了一个用于ERC1155标准入门的存储库。
https://github.com/ProjectOpenSea/opensea-erc1155
剖析ERC20,ERC721和ERC1155标准。 ERC20将地址映射到金额,ERC721将唯一的ID映射到所有者,而ERC1155则将ID嵌套映射到所有者和金额。