> 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="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2FuOUVr8yNPmYDwWcdDWH9%2FScreen%20Shot%202025-10-18%20at%2020.56.53.png?alt=media&amp;token=260a07a1-4d7f-4752-b44f-b69c1cd652dd" 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="https://3820815315-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnX757myueIMa0YXG4HJl%2Fuploads%2F509oYRqxBib9OwoPpoEt%2FScreen%20Shot%202025-10-31%20at%2013.18.21.png?alt=media&amp;token=8a14196d-998d-46d6-a53b-4352ef555572" 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 %}
