Overview
This loyalty rule allows admins to reward users based on their NFT holdings across supported blockchain networks. The rule enables the aggregation of token balances across multiple collections and defines a structured reward system based on holding requirements.
Delegated Wallets and Cold Storage
We support combining token holdings from delegated wallets using Delegate Cash. When your connected hot wallet has a full-wallet delegation from a cold wallet on Ethereum mainnet, NFTs held by the delegated cold wallet are aggregated with the hot wallet when evaluating this rule.We use Delegate Cash to resolve delegations and combine holdings for eligibility and rewards.
Scope: Delegation-based holding checks apply only to the “Hold an NFT” rule. No other loyalty rules use delegated wallet holdings.
Rule Configuration Fields
Contract Address
- Collection Contract Address: Enter one or more contract addresses representing the collections.
- Network: Select the blockchain network where the contract is deployed.
- Add New Collection: Allows adding multiple collections for token aggregation.
- Important Note: Token holdings from different collections will be aggregated to determine total holdings when more than one collection is added.
Reward
- Type of Reward: Choose between “Points” or “Multiplier”.
- Points: Users will get the defined no of points based on their holdings.
- Multiplier: Users will get the multiplier of the defined range based on their holdings.
- Reward Per Token: Toggle on to reward users per token held.
- Required Hold Tokens Range: Define a range of tokens that need to be held for eligibility.
- Points to Reward: Define the number of points assigned for the specified holding range.
- Add New Range: Allows defining multiple token holding ranges with corresponding rewards.
- Only reward existing users: If enabled this will limit rewards to users already in the loyalty program instead of all eligible wallets.
Update Cadence
The Update Cadence field is crucial as it defines:- Reward Frequency: Determines how often the user will receive rewards (e.g., Daily, Weekly, Monthly).
- Holding Verification: Specifies when the system will check the token holdings to determine eligibility.
- Relation to Start Time: The first verification of token holdings and reward distribution will begin at the defined Start Time. Subsequent verifications and rewards will follow the selected cadence (e.g., if the cadence is set to “Daily,” the system will check and reward holdings every 24 hours from the Start Time).
Custom Settings
- Only reward users that bought on native marketplace
- Only reward users with unlisted tokens
- Skip the multiplier for this rule
- Only reward single token ownership per collection
-
Add API to get dynamic rewards for each token: Configure an external API endpoint to provide custom reward amounts for individual tokens. You’ll need to provide:
- Custom Rewards URL: Your API endpoint URL that returns paginated reward data
- API Key: Authentication key sent in the
x-api-keyheader
tokenIdandreward(orpoints/bonus) fields. The API endpoint must be accessible from Snag’s servers and handle pagination through anextfield. See Custom Rewards API for detailed API format requirements and examples. This feature works for both ERC721 and ERC1155 token standards. Use the numeric token ID (e.g.,123,456for ERC721 or1,2,3for ERC1155). When multiple collections are configured, the same token ID across different collections will all match the custom reward for that token ID. Interaction with Token Hold Ranges: When custom rewards are enabled alongside token hold ranges, the system calculates rewards per token:- Tokens with custom rewards use their specified reward amount from the API
- Tokens without custom rewards fall back to the range amount for the user’s total token count
- The final reward is the sum of all individual token rewards
1,2, and3, and their total count (3) falls within range 1-5 with a range reward of 10 points:- Token
1has custom reward 50 from API → uses 50 points - Token
2has custom reward 100 from API → uses 100 points - Token
3has no custom reward → uses 10 points (range fallback) - Total reward: 160 points (50 + 100 + 10)
-
Add custom reward for each token: Upload a CSV file directly through the UI to assign custom reward amounts for specific tokens. The CSV file must include exactly two columns:
tokenIdandreward. Both columns are required, and values must be positive numbers. The file is validated before upload to ensure proper formatting. This feature works for both ERC721 and ERC1155 token standards. Use the numeric token ID (e.g.,123,456for ERC721 or1,2,3for ERC1155). When multiple collections are configured, the same token ID across different collections will all match the custom reward for that token ID. Example CSV format:Interaction with Token Hold Ranges: When custom rewards are enabled alongside token hold ranges, the system calculates rewards per token:- Tokens with custom rewards use their specified reward amount
- Tokens without custom rewards fall back to the range amount for the user’s total token count
- The final reward is the sum of all individual token rewards
1,2, and3, and their total count (3) falls within range 1-5 with a range reward of 10 points:- Token
1has custom reward 50 → uses 50 points - Token
2has custom reward 100 → uses 100 points - Token
3has no custom reward → uses 10 points (range fallback) - Total reward: 160 points (50 + 100 + 10)
- Only reward users that have paid full royalty
- Only reward users that have verified Twitter accounts
Call to Action (Optional)
This will show a call to action in our loyalty rule.- Link: Provide a URL for users to take further action.
- Button Text: Define the button label.