Skip to main content

2. What's an mQuark

“A new type of interoperable and extendable digital asset (NFT) whose value and utility grows when used across businesses and metaverses alike.”

What's an mQuark?

NFT with Slots

mQuark is a unique NFT schema protocol designed to address the interoperability issue across different platforms. It represents a novel solution, enabling a single NFT, known as "mQuark", to exist seamlessly across various platforms and worlds. This cross-platform functionality is made possible through the use of a shared standardized Template Metadata.

Beyond interoperability, mQuark also emphasizes upgradability. Its design simplifies and secures the process of using and upgrading NFTs across different platforms and contexts. Moreover, mQuark introduces an innovative feature - Subscribability. This function allows NFT owners to subscribe to an entity within the mQuark Protocol, thus unlocking a multitude of possibilities with separate metadata.

At the heart of mQuark are the Templates, which provide a standardized structure and metadata for NFTs. This standardization is key to ensuring that NFTs following the mQuark protocol can interoperate and upgrade smoothly across different platforms, enhancing the utility and potential of NFTs in various environments.

2.1. Subscription

NFT with Slots

NFTs within the mQuark ecosystem are created when an end-user mints from a collection on any platform. Each collection carries a unique "Template ID," enabling it to be recognized by multiple entities across different platforms. To imbue these mQuark NFTs with value or significance on a specific platform, additional attributes or properties can be appended through the unique subscription feature.

Upon subscription, a designated slot is created for the subscribing entity on the NFT, allowing for the storage of multiple URIs and the potential for metadata updates or upgrades over time. This dynamic capability makes NFTs adaptable, keeping them relevant in the face of market changes. Each entity can choose to read from all metadata slots or restrict to their specific slot, providing flexibility to developers. However, only the owner of an entity has the ability to write to their metadata slot, ensuring the integrity of each NFT. Consequently, a minted NFT can house multiple metadata slots, offering one for each subscribing entity.

We strongly encourage entities to adhere to the attribute standards set forth by the mQuark team to enhance the interoperability of their assets. This will facilitate other projects in easily interpreting and understanding the attributes of the metadata, promoting seamless integration across platforms.

Figure 2.1

2.2.1 Upgradable NFTs

With the introduction of URI slots in the mQuark protocol, separate upgradable metadata for a single token is enabled. Creators can update or modify the metadata associated with their Slot without affecting ownership or value, ensuring long-term viability for investors.

2.2 Standardized Templates

Templates are the foundation and backbone of mQuark, providing a standardized structure and metadata for NFTs. This ensures that NFTs created on the platform are interoperable and easily integrated into other marketplaces, wallets, and platforms.

Containing attributes that define the structure and metadata of an NFT. mQuark creates these templates and helps people to give NFTs meaning for better interoperability.

2.3 Collections/ NFTs

Groups of NFTs that share a common Template. Creators can create collections by selecting a Template. Collections can be Free/ Paid / Whitelisted mint. The metadata of the collections can be fully customizable.

There are three variations;

  • Static

    For a collection, there is only one metadata stored on the contract to have for their tokens

  • Limited Dynamic

    For a collection, there are multiple metadata stored on the contract to have for their tokens, variations can be selectable to mint. For example, in a game context, there are three types of Swords to mint; a Flaming Sword, an Icy Sword, and a Holy Sword. So that people can mint one of them by selecting the variation index.

  • Fully Dynamic

    For a collection, there are an infinite amount of variations. However, these variations are not stored on the contract, but using mQuark SDK, metadata can be created off-chain and can be signed by the owner of the Collection, and can be minted with that off-chain created metadata. Without a valid signature, a mint event will not be possible.

Combined with these three, there are 12 Mint-typed Collections.

2.3.1 Whitelist Collections

mQuark also allows creators a whitelist mint. It refers to the process of minting NFTs, where only the users on the whitelist are allowed to create or purchase the NFTs during a specified period. This period usually takes place before the NFTs are made available to the general public, granting the whitelisted users exclusive early access to the NFTs.

