# Reputation NFT Based Voting Mechanism

Snapshot is a tool for projects to create spaces where they can conduct off-chain voting on proposals. In Snapshot, any project can apply Orange's reputation NFT based voting mechanism as the space voting strategy to democratize the voting process. Snapshot users who want to vote on a proposal using this mechanism need to claim reputation NFTs on Orange to demonstrate their voting power.

## Dataset, Model and NFT

Orange supports users to generate reputation proofs in the form of verifiable credentials (VCs) and NFTs. VCs are created based on the user selected dataset and model pair, containing a reputation score. Users with scores higher than respective thresholds can claim NFTs, so their reputation can be used in more scenarios.&#x20;

Orange provides 3 NFTs, [Crypto Whale](https://app.orangeprotocol.io/nft/1), [NFT Collector](https://app.orangeprotocol.io/nft/2), and [Web3 Citizen](https://app.orangeprotocol.io/nft/3), that evaluate user reputation using various standards.&#x20;

For example, the NFT Collector is generated using datasets and model aiming to evaluate active NFT users based on their asset holdings and related actions:

Datasets:

* Timestamp of the user’s first NFT transaction
* Number of transactions on OpenSea within 180 days
* Types of ERC721 & BEP721 NFTs owned
* Value of ERC721 & BEP721 NFTs owned

Model:

* [NFT Asset Evaluation Model](https://app.orangeprotocol.io/market/mp/did:ont:AZDsadgHuep1BnxU4XKZtAMhqBtHdxxVwz/Orange/calcNFTAsset)

However, these models are for general purposes. Snapshot space owners are recommended to provide data and models to Orange and issue custom NFTs, so the accordingly generated reputation results are more tailored to their needs.&#x20;

{% hint style="info" %}
Learn more about how to provide [data](/developers/become-a-data-provider.md) & [model](/developers/become-a-model-provider.md), and how to [issue NFTs](/developers/issue-reputation-nfts.md).
{% endhint %}

## Use Reputation for Voting&#x20;

### Claim NFT

Before claiming an NFT, users first generate a VC using the associated model and dataset. The API endpoints used to fetch datasets and models are saved in the Orange system. Upon receiving a request of generating a VC, the system first invokes the model by sending a request to the model API. Next, the MP retrieves datasets from dataset APIs to complete the calculation.&#x20;

Now with a valid VC, users can claim an NFT. If the reputation score has been validated to have reached the required threshold, a mint transaction will be sent to the selected blockchain and the score will be stored as the NFT metadata.&#x20;

### Fetch Reputation Score

When a user initiates the vote action, the Snapshot server will access the reputation score stored on-chain as the NFT metadata based on the user's wallet address. This score will then be used for calculating the voting result, and be listed in the vote details.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.orangeprotocol.io/case-studies/reputation-nft-based-voting-mechanism.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
