This whitepaper describes the MNM Token and MNM NFT contracts and their relationship with one another.


The name MNM was chosen based upon the initials of the author's first child. The base image was inspired by the initials' similarity to a certain popular confection, but is in no way affiliated with any trademarked product.


This work was inspired by the desire to create an NFT that exists entirely on the blockchain and that can be retrieved and viewed without any special or proprietary decoding. Another desire was to have a mechanism where NFTs can be created or destroyed at-will while also maintaining a maximum upper bound to the number of NFTs that can exist at once.

MNM Token

Contract Address



The MNM Token contract conforms to the ERC-20 standard. Currently the only purpose of the token is as a utility which allows the minting of MNM NFTs. There may be additional uses implemented for this token in the future.

Number of Tokens

The number of tokens is fixed at 100,000 whole tokens. This number cannot increase but the total supply will decrease by the amount of tokens used to mint MNM NFTs. When an MNM NFT is melted the number of tokens used to mint it will be credited to the owner of the NFT and returned to the total supply.


Contract Address



The MNM NFT contract conforms to the ERC-721 standard. MNM NFTs are all algorithmically generated from a common base image. The algorithm uses an ordered list of 9 parameters, each with a range from 0 to 255. The list of parameters must be unique for each NFT. When an NFT is minted the parameters may be pre-selected, otherwise, they will be randomly generated. In order for an NFT to be minted the owner must supply at least 1 MNM Token for a randomly generated NFT and at least 9 MNM Tokens for a custom selected NFT. The number of tokens that are supplied are taken out of circulation and are bound to the minted NFT.

Generative Algorithm

The 9 parameters which define an NFT are used by the generative algorithm to produce the image for the NFT. The algorithm applies the following formula to each palette entry in the base image: NFTC = ((PaletteC ^ MXC) + MAC) * MMC where PaletteC is the Palette value in the base image for a given color C, MXC is the Xor parameter for a given color C, MAC is the Add parameter for a given color C, and MMC is the Multiply parameter for a given color C. Each palette entry and Xor, Add, and Multiply parameter has fields for red, green, and blue. The order of the NFT parameters is MARed-MAGreen-MABlue-MXRed-MXGreen-MXBlue-MMRed-MMGreen-MMBlue.

Randomly Generated NFTs

When an NFT is randomly generated the number of parameters that are mutated corresponds with the number of tokens which are supplied. If less then 4 tokens are supplied the only the MA parameters will be mutated. If less than 7 tokens are supplied then only the MA and MX parameters will be mutated. Parameters that are not mutated will have a default value of 0 for MA and MX parameters and 1 for MM parameters. If more than 9 tokens are supplied then the generation of parameters will behave the same as if 9 tokens were supplied.

Number of NFTs

The total number of MNM NFTs is limited by the number of MNM Tokens. Since at least one MNM Token is required to mint an MNM NFT, the naive maximum would be 100,000. However, since a single token will produce an NFT that has only one of the first three parameters mutated, there can only be 256 * 3 = 768 possible NFTs created using a single token. An NFT that is minted using two tokens will have two of the first three parameters mutated. This means that there are 256 2 * 3 = 196,608 possible NFTs to be created from two tokens, which would easily exhaust the 100,000 MNM Tokens that exist. This means that the theoretical maximum number of MNM NFTs that can exist at once is (100,000 - 768) / 2 + 768 = 50,384. Of course this is the theoretical maximum because it assumes that the absolute minimum number of tokens are used to mint each NFT. In actuality any number of tokens greater than one could be used to mint an NFT, so it is technically possible for all 100,000 tokens to be bound to a single NFT.

Number of Possibilities

Given that there are 9 parameters each with a range of 0 to 255, the total number of unique permutations is 256 9 = 4,722,366,482,869,645,213,696. Each NFT that exists must have a different set of parameters, but it is possible for two different sets to produce the same image. This is due to the nature of the generative algorithm that was selected. For example, each NFT that has 0 for all of the MM parameters will produce an all black image because the multiplication operation is performed after the xor and add operations and therefore the result would be 0 for each palette entry.