Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NFT Metadata #52

Open
cankaytaz opened this issue Feb 14, 2024 · 7 comments
Open

NFT Metadata #52

cankaytaz opened this issue Feb 14, 2024 · 7 comments

Comments

@cankaytaz
Copy link

I have only 5 images like Pandora. These images were distributed randomly in the original Pandora contract, but in this contract, I have not yet understood how to add my metadata file. I'm not exactly a developer so please excuse my ignorance. I don't know what kind of metadata file I should add to the setBaseURI section. Is it possible for you to add a sample metadata file, please? Also, if I do everything right, will the 5 images I have be distributed randomly?

@Vectorized
Copy link
Owner

@cankaytaz Upload the 5 images to IPFS, then upload 10k metadata JSONs pointing to one of the 5 images, chosen randomly.

@cankaytaz
Copy link
Author

cankaytaz commented Feb 14, 2024

@Vectorized something like this?https://nftstorage.link/ipfs/bafybeifoynemoifteqtzhy6y2jn7tglfziibn7y7f42o6gslu2iiqhtcgm

I created 10k jsons, but the problem here is that these random files are sequential, that is, they start in the same order after 10k is finished. Shouldn't there be such a section in the contract instead? Can't a seed structure like the Pandora contract be used? =>

      if (seed <= 100) {
            image = "1.gif";
            color = "Green";
        } else if (seed <= 160) {
            image = "2.gif";
            color = "Blue";
        } else if (seed <= 210) {
            image = "3.gif";
            color = "Purple";
        } else if (seed <= 240) {
            image = "4.gif";
            color = "Orange";
        } else if (seed <= 255) {
            image = "5.gif";
            color = "Red";
        }

And while it's on my mind, I want to ask everything I'm curious about. What exactly does the skipNFT section do?

@myst4
Copy link

myst4 commented Feb 14, 2024

@cankaytaz Upload the 5 images to IPFS, then upload 10k metadata JSONs pointing to one of the 5 images, chosen randomly.

The problem with this approach is that if the token experiences numerous fragmented transfers, the number of IDs will eventually exceed 10k, necessitating the continuous uploading of additional metadata to cover the infinite IDs it may reach.

@cankaytaz
Copy link
Author

cankaytaz commented Feb 14, 2024

@myst4 @Vectorized So what do you recommend regarding metadata? I also have another question; In my project, the total NFT supply will be 4404, and I want 1 NFT to equal 404 Tokens. I prepared 5K NFT and 1M token supply in my test contract, but this caused a problem. When I send 100 tokens to a wallet, 100 NFTs go. What should I do to overcome this problem? What exactly should be my Token supply for 404 tokens to equal 1 NFT?

@Vectorized
Copy link
Owner

DN404 does not have unbounded token IDs.

@Vectorized
Copy link
Owner

Ah, you probably should create it in tokenURI if you only have 5 images.

@codebuster22
Copy link

codebuster22 commented Feb 15, 2024

The main purpose of a standard is to provide the necessary functionality and allow the implementor to add their own logic relevant to their business needs.

If we talk about Pandora, their version of ERC404 standard didn't had the seed functionality. The Pandora contract inherited ERC404 and the custom logic to handle the metadata for tokens was added to the overridden tokenURI function.

Link to the overridden function: https://github.com/Pandora-Labs-Org/erc404-legacy/blob/master/src/Pandora.sol#L32

cc: @cankaytaz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants