Aside from its clean and attractive artwork, one of the other things that make the Havoc Worlds collection unique is that it is composed of 3 sub-collections — the Xenos, Male Humans, and Female Humans; each containing 3,333 items.
While interesting, this presents some additional technical challenge when trying to rank the items relative to the entire collection of 9,999 total items.
There’s quite a few NFT ranking methodologies that have already been described out there. Each one having its own pros and cons. The one that we adopted has just the right balance between the complexity of the method, and the intuitiveness of the ranking results. It’s the same approach described and used by RarityTools.
Specifically, this is how we implemented it on the Havoc Worlds collection:
Step 1: Normalization of the set of properties of each NFT
Not all the sub-collections share the same set of properties
. In particular, the Xenos collection doesn’t have the Hair
and Face
properties. In order to appropriately account for these variables in the rankings, we used placeholder property names and values for the Xenos collection:
- Hair: No Hair
- Face: Xeno Face
Additionally, we also need to account for the 3 sub-collections where each NFT belongs. So, we added an additional property named Type
for the sake of these calculations. There are only 3 possible values for the Type
property:
- Female Human
- Male Human
- Xeno
Now here’s the complete list of properties that applies to all of the 9,999 items in the collection and allows us to uniformly calculate their ranking scores:
- Type
- Background
- Weapon
- Base
- Marking
- Face
- Clothes
- Hair
- Piercing
- Head Item
- Bonus Item
Step 2: Calculation of the overall prevalence of each value for each property
In order to assign a “rarity score” for each property value, we need to first count how many times each property value appeared in the collection. Let’s call this the prevalence
of each possible value for each property.
For example, one of the weapons that can be used in a Xeno item, is the “Energy Spear”. This particular value
for the weapon
property appears in a total of 300 NFTs. Its prevalence then, is 300 out of 9,999 or 300 ÷ 9,999 = 0.03.
You can find the tabulated list of these possible values for each property, here.
Step 3: Calculation of the overall rarity score of each value for each property
The rarity score is simply the inverse of the prevalence that we’ve calculated in step 2 above. To get it, we just divide 1 by the prevalence value. Continuing with our “Energy Spear” example above, this would be: 1 ÷ 0.03 = 33.33.
You'll notice that with this formula, the lesser a property value appears in the collection, the higher its rarity score will be. This will be useful in the following steps.
Step 4: Summing up of the rarity scores of all properties of each NFT
To get the overall rarity score for an NFT item, we sum up the rarity scores of its properties.
As an example, let’s use HavocWorlds9771 since it’s one of the NFTs in this collection that has the “Energy Spear” as its weapon:
Property | Value | Total Count | Prevalence | Rarity Score |
---|---|---|---|---|
Type | Xeno | 3,333 | 0.333333 | 3.000003 |
Background | Plain Yellow | 1,204 | 0.120412 | 8.304820 |
Weapon | Energy Spear | 300 | 0.030003 | 33.330000 |
Base | Xeno Base 3 | 630 | 0.063006 | 15.871504 |
Markings | Bruise | 588 | 0.058806 | 17.005068 |
Face | Xeno Face | 3,333 | 0.333333 | 3.000003 |
Clothes | Trooper Orange | 101 | 0.010101 | 99.000099 |
Hair | No Hair | 3,333 | 0.333333 | 3.000003 |
Piercing | None | 1,936 | 0.193619 | 5.164782 |
Head Item | Jaw Fossil Gray | 95 | 0.009501 | 105.252077 |
Bonus Item | None | 9,286 | 0.928693 | 1.076782 |
Total Rarity Score: | 294.005141 |
In this example, the overall rarity score for this NFT, is 294.005141.
Step 5: Sorting of the total rarity scores of each NFT
The final step in this approach is to actually sort the total rarity scores of each NFT from highest to lowest; the highest score representing the item considered to have the rarest properties.