Erc-721

使用 IPFS 時,ERC-721 令牌元數據未顯示在 NFT 市場上

  • January 3, 2022

我將以下合約部署到 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: "
   ]
}

至於契約有什麼問題,我不知道。

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