What is Rarity?
Prior to OpenRarity, every NFT tool used their own closed-source algorithm to determine rarity. Most tools, including Curio, developed their rarity algorithm based on rarity.tools Ranking Rarity article on Medium, which introduced the concept of a rarity score based on summing normalized trait probabilities. Unfortunately, rarity.tools never open-sourced their algorithm or provided an API, which meant each NFT tool had to develop their own algorithm.
This led to conflicting rarity ranks for the same collections across various platforms, causing confusion for NFT buyers and sellers. This was just one of the reasons we chose to pursue an open rarity standard. To learn more about OpenRarity and what motivated the initiative, check out the announcement on Mirror:
On Curio, you’ll see two types of rarity: OpenRarity and Legacy Rarity. Moving forward, most collections will show OpenRarity. For collections that were created before OpenRarity was released and have yet to opt-in to OpenRarity, we show Legacy Rarity.
Legacy Rarity is Curio’s previous rarity formula that is based on the rarity.tools formula mentioned above. Stated briefly, this formula sums the normalized inverse probabilities of an NFT’s traits to determine the rarity score of an NFT in a collection. A trait’s inverse probability is normalized by the number of trait values available in a trait’s category.
Below is a breakdown of how we calculate the Legacy Rarity score that is presented on Curio.
Step 1: Calculate the Trait Probability Score for every trait in the collection
Step 2: Calculate the Trait Normalization Factor for every trait category in the collection
Step 3: Calculate the Trait Rarity Score for every trait in the collection
Step 4: Calculate the Legacy Rarity Score for every NFT in the collection