Solidity
鑄造 ERC-721 代幣後更新其元數據
是否有可能在已經鑄造後以某種方式更新現有
ERC-721
代幣的元數據?假設我們為遊戲創建了一個騎士角色 - 通過為其鑄造 NFT,3 個月後我們想要更新該騎士的屬性以反映它通過遊戲積累的經驗或財富的數量。
這個騎士令牌的原件
URI
看起來像這樣:{ "name" : "KnightToken1", "description" : "One-of-a-kind-Knight", "image" : "http://www.mydomain.com/myImages/knightImage.png”, "attributes" : { “Age” : “30", "Treasure” : “2 Gold Crates” } }
我們現在想將“寶藏”屬性更新為“100 金箱”——怎麼做?
我的理解是它無法做到——區塊鏈畢竟被認為是不可變的——但我看到一些文章基本上說“使用我們的 API,你可以做到這一點!” - 除了他們不告訴你怎麼做。
所以我想知道:這是一個錯誤的聲明 - 還是真的有一些聰明的方法來更新已經鑄造的 ERC-721 的令牌元數據?如果是這樣,怎麼辦?
是否有可能在現有的 ERC-721 代幣的元數據已經被鑄造後以某種方式更新它?
是的。標準不允許這樣做,因此您可以自由地執行此操作。
ERC-721的官方實現由 0xcert 維護。它是免費/開源的,您可以使用元數據模擬合約作為起點。您只需添加一個呼叫等待您的內部函式的公共函式。
_setTokenUri
是否允許任何人隨時更改任何 URI 或是否實施某些限制將由您決定。