One Collection, Multiple Candy Machines

948 Views Asked by At

I'm trying to create a NFT collection of 999 pieces. Out of this 999 pieces 23 will be reserved for early investors (they will receive a custom NFT). Because there is no way to mint a specific NFT (investor NFT) - I was advised to create 2 candy machines, one public which will be connected to the Candy Machine UI and one private which I will use to mint all investor NFTs and airdrop manually.

I set up the folder like this
./public-assets/ - NFTs for the Public Machine
./private-assets/ - NFTs for the Private Machine
./public-config.json - Configuration for the Public Machine
./private-config.json - Configuration for the Private Machine

Now in theory the public-assets directory will contain 976 assets and the private-assets directory will contain 23 NFTs and configurations will match that number.

I have a number of issues regarding this approach:

  1. I have duplicate NFT numbers e.g. "Collection Name #0" (public mint)" = "Collection Name #0" (private mint) - even though the NFTs are different
  2. Total number of items remaining on minting platform UI is 999 - 23 // this one I solved by modifying the candy machine UI to connect to the private machine and get the number of remaining items - but I don't know if there is a better way
  3. The NFTs do not seem to be part of the same collection, even though the metadata attached to every asset has the same collection name and family

Would there be a better approach to this problem? And if so how can it solve all the issues I'm facing? TMy first stack overflow post, sorry if didn't provide enough details.

2

There are 2 best solutions below

2
On BEST ANSWER
  1. you will have to take care of that on metadata generation / rename them before creating the candy machine
  2. yes, best method is to either connect to the private machine, too or just hardcode the whole number.
  3. You need to make sure that they are all part of the same on chain collection. The collection name and family in the off chain JSON does not matter for that. To achieve that you can for example
  • create the first candy machine as normal. This will create a new collection
  • use this collection mint on upload of the second machine with -m <collection>. This will automatically make the minted NFTs part of that collection.
0
On

The duplicate NFT numbers means you didn't change the script/art engine you used to start incrementing at a later number to compensate for numbers already taken. By default Hashlips and other engines start their generative collections at #0.

Ideally you wanted Collection 1 to have metadata from #0 - #976 and then collection 2 metadata from #978 - #999.

You can easily modify collection 2's generated off chain data with a quick py or JS script (or langauge or your choice) to loop through and adjust the file collection names, or do it manually since it's only 23.

Once collection 2 is reuploaded to a new candymachine and minted these can then be merged to the larger collection by updating collection 2's metadata collection address to be the same as collection 1. This will then group everything under the same collection.

One of the major tools for updating Solana NFT's metadata is Metaboss. https://metaboss.rs

In regards to the front end counter, if it works it works :P

What you do have to be careful with is the new bot tax. If for example the 2nd smaller candymachine doesn't sell out, but the UI on the front end still says 990/999 anyone who successfully attempts to mint at this point would be taxed 0.01 SOL because essentially the public machine is sold out but the private machine would have some remaining, but the numbers don't reflect this. So need to make sure your UI logic is onpoint and stops people from trying to mint when public machine does sell out.