> For the complete documentation index, see [llms.txt](https://guide.bocto.octopeeps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.bocto.octopeeps.com/plugins/verify-roles/verification-rules/collectibles-quantity-based-roles.md).

# Collectibles Quantity-Based Roles

This rule type allows you to assign a specific role to your **Discord** users based on a certain number of NFTs from a particular <mark style="color:yellow;">**Collectibles NFT collection type**</mark> they own. Works for [supported <mark style="color:$warning;">**EVM**</mark> chains](/basics/chains-marketplaces.md#supported-evm-chains) and <mark style="color:$warning;">**Solana**</mark>.

## <mark style="color:$primary;">Explanation of the Fields.</mark>

* In the <mark style="color:$primary;">**Rule Name**</mark> field, enter your desired rule name.
* In the <mark style="color:$primary;">**Blockchain**</mark> dropdown, select the blockchain where your collection contract is deployed.
* In the <mark style="color:$primary;">**Contract**</mark> field, enter the [collection contract address](/appendix/getting-collection-contract-address.md).
* In the <mark style="color:$primary;">**Minimum Balance**</mark> field, enter the minimum number of NFTs a user should hold to get the role.
* In the <mark style="color:$primary;">**Maximum Balance**</mark> field, enter the minimum number of NFTs a user should hold to get the role.
* In the <mark style="color:$primary;">**Role**</mark> dropdown, select the prepared <mark style="color:yellow;">**@Role**</mark> you wish to assign to the holders.

{% hint style="danger" %}
Be especially careful when setting the <mark style="color:$primary;">**Contract**</mark> field for <mark style="color:$warning;">**Solana**</mark> collections! Check this [link](/appendix/getting-collection-contract-address.md) before starting!
{% endhint %}

{% hint style="danger" %}
If you set up the <mark style="color:yellow;">**Editions**</mark> collection type instead of the <mark style="color:yellow;">**Collectibles**</mark> type, no error will occur, but the rule won't work!
{% endhint %}

## <mark style="color:$primary;">Setting Up Minimum and Maximum Limited Grades.</mark>

<figure><img src="/files/kYZIRYDStFgMsUzhtz3a" alt=""><figcaption></figcaption></figure>

## <mark style="color:$primary;">Setting Up Minimum Only Limited Grades.</mark>

As far as the <mark style="color:$primary;">**Maximum Balance**</mark> field is optional, you can use it to keep the upper restriction blank for the latest grade:

<figure><img src="/files/va3cZ23iIUg9209zV6xG" alt=""><figcaption></figcaption></figure>

{% hint style="info" %} <mark style="color:$danger;">**Note:**</mark> To prevent rule conflicts when creating holder grades, make sure that each time you set the current <mark style="color:$primary;">**Minimum Balance**</mark>, it is exactly +1 higher than the previous range's <mark style="color:$primary;">**Maximum Balance**</mark>.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://guide.bocto.octopeeps.com/plugins/verify-roles/verification-rules/collectibles-quantity-based-roles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