2.3.2 Mint Limit Per Wallet

It is also possible to limit the mint per wallet address. For example, if an account cannot mint more than one, it is configurable during the collection creation process. This can be any number, including unlimited mints per account.

2.3.3 Importing External Collections

If you have an NFT collection with the type of ERC721 and if you are the owner of the Collection itself, after registering to the Protocol, that external collection can be imported by selecting a Template for it, and your users can start to use the subscription and upgradability features on the mQuark Ecosystem.

2.4 The Architecture

Simply put, smart contracts are blockchain-based algorithms that execute when specific criteria are met. They are often used to automate the implementation of an agreement so that all parties can be sure of the conclusion right away without the need for an intermediary or additional delay. This makes it possible for the network to store the data. Additionally, the smart contract makes sure that the data is both transparent and immutable.

The mQuark smart-contract ecosystem consists of six different smart contracts (plus implementations). The entry contract is “mQuarkRegistry,” which mainly manages the registry process and deploys a brand-new “mQuarkEntity” contract for every registered entity. The registrar will be the owner of the deployed contract, it will be responsible for creating NFT collections and managing ownerships and funds saved on them. “mQuarkController” is another contract and acts like a set-and-get for the protocol. “mQuarkTemplate” manages templates, “mQuarkSubscriber” manages subscription and upgradability. Lastly, the “ImportedContracts” contract is mainly responsible for importing external NFT collections for an entity that enables subscription features for NFT owners.

Templates are abstract NFT objects that can be interpreted and extended by each entity. Each one can build upon the Templates and create as many NFT Collections to support their user’s needs.

Templates:

  • Are created by mQuark Foundation
  • Are a basic representation of an item/thing
  • Act as a blueprint schema
  • Contain a metadata URI
  • Used by entities to create their collections
  • Have IDs
  • Sets limit of mint price
  • Can be requested if non-existent

A unique Template ID allows each developer to recognize the category of the NFT item and display a representation of that asset customised to their world, i.e. while the NFT item is the same in each world, the representation of that specific NFT could be a different, even though a platform may provide an option for users to edit their representations. Users also have the ability to export their NFT assets into a proper mQuark NFT slot. They can also request/suggest new Templates in the Developer Portal.

To use the template for building NFT Collections, entities should be registered to the Protocol through mQuarkRegistry (it is totally free) and should interact with its entity contract. Then, they will be able to select and create collections for their project, as well as to view the templates that other projects have used.

Collections:

  • Are created by Entities
  • Are extended NFT assets by a Template
  • Fully Customizable
  • Can be created without any limit
  • Are consisted of ERC721/1155 unique NFTs.
  • Will have unique tokens for every collection in every entity.
  • Can be free or paid(minimum price can’t be lower than the chosen Template)

While the protocol sets the limit price for minting NFTs due to keeping the balance among various platforms for the sake of interoperability, entities determine the price for the “subscription” of their collections. This is due to mQuark Foundation’s concern about price manipulation of NFTs derived from Templates and prevents unfair competition and market abuse. The Collections are also special in the way that they support multiple metadata slots.

mQuark Metadata Slots:

  • One slot for every entity on an NFT
  • Only NFT owner can write to slots
  • Are publicly readable
  • NFTs should be subscribed to an entity to add a slot for it.

2.4.1 The Graph API

The Graph indexes our smart contract event logs and provides an accessible API endpoint for all operation logs from the different layers in our protocol’s elements, including Registry, Projects, and Collection. The purpose of this API is to facilitate public consumption of the protocol’s data for developers interested in building new products.

Graph Diagram

2.5 Built-in monetization

The mQuark has provided built-in monetization for its users.

2.5.1 Selling Metadata Slot

Having multiple metadata slots on an owned mQuark NFT, it is necessary to sell that one of the mutable metadata rather than selling the NFT itself. So that people can have someone else’s metadata for the same project on their NFT.

2.5.2 Ownership Sales

Owners can sell their projects or collections individually as part of an acquisition.

