NFT Rarity Made Standard, Objective & Open.

Read Announcement
token = Token.from_erc721(
   contract_address="0xa0d90s..",
   token_id=1,
   metadata_dict={"hat": "cap"}
)

collection = Collection(
  name="Rarity", tokens=[token]
)

# Generate ranks and scores for a collection
ranked_tokens = RarityRanker.rank_collection(
   collection=collection
)

Rarity doesn’t have to be confusing & opaque

Rarity calculations have historically been produced in closed sourced environments & can diverge across publishers. There’s been no single source of truth, so both NFT creators & collectors suffer. We believe there’s a better way.

OpenRarity provides a verifiable, consistent & mathematically-grounded approach to rarity calculations.

Built through Community

This experience was built by the NFT community for the NFT community. Marketplaces, insights tools, creators & NFT builders shaped the technology & design of OpenRarity.

Frequently Asked Questions

Q.
What is OpenRarity?

OpenRarity is a community-built project that aims to provide a transparent, mathematically sound rarity calculation that is entirely open-source and reproducible by anyone. The goal is to bring more transparency to a previously opaque and confusing space.

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.

Q.
What problem is OpenRarity solving?

1. The industry conflates the concepts of rarity (mathematical scarcity of attributes),  creator tiers, and market value that assign value to attributes or items independent of scarcity. While we believe each of these is important, they should be separated.

2. Rarity rankings today are produced by closed-source code and based on “meta traits” that don’t exist “on-chain” (e.g. Trait Count). This creates divergence across publishers (tools, marketplaces, etc). There is no single source of truth.

3. Creators are often charged for rarity rankings by tool providers which doesn’t provide a fair playing field for smaller budget projects.

Q.
What are the principles behind OpenRarity?

1. It must be easy for creators, consumers, and developers to understand

2. It must be objective and grounded in mathematical principles (open-source, introspectable)

3. It must be easy to recalculate as the dataset changes (new mints, metadata typos, mutable attributes)

4. It must provide consistent rarity ranks across all publishers

Q.
How should our community take into account rarity?

We believe that community matters most for creators & collectors. To be clear, we are not advocating for NFT creators & collectors to optimize for rarity rankings.

But, rarity is a factor that many people in the NFT ecosystem look at to make transaction decisions, to understand how collections are organized & to understand how to navigate new projects. And, for too long, existing rarity tools and calculations have made this process opaque, confusing & expensive  (especially for emerging creators).

We hope that OpenRarity starts the process of demystifying & standardizing rarity calculations and kickstarts a broader conversation about the factors that matter when participating within the NFT space.

Q.
What is the OpenRarity methodology?

Information content is a way of expressing probabilities better suited for assessing rarity and is the approach we’ve chosen for OpenRarity. Think of it as a measure of how surprised someone would be upon discovering a trait combination.

Key advantages:

1. Probabilities of 1 (i.e. every single token has the Trait) convey no rarity and add zero information to the score.

2. As the probability approaches zero (i.e. the Trait becomes rarer), the information content continues to rise with no bound.

3. It is valid to perform linear operations (e.g. addition or arithmetic mean) on information, but not on raw probabilities.

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.

Q.
Why did we pick this methodology?

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.

Q.
Why did we exclude “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. Ultimately we think this would be best served by updating the collection metadata.

Q.
What is currently out of scope for OpenRarity?
  • Number-based traits; will be addressed in a later iteration.
  • Conditional probabilities of traits (e.g. probability of Red hat given that the color of the shirt is already known).
  • Support for ERC-1555 collections.
  • Multichain support.
Q.
How will OpenRarity be improved and updated?

We plan to make improvements to the OpenRarity methodology based on feedback from the community. Our first improvement is to add support numeric traits. We’re also investigating OpenRarity as a multichain standard once we launch on Ethereum.

Q.
How can we give feedback for OpenRarity?

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.

Q.
Why does OpenRarity have different ranks to other tools?

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.