# Specific Editions Token Id(s) Based Roles

This rule type allows you to assign a specific role to your **Discord** users based on a specific token ID(s) from a particular <mark style="color:yellow;">**Editions NFT collection type**</mark> they own. Guaranteed to work with the [supported <mark style="color:$warning;">**EVM**</mark> chains](/basics/chains-marketplaces.md#supported-evm-chains). <mark style="color:red;">Didn't test on</mark> <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 valid 1/1 type [collection contract address](/appendix/getting-collection-contract-address.md) (ERC-1155 for <mark style="color:$warning;">**EVM**</mark> chains).
* In the <mark style="color:$primary;">**Token ID(s)**</mark> field, enter the ID (or IDs) of NFT(s) 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;">**Collectibles**</mark> collection type instead of the <mark style="color:yellow;">**Editions**</mark> type, no error will occur, but the rule won't work!
{% endhint %}

## <mark style="color:$primary;">Setting Up Just One ID.</mark>

In case you want to assign users a <mark style="color:yellow;">**@Role**</mark> depending on whether they have only one NFT with the specific ID, it's just as easy:

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

## <mark style="color:$primary;">Setting Up Multiple IDs.</mark>

In case you want to assign users a <mark style="color:yellow;">**@Role**</mark> based on whether they possess one of the NFTs with specific IDs, you can list them separated by commas without spaces:

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

## <mark style="color:$primary;">Setting Up a Range of IDs.</mark>

If you want to assign users a <mark style="color:yellow;">**@Role**</mark> based on whether they possess NFTs with specific IDs within a certain range, you can enter the first and last IDs:

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

## <mark style="color:$primary;">Mixing Up Multiple IDs and ID Ranges.</mark>

You can also mix and flexibly combine the last two variants like this:

{% columns %}
{% column %}
{% hint style="success" %}
10,12,14-35
{% endhint %}

{% hint style="success" %}
10,12,14-35,56,59
{% endhint %}
{% endcolumn %}

{% column %}
{% hint style="success" %}
14-35,56-59
{% endhint %}

{% hint style="success" %}
10,12,14-35,45,56-59
{% endhint %}
{% endcolumn %}
{% endcolumns %}

This allows you to use only one rule at a time to set IDs and ID ranges separately, rather than using several rules simultaneously.

{% hint style="warning" %}
If you set more than one ID, the rule will be assigned if the holder has any NFT from the list, not all of them!
{% endhint %}


---

# 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://guide.bocto.octopeeps.com/plugins/verify-roles/verification-rules/specific-editions-token-id-s-based-roles.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.