2.5.3 Receiving Royalties

They can also receive loyalties on recurring marketplace sales.

Note that the mQuark protocol takes a foundation share from minting and subscription fees to fund ongoing development and support the ecosystem, providing a sustainable business model for the protocol and its investors.

Since mQuark is an NFT contract, royalty payments are obviously a part of the automation. Businesses that want to use mQuark will have to pay the royalty amount to Soonami from first-hand NFT sales when it’s first minted (handled automatically). A voluntary percentage can also be paid when NFTs are sold as second-hand sales on third-party marketplaces (e.g., OpenSea). Obviously, when a user first mints the NFT and/or adds a metadata slot to the NFT, it’s the business or metaverse that earns a profit from that first sale.

2.6 Security & Permissions

mQuark team has taken into consideration many aspects of contract security and implemented vetted patterns and best practices to ensure the healthiness of our smart contracts.

The use of the Factory and Minimal Proxy pattern enables us to successfully assign ownership and make deployed contracts more secure and private.

mQuarkSubscriber Contract ensures Metadata slots can only be updated with valid data signed by the owner of the metadata slot.

Users who demand an update operation for metadata must own the NFT, which means without a valid signature and without having the NFT in his/her wallet, the metadata slot can NOT be changed in any way. Furthermore, the main metadata of the NFT( i.e. Template Metadata) is immutable when minted. Therefore, anyone can read any metadata slot, but only the NFT owner can change it with valid signed data by the project.

It’s also important to note only the mQuark Foundation can create templates, in order to eliminate the potential for abuse. However, platform developers may request templates to be added via the Developer Portal.

2.7 The Developer Portal

Developer Portal is the dApp for organisation developers that would like to use mQuark in their projects. Simply, it allows developers to send transactions to Smart Contracts via a UI. So this makes interactions with mQuark Smart Contracts easier and more fun. Developers can connect with their wallets, add projects, add to their Metaverses/Games among the created Template NFTs, check which Metaverse/Games the Templates are used in, and quickly transfer their balances from the contract to their accounts. In addition, Template requests can be made, and new ones can be created over time.

2.8 APIs for Developers

The mQuark provides easy Graph APIs to developers so that they can build and extend upon our protocol in the simplest way possible. All developers can query the following API endpoints through the graph protocol. Protocol’s state and information are open and transparent to the public.

Collection Info:

Collections are NFTs minted based on a specific Template. A collection endpoint provides the following queries to developer portal users:

  • Template ID
  • Collection ID
  • URI
  • Mint Price
  • Mint Count
  • Available Amount
  • Metaverse ID/Name/Wallet
  • Balance
  • Mint Typ and Limit
  • Total Supply

NFTs in Wallets:

NFTs in the users' wallets can be accessed by this endpoint. The Wallet will display the user’s mQuark NFTs in their wallets. The endpoint will provide the following:

  • Token ID
  • User Address
  • The number of subscriptions and their metadata,
  • URIs

Entity Info:

Developers can receive information about registered entities (e.g., metaverses) by querying this endpoint. The endpoint provides the following:

  • ID
  • Wallet Address
  • Subscription Price
  • Name
  • Default Metadata URI
  • Owner
  • Balance

Metadata Update:

When users want to update the metadata, entities must generate a new URI with the new metadata. We can receive and upload it to decentralised storage and return the newly generated URI to the project:

  • Metadata
  • URI

2.9 The Developer Portal

caution

This section is under construction and will be updated soon.

Developer Portal is the dApp for organisation developers that would like to use mQuark in their projects. Simply, it allows develope+rs to send transactions to Smart Contracts via an UI. So, this makes interactions with mQuark Smart Contracts easier and more fun. Developers can connect with their wallets, add projects, add to their Metaverses/Games among the created Template NFTs, check which Metaverse/Games the Templates are used in, and quickly transfer their balances from the contract to their accounts. In addition, Template requests can be made, and new ones can be created over time.

tip

[Refer to Docs - Developer Portal Guides ]