RMRK is a set of NFT standards consisting of several modular NFT primitives. Combining these modules allows the user to create NFT systems of arbitrary complexity. RMRK created 7 modules as ERC proposals, all of which are compatible with ERC721. The first 5 have already become standards, the 6th and 7th are still under development.
MultiAsset NFT (ERC-5773)
The Multi-Asset RMRK module allows you to build a new primitive: context-dependent information output on a single NFT.
Context-dependent information output means that an asset in the appropriate format is displayed depending on how the token is accessed. For example, if the token is opened in a marketplace, a PNG or SVG asset is displayed, if the token is opened in an e-book reader, a PDF asset is displayed, if the token is accessed from a game, a 3D model asset is displayed, and if the token is accessed via an IoT (Internet of Things) hub, an asset that provides the necessary addressing and specification information is displayed.
The NFT can have multiple assets (outputs), which can be any files to serve the consumer, and order them by priority. They must not match by mimetype or tokenURI, nor be independent of each other. Assets are not independent entities, but should be treated as a “namespaced tokenURIs” that can be ordered by the NFT owner at their discretion, but changed, updated, added or deleted only in consultation with the token owner and the token issuer.
Composable and equippable NFTs (ERC-6220)
The Composable NFTs utilizing equippable parts standard extends ERC-721 to allow NFTs to selectively add parts to themselves through equipping.
This proposal introduces two types of parts:
- slot type parts allow other NFT collections to be embedded in them;
- fixed type parts.are complete components with their own metadata.
Composing means composing a token using fixed parts. It allows you to create tokens from a number of pre-defined fixed parts from a catalog.
Equipping refers to augmenting a token using slot parts. This allows tokens to be modified by equipping child tokens with slot parts from the catalog. Equipping a part in NFT does not generate a new token, but rather adds another component that will be displayed when the token is retrieved.
Tokens can be composed by selecting a list of parts from the catalog for each NFT instance, and can equip other NFTs into slots that are also defined in the catalog. Catalogs contain parts from which NFTs can be composed.
Minimalistic Transferable NFT (ERC-6454)
The Minimalistic Transferable interface for Non-Fungible Tokens standard extends ERC-721 by providing the ability to determine whether an NFT is transferable or not.
This proposal introduces the ability to prevent a token from being transferred from its owner by making it bound to an account, an abstract account, a smart contract, or a token that owns it.
Parent-Governed Nestable NFT (ERC-7401)
The Nestable RMRK module allows you to create new relationships and interactions between NFTs.
The owner of an Nestable NFT does not have to be an account belonging to an external owner (EOA) or a smart contract, it can also be an NFT.
The process of attaching an NFT to another is functionally identical to sending it to another user. The process of sending a token from another token involves issuing a transaction from the account that owns the parent token.
An NFT may own one other NFT, but in turn may have multiple NFTs that it owns. This module provides the basis for the parent-child relationship of an NFT. A child token is a token that is owned by another token. A parent token is a token that owns another token. A token can be both a parent and a child token. The child tokens of a given token can be fully managed by the owner of the parent token, but can be proposed by anyone.
Emotable NFT (ERC-7409)
An extension to Emotable RMRK that allows users to express their NFT experiences using Unicode emoji.
Dynamic Onchain NFT (ERC-7508)
The Public On-Chain Non-Fungible Token Attributes Repository standard provides the ability for ERC-721 and ERC-1155 compliant tokens to store their attributes on-chain, accessible to any external smart contract interacting with them.
This proposal introduces the ability to assign attributes to NFTs in a public smart contract with a non-gated repository accessible at the same address across all networks.
ERC-20 Holder Extension (ERC-7590)
This proposal offers an ERC-721 extension that allows unique tokens to manage and trade fungible ERC-20 tokens bundled into a single NFT. This is accomplished by including methods to attract ERC-20 tokens in an NFT contract to a particular NFT and transfer them to the owner of such NFT.

