Hi Rogers (@allurco),
Welcome to the community
If you have a predetermined number of tokens, then you could use a scheme where you store all the metadata in a directory in IPFS in advance.
For example:
baseURI: https://ipfs.io/ipfs/QmUm25XMSnUvxvi7XE9Xr8XwRdkNosmTDyKDDyxMajjytv/
Making the tokenURI be the baseURI concatenated with the tokenID as a string.
For example:
https://ipfs.io/ipfs/QmUm25XMSnUvxvi7XE9Xr8XwRdkNosmTDyKDDyxMajjytv/0
https://ipfs.io/ipfs/QmUm25XMSnUvxvi7XE9Xr8XwRdkNosmTDyKDDyxMajjytv/1
This would reduce the cost of minting as you aren't having to store a tokenURI per tokenID.
Alternatively, you could use the extension ERC721URIStorage
to store an IPFS hash per tokenID. Though this would have higher minting costs.
There is also a third option, of using centralized metadata. Your metadata could even use an image in IPFS.
For example:
baseURI: https://example.com/token/
Unless you setup your original token (preERC721) contract to do that, then I assume not.
You would just submit your ERC721 contract to OpenSea and other marketplaces.
Are you allowing existing token holders to convert to an ERC721? Either by wrapping their existing token as an ERC721 or swapping it.
Yes! Please see the Contracts 4.0 Timeline.