Nft

如何強制 NFT 的 1 個副本具有唯一的元數據,而該 NFT 的其他副本也不具有?

  • February 23, 2021

如果我想創建一個包含某人使用者名的 NFT 來證明他們的地址所有權,那麼執行該 NFT 的 2 個副本不能具有完全相同的使用者名元數據的最佳實踐或建議方法是什麼?

元數據範例:“名稱”:“鮑勃”

只有 1 個 NFT 實例可以使用名稱“bob”。如果嘗試創建另一個,它應該無法創建,因為“bob”已經作為名稱存在於現有 NFT 中。

是否應該遵循特定的 NFT 標準,例如 721 或 1155?

或者這是否只能由允許鑄造新 NFT 的程式碼集中控制?如果僅集中,是否有查找所有現有 NFT 數據的最佳實踐方法?

您可以保留在創建新 NFT 實例時使用的名稱列表。例如:

mapping(string => uint256) public userNames;  // user name => token ID

然後,每當您想創建一個新的 NFT 時,您需要該名稱以前沒有使用過:

function addNFT(string memory _name, uint256 _id) external {
   require(userNames[_name] == 0, 'Name already exists');
   userNames[_name] = _id;
   // create NFT
}

如果使用此功能,請確保第一個 NFT 的 ID 以 1 或更高開頭。

引用自:https://ethereum.stackexchange.com/questions/93822