NFT rarity and how to score it?

NFTs can be generated by combining traits to form a complete image.

Authors can make traits common or rare.

If an NFT has rare traits, it tends to be more valuable. (Scarcity)

Rarity scoring is the process of calculating how unique an NFT is within its collection.

Rarity typically comes up most when talking about digital collectibles. Non generative artwork is almost always rare.

What is a trait?

A trait is an attribute given to an object.

It could be a real world object or person. Or it could be a digital collectible.

For example, if you think of a footballer, their traits might be:

    speed:    20
    agility:  15
    strength: 12
    skill:    11

the likelyhood of finding a player with 20 for every stat is probably quite rare.

Traits do not have to be numeric. They could just be an enumeration for example.

    color: red | green | blue

Scoring rarity

We could have an NFT collection of colored shapes.

The traits could be 'color' and 'shape'.

    color: red | green | blue
    shape: square | circle

If every trait has equal rarity and the collection author just mints all the permutations we'd have 6 NFTs for sale.

Neither of which is any rarer than the other.

    red square
    green square
    blue square

    red circle
    green circle
    blue circle

If we make red twice as common as green and blue we'd have:

    red square
    red square
    green square
    blue square

    red circle
    red circle
    green circle
    blue circle

So there are 8 NFTs.

  • 2 / 8 are red square
  • 2 / 8 are red circle
  • 1 / 8 is green square
  • 1 / 8 is blue square
  • 1 / 8 is green circle
  • 1 / 8 is blue circle

We can also say 4/8 of them are red. 2/8 are green and 2/8 are blue.

So, a green or a blue shape is twice as rare as a red shape.

In other words, if all were minted at the same time and I were put in a lucky dip I'd have a 50% chance of getting a red shape but only a 25% chance of getting a blue or green shape.

So, you could say the blue and green shapes are more valuable. (Scarcity)

Where are NFT traits stored?

Traits are stored off chain in the Metadata file for an NFT.

What is Metadata?

Storing all the NFT data on the blockchain is inefficient. We typically only store the tokenId and the tokenURI on the blockchain.

The tokenURI points to a file with the rest of the data about your NFT. Hodl My Moon stores Metadata files on IPFS, which is decentralized file system.

This data includes a name, description, and an image. (The ERC721 standard fields)

It can also include a properties section with traits. (From the Enjin Metadata suggestions)

What does a trait look like in the Metadata?

There are various ways to express traits in the Metadata file, and each NFT platform may accept different representations.

One common approach is to follow the Enjin Metadata standards.

With the Enjin Metadata style, we could have something like this:

  "name": "Pop Pop",
  "description": "I'm the best Maine Coon on Hodl My Moon.",
  "image": "ipfs://bafkreidzf7zkygchjlwgqdvpqdrlv5gsfhfnkbqehkd3qpyxqepcfmvp5a",
  "properties": {
    "appetite": "huge",
    "playfulness": "very",
    "cuteness": "very"

On Hodl My Moon, our metadata typically looks like this.

  "name": "Pop Pop",
  "description": "I'm the best Maine Coon on Hodl My Moon.",
  "image": "ipfs://bafkreidzf7zkygchjlwgqdvpqdrlv5gsfhfnkbqehkd3qpyxqepcfmvp5a",
  "properties": {
    "aspectRatio": "54:65",
    "filter": "hairspray",
    "asset": {
      "uri": "ipfs://bafkreidzf7zkygchjlwgqdvpqdrlv5gsfhfnkbqehkd3qpyxqepcfmvp5a",
      "license": "commercial license",
      "mimeType": "image/jpg"

As these are the properties we add during the minting process.

Where can I see traits on common NFT platforms?


On OpenSea; items listed in the properties section in the Metadata are listed in the properties section on their website.

As you can see, OpenSea only pays attention to the Hodl NFT aspectRatio and filter traits. It ignores our asset property because its an object in itself.

One interesting thing you can see is that the hairspray filter on Hodl NFTs is somewhat rare. Only 7% of NFTs in the collection have it at this time.

Hodl My Moon

On Hodl My Moon; all traits are visible in the Metadata.

You can see them by clicking on the number next to 'Token Id' on the Token Data tab. (80 in this case)

The license trait is prominantly displayed on the user interface next to the Asset License label.

We plan to make our traits more visible on the platform soon.

Are traits the only way to score rarity?

No. Traits are most commonly associated with NFTs that some call Digital Collectibles.

These are akin to Pokemon or Magic Cards.

Getting a rare card is nice for the collector. They can brag to other collectors.

Digital artwork

With digital art NFTs, or photography NFTs, the rarity depends on how often the author mints an NFT and attaches that particular artwork.

Most authors will only attach their artwork to one NFT; so that it remains rare.

If they attach that artwork to multiple NFTs, then they are potentially devaluing the original NFT.

It's worth pointing out that plaguerised artwork can be spotted by looking at the creator address; and shouldn't devalue the original.

The same way that a Mona Lisa print doesn't devalue the orginal.

How do I score an NFT based on its rarity?

With digital collectibles you can score an NFT on rarity by working out the probability of getting it with a lucky dip.

With artwork and photography, the NFT is rare as long as the author doesn't mint too many of them.