We’re excited to announce OpenRarity, a new rarity protocol we’re building for the NFT community. In collaboration with Curio, icy.tools, OpenSea and PROOF, our goal is to provide a transparent, mathematically sound, and objective rarity calculation that is entirely open-source and reproducible by anyone.
With the explosion of new marketplaces and NFT tooling, there has been a divergence of rarity rankings across platforms which can be misleading or confusing to buyers and sellers. We believe it’s important to find a way to provide a unified, transparent, and consistent set of rarity rankings across all platforms to help build more trust in the industry through transparency.
As we researched the rarity landscape, we came across a number of issues:
Consensus and transparency are fundamental to the blockchain and Web3, and so we think there’s an opportunity to create a verifiable, consistent, and mathematically-grounded methodology for producing rarity ranks that can build more trust in the space in the long-term.
This divergence confirms the inconsistency across private rarity providers, and since each provider is using a proprietary, and sometimes bespoke, closed-source methodology, we cannot verify their implementation.
A prominent source of rank divergence is due to the incorporation of meta traits. “Meta traits” are traits that don’t exist in the “on-chain” metadata, and are created off-chain by rarity providers. For example, “Trait Count” is a synthetic trait that affects rarity ranks, and not all platforms use this. There are more complex meta traits (e.g. Deadfellaz “Rotten Count”) that make reproducing these ranks impossible without custom code, making it harder for developers to produce consistent rarity ranks.
We fully support creator-determined rankings, however, OpenRarity is currently focused on representing the purely mathematical and objective rarity determined solely by on-chain metadata.
We believe that creating a fully transparent, open-source, mathematically grounded rarity ranking algorithm can create more consistency and lead to a better creator and consumer experience in the long-term.
The core tenets of the OpenRarity methodology are:
We evaluated several different platforms and collections to understand the methodologies currently being used across different providers. While several collections have some form of customization, we found the most commonly adopted rarity function to be a rarity score that is a sum of the probability of each trait, and normalized by category distribution (Trait Normalization).
The problem here is that summing probabilities is inaccurate. Summing produces the probability of a token having a Green Hat or a Blue Hat, while multiplying produces the probability of a token having a Green Hat and a Blue Hat. We believe that the rarity of any given token is rooted in its set of traits occurring together.
Information content is an alternative way of expressing probabilities that is more well suited for assessing rarity. Think of it as a measure of how surprised someone would be upon discovering a trait combination.
Information content is used to solve lots of problems that involve something being unlikely (i.e. rare or scarce). This video shows how it was used to solve Wordle and also has an explanation of the equations, along with graphics to make it easier to understand. You can skip straight to the part on information theory if you’d like.
To view our implementation, please visit our Github page.
As a group of collectors and builders ourselves, we acknowledge that introducing a new methodology can create further divergence. We also understand the significance of uniformity, transparency, and reproducibility for the long-term viability of the rarity landscape. Our goal is to provide a new, durable approach to rarity rankings that will stand the test of time. We’re still early, and we hope that OpenRarity will become the standard for creators and developers who value objective and transparent rarity calculations.
Creators and developers alike will have a choice to adopt OpenRarity — the control is fully in your hands.
After thorough consideration, there are a few cases that OpenRarity will not initially support that are potential future enhancements:
The initial OpenRarity library is a python package, available now to download and try:
If you have any questions regarding the code or the algorithm, reach out to us on the GitHub discussions page or file a bug report with a description of the problem. We’re excited for you to try OpenRarity and look forward to hearing your feedback.
OpenRarity is an open collaboration between Curio, icy.tools (QuickNode), OpenSea, PROOF and has been vetted with creator teams representing several top-100 collections by volume. We’re excited to expand this group going forward. If you’re interested in becoming a contributor or a launch partner, drop a line on our GitHub discussions page.