Back to Guides

NFT Roles Setup

Automatically assign Discord roles to users based on their NFT holdings from specific Cardano collections.

Prerequisites

  • Administrator permissions in your Discord server
  • AdaShield Bot added to your server
  • Users must have linked their wallet using /link-wallet
  • NFT collection policy ID(s) you want to use for role assignment
  • Discord roles already created that you want to assign

Setup Instructions

Step 1: Add Policy IDs

First, add the NFT collection policy IDs that you want to use for role assignments:

/nft-roles add-policy [policy-id]

You can add multiple policy IDs by running this command for each collection you want to track.

📝 Finding Policy IDs: You can find policy IDs on marketplaces like JPG Store or pool.pm by viewing the collection details. Policy IDs are 56-character hexadecimal strings.

Step 2: Create Role Configuration

After adding at least one policy ID, configure which role to assign to NFT holders:

/nft-roles add

This will start an interactive setup where you'll configure:

  • Discord Role: Which role to assign to qualifying users
  • Policy ID: Which NFT collection to check (from your added policies)
  • Minimum Holdings: How many NFTs a user must hold (1, 2, 3, 5, 10, 25, 50, 100, 250, or 500)

💡 Tip: You can create multiple role configurations for the same policy ID with different minimum holdings (e.g., "Holder" role for 1+ NFTs, "Whale" role for 50+ NFTs).

Step 3: Users Link Their Wallets

Before roles can be checked, users must link their Cardano wallet to their Discord account:

🔗 Users should visit:

https://adashield.vercel.app/link

Alternatively, users can run /link-wallet in Discord for instructions.

Step 4: Check User Roles

Once users have linked their wallets, you can check their NFT holdings and automatically assign or remove roles:

/check-role [user]

This command will:

  • Fetch the user&apo;s NFT holdings from their linked wallet
  • Check against all configured NFT role requirements
  • Add roles if they meet the requirements
  • Remove roles if they no longer meet the requirements

Step 5: Verify Configuration

View all your configured NFT role assignments to ensure everything is set up correctly:

/nft-roles status

Management Commands

# View all NFT role configurations
/nft-roles status
# Add an NFT role configuration
/nft-roles add
# Remove an NFT role configuration
/nft-roles remove
# Add a policy ID
/nft-roles add-policy
# Remove a policy ID (requires at least 2 policy IDs)
/nft-roles remove-policy
# Check role assignment for a specific user
/check-role [@user]
# Check your own role eligibility
/check-role

Common Use Cases

Exclusive Holder Channels

Grant access to special channels only for users who hold at least 1 NFT from your collection.

Tiered Community Access

Create multiple tiers (e.g., "Holder" for 1+ NFTs, "Collector" for 5+ NFTs, "Whale" for 50+ NFTs) with different channel access and permissions.

Multi-Collection Communities

Configure different roles for different NFT collections, allowing you to manage a multi-project community from one Discord server.

Governance Voting

Automatically assign voting roles based on NFT holdings to ensure only legitimate holders can participate in governance decisions.

Important Notes

  • Users must run /link-wallet and complete the linking process through the provided link before their NFT holdings can be checked