I'm creating a platform where users can mint their own NFT collections, can you tell me the best way to do this? Do I create a contract just to store the collections and tokens, or whenever the user is going to create a collection, do I create a new ERC721 contract?

2 Answers 2


You can either 1) have a big @ss collection and keep all user collections and group them by user data or 2) you can make a mock contract and implement OpenZeppelin clones contract to make a new contract on users demand

Openzeppelin Github repo

  1. if you were to keep all tokens within one colllection youre saving deployment costs for your users but all the tokens would be centralized in one collection and you'd have to find a way to split royalties

  2. if you were to make a clones implementation, it will cost to the end user the gas for deployment

You can take a look at foundation.app, they did what you're trying to do but in two steps; When they started, they had a big @ss collection where they store all tokens from their end users; but now they offer to help users to deploy their own contract


The way i see it there are two main ways:

  1. Create a simple ERC721 factory.A contract that will create other ERC721 contracts. All you'd have to do would be to have the users fill the constructor fields (such as name,symbol, and baseURI ) and making sure that the creator will be the owner of the newly created contract. -- The user would have to take care himself of metadata either on IPFS or a centralized server. --

  2. Use ERC1155.You can then create a very big amount of fungible tokens or NFT. Only catch to that is that all collections will have to the same address.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.