How to provide metadata for ERC721

Actually I do have another question (Deployment failed on Rinkeby: “ERC721PresetMinterPauserAutoId” hit an invalid opcode). How do I provide the metadata you mentioned. The uri is pointing to a diretory but I cant see a file name. So Im not sure how to proceed.

https//:Mydomain.com/tokens/0
for exemple is pointing to what exactly? the metadata but how does it get passed. My test consisted on using PHP to return data.
So my URI would be a get param left empty like;

I tried https://mydomain.com/meta.php?nftid=

Then by running the query the 0 would fill it but it doesnt work that way I think.

1 Like

Or would it be more effective to use IPFS?

1 Like

Hi @madeindreams,

I have moved this question to a new topic. I recommend creating a new topic per question as it makes it easier for community members to answer, (and for future readers to find answers).

With the EIP-721 optional metadata extension, each tokenID can have a tokenURI which points to a JSON file with name, description and image for the given token ID.

Some example metadata which is just JSON:

For testing purposes you could do what I did and use my-json-server.typicode.com to point to a single file in a GitHub repository to use for your token metadata. You could then move to your own server for further testing.

My data file is here:

You can view my NFT on OpenSea:

Using the preset ERC721PresetMinterPauserAutoId we get lower cost minting as we only need to store a single baseURI and then when we look up the tokenURI for each token we concatenate the baseURI and the tokenID (as a string) together.

In your example you would need your baseURI to be https://mydomain.com/meta.php?nftid= and then the tokenURI for tokenID would be https://mydomain.com/meta.php?nftid=0 and this should return the JSON metadata for tokenID 0.


Instead of centralized metadata (that you could change at any time) you could use IPFS.

There would be increased minting costs as you would need to store the IPFS has for each tokenID but it would be more decentralized.

If I recall correctly OpenSea supports providing an IPFS hash for metadata.

1 Like

Hi @madeindreams,

Did you need more information or did the above reply answer your question? (You can mark it as the solution if it did).

Feel free to ask all the questions that you need.