Erc-721
需要幫助託管 NFT 元數據
我正在使用 ERC721 創建一堆 NFT。
但是我看到許多其他合約只是使用集中式主機來提供其元數據,這意味著有一天這些伺服器將消失,NFT 也將消失……
例如。Bored Apes 系列是這樣的:
- https://us-central1-bayc-metadata.cloudfunctions.net/api/tokens/1
- https://us-central1-bayc-metadata.cloudfunctions.net/api/tokens/2
- …
我想將元數據連同圖像一起上傳到 IPFS,似乎有一項服務已經很容易做到這一點:https ://nft.storage/
然而,還是有一個問題……
據我了解,這個 nft.storage 解決方案仍然會生成如下 URL:
ipfs://bafyreib4pff766vhpbxbhjbqqnsh5emeznvujayjj4z2iu533cprgbz23m/metadata.json
這意味著我需要在我的 ERC721 合約(
bafyreib4pff766vhpbxbhjbqqnsh5emeznvujayjj4z2iu533cprgbz23m
部分)中為每個 NFT 儲存一個大 URI。由於 ETH 主網上的高儲存成本/gas 費用,這基本上會扼殺該項目。
所以我的問題是:有沒有辦法生成共享相同基本 URI 的連結,但是我可以選擇後綴部分?例如。對我來說,這將是理想的情況:
- ipfs://<SAME HASH ON ALL URLs>/tokens/1.json
- ipfs://<SAME HASH ON ALL URLs>/tokens/1.jpg
- ipfs://<SAME HASH ON ALL URLs>/tokens/2.json
- ipfs://<SAME HASH ON ALL URLs>/tokens/2.jpg
- …
這可能嗎?
是的,IPFS 支持文件夾。只需注意 CID 生成,它基於文件夾內容 -> 一旦上傳,內容就不能再更改(沒有新的 CID)。
隨意嘗試一下,我剛剛通過 Pinata 固定了這個測試文件夾:https ://gateway.pinata.cloud/ipfs/QmTcZ21jK22QxPAooVZEr5jFW6u1gpS5REsuVBMZbcNwka