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