使用 IPFS 時,ERC-721 令牌元數據未顯示在 NFT 市場上
我將以下合約部署到 Rinkeby 測試網: https ://rinkeby.etherscan.io/token/0x2d29fc6c1b20c35669fb55fa3144cdd529302256
我使用 IPFS 部署了元數據和圖像。當我嘗試使用 獲取其中一個令牌的元數據時
truffle console
,我得到了看似正確的結果:truffle(rinkeby)> instance.tokenURI(1); 'ipfs://QmRNN5Pwd64h8MscEQScFkX9iLw4rVpdFTQRYUMmZGeXpU/1' truffle(rinkeby)>
我可以使用 IPFS 網關提取元數據: https ://gateway.ipfs.io/ipfs/QmRNN5Pwd64h8MscEQScFkX9iLw4rVpdFTQRYUMZGeXpU/1
但是,OpenSea 測試網上都沒有顯示此數據: https ://testnets.opensea.io/assets/0x2d29fc6C1B20c35669fb55Fa3144cDD529302256/1/ ?force_update=true
也不是 Rarible 測試網: https ://rinkeby.rarible.com/token/0x2d29fc6c1b20c35669fb55fa3144cdd529302256:1
OpenSea 元數據驗證非常無用: https ://rinkeby-api.opensea.io/assets/0x2d29fc6C1B20c35669fb55Fa3144cDD529302256/1/validate/
有人知道我做錯了什麼嗎?我的猜測是我的元數據格式不正確。然而,似乎 OpenSea 至少根本沒有開放元數據。
我一直在尋找答案,但沒有運氣。所以我想出了自己的答案,為什麼會這樣。當我使用錯誤的 URI 部署智能合約時,會有相同的響應,並且在 Rinkeby OpenSea 測試網上沒有顯示圖像或資訊。當我更新智能合約 URI 路徑以更正一個時,我仍然沒有得到關於 NFT 的圖像和資訊,甚至新鑄造的也沒有資訊和圖像,但是在我使用 OpenSea“刷新元數據”按鈕刷新元數據後,它需要 1 分鐘到一整天來刷新所有這些數據。有些只得到圖像但沒有屬性,有些只得到沒有圖像的屬性,但在不斷刷新元數據後,它們載入了所有內容。當舊的有正確的數據時,即使是新鑄造的也仍然會發生這種情況。
我認為它正在發生,因為您使用錯誤的 URI 部署了 SmartContract 並使用錯誤的 URI 鑄造了 NFT,因此 OpenSea 開始對每個新鑄造的 NFT 都出現問題,即使它們是使用新的 URI 路徑鑄造的。因此,如果您想在以後避免此問題,請使用正確的 URI 部署您的合約,或者使用正確的 URI 進行第一次鑄造。
驗證器的 URL 錯誤。
https://rinkeby-api.opensea.io/asset/0x2d29fc6C1B20c35669fb55Fa3144cDD529302256/1/validate/
HTTP 200 OK Allow: OPTIONS, GET Content-Type: application/json Vary: Accept { "valid": false, "token_uri": "https://ipfs.io/ipfs/QmRNN5Pwd64h8MscEQScFkX9iLw4rVpdFTQRYUMmZGeXpU/1", "errors": [ "TokenUrlTimedOutException: " ] }
至於契約有什麼問題,我不知道。