In-depth
Transmuter
Stores version
Stores owner
Registers 3 Gem Banks
These can't be changed. If you need different banks, create a new Transmuter
Each bank can be used to configure a whitelist of allowed tokens
Each bank can also be used to configure rarities (read GB Overview)
Both of these come into play when "requesting" stuff from user
Mutation
Can create as many of these per Transmuter as you want
Each mutation
Requires up to 3 gem banks to be filled by the user
Returns up to 3 tokens from escrow
Knobs you can turn to configure mutations to your needs:
Total charges (how many total users can execute the mutation) - can be 1 or more
Number and mints of NFTs that have to go in (can be fungible tokens too!)
Number and mints of NFTs that come out (can be fungible tokens too!)
What happens to old NFTs (locked / moved to project / returned to user)
Whether a mutation is reversible (kinda like token entangler)
How long the mutation takes (can be instant)
How much the mutation costs to execute / to reverse (can be 0)
NFTs going in
Like mentioned before, you have 3 banks to play with
Why use 3 banks and not eg ask the user to put 3 NFTs into one? Because whitelisting. You can configure whitelisting per bank
So eg you might configure:
bank A allows only NFTs A, B or C
bank B allows only NFTC D, E or F
bank C allows only token G - which are actually fungible tokens
The user then has to fill up these banks with requested amount, in order to trigger a mutation
If all of these were in the same bank, the user could have uploaded 7 of token A and be done
What does βfillingβ a gem bank mean?
Thereβs 2 units you might request from a user:
NFT count
Rarity point count
eg you might say βI want you to upload 20 NFTs from this list of 10kβ
or you might say βI want total rarity points to be 352β and the user will have to upload enough NFTs to hit that number
What happens to uploaded NFTs? 3 options:
stay locked in contract forever
vault with NFTs assigned to mutation owner (they can withdraw or do whatever they want)
nothing, the user can withdraw (useful for breeding)
NFTs coming out
You can return up to 3 mints per mutation. This means:
This works: return 10 of mint A, 5 of mint B, 25 of mint C
This doesn't: return 10 different NFTs, where each is a separate mint
One more time to emphasize the assymetry here:
You can request ANY number of mints via the 3 banks
You can return ONLY 3 mints
This is due to all kinds of limitations Solana puts on you
If you want to return random NFTs, simply configure a Candy Machine and then give out whitelisting tokens for that to users
So eg if you want the user to put 1 NFT in and get 1 random out - ask them to put 1 in, give them a WL token, they use that token with the CM to actually get an NFT, which will be random
Last updated