Calendar Icon - Dark X Webflow Template
January 15, 2024
Clock Icon - Dark X Webflow Template
5
 min read

Arcane Developer Notes: Introduction of RMRK Wizard

Introducing RMRK Wizard, the application for building your Modular NFTs smart contract templates.

Arcane Developer Notes: Introduction of RMRK Wizard

RMRK Wizard provides a convenient way for anyone to get started building their own Modular NFT solution. It allows the developer to select the preferred RMRK lego, minting method, transferability status, and token URI setting. Depending on the developer’s experience and needs, the Wizard can grant the user a ready-to-use implementation or an implementation that can be further modified to satisfy the project’s needs.

Ready-to-use

The ready-to-use setting gives you the ability to decide whether you want the generated smart contract to be fully implemented and ready to deploy and use or whether you want to customize it yourself.

The benefit of using the fully implemented, ready-to-use smart contract is that you can deploy it as is, and you don’t need to spend time implementing your own business logic. This is a great option for artists with some but limited knowledge of coding to showcase and disseminate their art and for projects that don’t need elaborate business logic in their smart contracts.

Using customizable smart contracts allows for more tailored solutions, all the while ensuring compatibility with the ERCs that we published. There are two options that you can select here. One is the minimal implementation that allows you to modify the existing functions without the need to override them, and the other only contains annotations in the form of TODOs noting where the business logic should be added and contains suggestions on what to implement.

Lego

The Lego selection allows you to choose the RMRK Lego you wish to utilize. If you are uncertain about the future of your project and cannot decide which Lego to choose, we suggest using the Equippable one. If you know that your project only requires multiple assets for tokens but does not need any other Modular NFT primitives, you should select the MultiAsset Lego. If you know that you will not need multiple assets for your tokens and only require the ability to nest them, then use the Nestable Lego. You also have the option to select Nestable and MultiAsset Legos together, which allows you to build tokens with the ability to have multiple assets and be nested but not composable through equipping.

We strongly suggest using the Equippable RMRK lego to ensure forward compatibility with whatever utility your tokens evolve into. Using any other lego should only be done if your business logic causes your smart contracts to become too big to deploy, but even then, you should examine your smart contract architecture to extract some of the business logic to another smart contract.

Minting Method

We provide support for three different minting methods: Pre-Mint, Native Token Lazy Mint, and ERC-20 Token Lazy Mint. Depending on how you wish your tokens to be minted, you should select the appropriate option.

Pre-Mint

The Pre-Mint minting method is used when only the issuer of the collection or someone appointed as a collaborator can mint the tokens. These mints are free and can be done to any address they desire. This kind of minting applies to projects that want to mint the tokens and sell them on NFT marketplaces either directly or via auctions.

Native Token Lazy Mint

The Native Token Lazy Mint allows for the tokens to be minted for a set price in the native currency the token smart contract is deployed to. ERC-20 tokens can’t be used to pay the minting fees in this minting configuration without additional custom business logic. This kind of minting is useful for projects that don’t want to associate their tokens with an ERC-20 token but want to provide a user-driven minting experience.

ERC-20 Token Lazy Mint

The ERC-20 Token Lazy Mint provides the ability to mint tokens using ERC-20 tokens. This implementation doesn’t provide the ability to mint tokens using the native currency of the chain without additional custom implementation, but it can be used to set the minting price in stable coins or another fungible token to add additional utility to it.

When using ERC-20 tokens to interact with your smart contract, the approval to interact with the tokens needs to be granted to your smart contract. Without the approval, users won’t be able to mint their NFTs using ERC-20 tokens.

Soulbound

The transferability of the token can be limited using ERC-6454. The Soulbound option adds support for it. Transferability conditions can be further modified by overriding the isTransferable method. Using this option, you can disable transfers for the tokens that shouldn’t be transferred or limit the transfers based on the destination or sender.

Using the Soulbound option makes all tokens non-transferable. Without additional custom logic, owners will never be able to transfer them.

Token URI

The Token URI section defines how a given token’s URI is served. This option is used by wallets and marketplaces to gain access to the token’s metadata. The options we provide are Enumerate, Per Token, and Top Priority.

Enumerate

The Enumerate way of assigning a token URI is used to automatically assign the token’s URI based on the token ID. It combines the base token URI with the token ID. Such assignment of URIs is useful when the token metadata is pre-generated and uploaded deterministically. This way, all of the token’s metadata can be pre-uploaded with a clear structure and naming convention.

Per Token

The Per Token way of assigning token URIs requires them to be assigned explicitly for each token. If the Pre-Mint method of minting is used, the token’s URI is assigned upon minting. Otherwise, the token’s URI has to be assigned asynchronously from minting or in some other automated way.

Top Priority

The Top Priority token URI assignment is used to serve the URI of the token’s asset with the highest priority as the token’s URI. This is useful when we want to give the users the ability to determine which URI represents their token. They can toggle it by assigning the appropriate priorities to the assets of their token.

There are more arcane powers that the RMRK wizard has! Let’s check them out.

Auto-accept child tokens

Nesting a child token into a parent token is a two-step process. It follows a propose-commit pattern where you transfer the child token into the parent token and then accept it as a child token. We provide the ability to circumvent this two-step process in the event that the owner of the child token being transferred is also the owner of the parent token.

Lock supply

The token supply of the collection is defined upon the deployment. We provide the option to reduce it to the current supply if you decide that no more tokens should be minted, even if the maximum token supply that was defined upon deployment has not been reached yet.

Deploy script generation

RMRK wizard builds the Deploy script for you. If you decide to deploy the smart contracts in one of the development frameworks, like Hardhat, the wizard auto-generates the deploy script for you. Additionally, you have the ability to open the desired configuration of the smart contract directly in Remix IDE.

The deploy script generator accepts additional values like collection metadata URI, maximum supply of tokens, price per mint (if applicable), royalties configuration, and more. These values are automatically filled into the deploy script so that the script is ready to be run as soon as you import it into your project.

All of our legos are compatible with ERC-2987 royalties, so they need to be configured when the smart contracts are deployed. If you don’t wish to receive royalties, you can always configure the royalty percentage as 0.

Additional reference

In addition to all of the development help provided by the wizard, it also provides concise instructions on how to set up, build, and deploy your Modular NFT project using the RMRK wizard.

Since you need to have your metadata for the tokens, smart contracts, and assets properly configured in order for them to be compatible with wallets and marketplaces, the RMRK wizard contains the section documenting the structure of metadata for each category along with examples of what the actual metadata looks like.

Welcome to the world of Arcane powers of Modular NFTs. We wish you to go forth and create RMRKable things!


About RMRK

RMRK is a next-generation NFT protocol that equips NFTs with superpowers, making it possible for NFTs to own other NFTs, change based on conditions, have multiple outputs depending on context, accept emojis, and more.

With these modular NFTs, RMRK enables the creation of the most advanced NFT projects the world has ever seen, while remaining compatible with archaic standards like ERC721 and ERC1155. You can explore this right now on Kanaria, RMRK’s flagship Modular NFT project; join the revolution in Skybreach, a truly decentralized metaverse; or trade advanced NFTs on Singular, the advanced NFT marketplace.

WebsiteTelegramTwitterDiscordYouTubeNewsletter

Latest articles

Browse all