What is the scope of Metaplex's Candy Machine - solana

It seems like Metaplex's candy-machine ships with some built-in assumptions about the way tokens will be minted and sold. Such as:
All NFTs in the collection will have the same price.
Buyers cannot pick WHICH asset in the collection they want to buy; what you get is a surprise.
Is this correct? Or is it more flexible?
I'm curious if candy-machine handle either of the following circumstances:
A. a small collection of unique tokens that buyers can choose specifically? Not randomly assigned?
B. 10 "copies" of the same original. Metaplex framework documentation calls these Prints and Master Edition, respectively. It's unclear to me how these concepts relate to a candy_machine sale (if at all).
Are uses-cases like these simply out of scope for Candy Machine?

Candy Machine is a tool that works as same as it sounds like a Candy Machine it allows you to fill it up with mint data(like price, date, images, whitelist) and then it allows the user to mint NFTs. According to the given scope of work you have described you can use the token-metadata program which you are indirectly using when you are using the candy machine. Candy machines uses the token-metadata program under the hood to mint NFTs. So if you want to do any fancy stuff you can use the token-metadata program to build out something of your own.

Candy machine distributes all tokens in random order, there is no option for the user to select the minted token, that's to prevent sniping of the rare NFTs as links to all metadata files are available on chain.
If you want to allow users to mint specific NFTs, you can use the Metpalex JS SDK and create an offchain version of the required functionality - check create and updateMetadata in https://github.com/metaplex-foundation/js-next
The only option for variable prices with Candy Machine is:
use end mint settings to stop the mint after a specified date or number of mints and the manually change the price
distribute whitelist tokens that will allow minting at discounted price
You can't use prints with candy machine, but you can check the hidden settings in Candy Machine docs, which allow you adding a single URI that will be used for all mints.
Some of the mentioned options are covered here: https://hackmd.io/#halaprix/S1W4vc9CY

Related

How can I set the limit of NFTs that can be minted per wallet?

I need to update the limit of how many NFTs can be minted on 1 wallet
Using the current Candy Machine v2 Program you cant set (for public mint) a limit of NFTs per wallet.
How can this be solved? You can use whitelist Settings to make sure how many NFTs can be minted per wallet. Why? Because with whitelist settings any person who has the SPL token can mint while she/he hold the whitelist Token.
So to have a limit per wallet you have to set whitelist settings with "mode" : { "burnEveryTime": true } and to distribute the whitelist tokens you can use gumdrop
Other way (more complex) is grabbing the CandyMachinev2 rust program and adapt it to ensure a limit per wallet using an PDA per wallet. Then deploy ur new CMv2 program to solana network and use the new program id in ur CLI and mint page
You can directly use gumdrop for this.
Go through Metaplex docs for gumdrop. Gumdrop can be also used to mint NFTs and it has a feature distribution list of selected users and you can define amount of NFTs distributed per user.
It can be one for each or random for each user.
Gumdrop Docs
Whitelist Mint using gumdrop

Setting up a WL wallet based approach with Candy Machine V2

I have been using the spl-token whitelist based approach via the the CLI with Candy Machine V2 up to this point. Sending WL users a token that is registered as the WL token in the Candy Machine config. This route has been ok but I would like to switch to a wallet based approach where wallet addresses are detected automatically without the need to send out tokens. I have been looking online for some documentation / notes on how this can be done but haven't been able to find much (might just be looking for the wrong thing). Is this possible to set up with Candy Machine V2? If possible, does anyone know of some good resources I can check out that could help me get this done? I would need the ability to set up multiple whitelists.
Any help is appreciated!
You can do wallet based whitelisting with candy machine v2 together with gumdrop.
You would have to use claim-integration candy and distribution-method wallets. This will allow the given wallet to claim the wl token and since you are using claim integration candy will directly build the mint transaction, too. Therefore the user will only have to confirm one tx and would only see the wl token if the second transaction fails.
This is closest to what you can get to wallet based whitelisting with cm v2.
Keep in mind though that by default you have to give every user a personal claim link which contains a merkle proof that allows them to claim. Either use a discord bot where they can pull their claim link or modify the frontend to include the proofs and automatically fill it there.
Its not possible to set up a Wallet-based whitelist using the deployed CandyMachineV2 Program. The only way of having this feature is grabbing the CMv2 program and update it to allow Wallet Whitelist instead of SPL-Token whitelist, then deploy your new CMv2 and use that new program ID in ur mint page and ur CLI to create and update the CandyMachine

SOLANA: How to display my candy machine NFT's on metaplex's storefront?

I minted 30 tokens with candy machine's cli, following the metaplex's github boilerplate project
Uploaded, verified, minted and signed all the NFT's. I can see them on my phantom wallet and it created a cache file on the main directory with the candy machine ID. Now I want to know is theirs a way to call my candy machine on the metaplex storefront so I can sell the minted nfts on there.
I think I did it once but now i can't replicate it. I might have been dreaming ...
Any good tutorials on trying to do what I want?
Thank you.
Soo it works again!!
I think i know why it wasn't working in the first place.
An account address can create many candy machines and when initializing Metaplex's storefront it tries to retrieve all those candy machine instances.
That's why it takes one attribute on the .env file , it gets all the CM's from that one address
After checking Metaplex discord and various forums it seems as Solana's network is the problem. in short the network is slow and unable to function at scale. As of now (March 30, 2022)
My solution is to only use one address per candy machine instance and maybe that'll help the load

Can I mint 1 NFT with multiple versions on Solana candy machine v2?

I'm minting Solana NFTs. Candy machine v2 was recently released and v1 is deprecated.
I want to create a v2 candy machine and mint some NFTs in Packs, how can I do this?
Candy machine is more used for minting multiple different NFTs and allowing the users to get one at "random".
Packs, such as packs from topshots, would be done by minting normal tokens of each pack type. Those packs could then be swapped(custom program) with multiple NFTs.
Neopets did something like this, and fair launch protocol also distributes tokens that you can trade later for NFTs. You can start there with your implementation.

User Sessions across devices on Google Analytics Universal

I have a quick question...may sound a little straightforward but still want to throw it out there.
I am aware that typically a session is limited to a single browser and client instance.
With that said though say a user signs up on your mobile device and starts to do some shopping...maybe adds something to their cart and then decides that they want to complete the purchase on their desktop.
I have some people that want to call this a single session while technically its a new session.
Does this make any sense?
In theory this should work with Universal Analytics, at least for logged in users ( I assume that your users are logged in if they want to buy).
You can pass a client id as a parameter when you create the tracker. The client id is supposed to be formatted as UUID, so you'd have to store that along with your real client id in you backend system and pass it in to the tracker as a part of the confuguration json object (optional third parameter in ga create). Apparently this get retroactively applied to the running session (no written source for that but I recently attented a conference where a google employee said as much, so I assume this is legit).
So as far as it concerns data collection UA is ready for multidevice. I frankly do not know to what extent this already works in the Analytics Interface.
I recently had a glimpse at a Analytics Premium Account which already had some new multdevice reports. I don't know if the fact that those reports are, at least for the moment, absent from the free version means that multidevice tracking does not work yet on the free version (those reports are along the line of Venn diagramms for "How many users used more than one device" and the like).

Resources