How it works
When a user sets up a delegation on delegate.cash, they create an on-chain record that says “Wallet A delegates to Wallet B.” In Snag’s context:- Delegating wallet (cold wallet): The wallet holding valuable assets like NFTs
- Delegated-to wallet (hot wallet): The wallet the user connects to your loyalty program
Enabling delegate.cash
To enable delegate.cash support for your loyalty program:1
Enable the toggle in Admin
Navigate to Customization > Platform Settings in your Snag Admin dashboard and enable the delegate.cash integration toggle.
2
Users authenticate
Once enabled, Snag indexes delegations for users when they authenticate. The system checks the delegate.cash on-chain registry for any delegations pointing to the user’s connected wallet.
3
Holdings are combined
Assets from delegated wallets are automatically combined with the user’s connected wallet for eligible loyalty rules.
Delegation vs user groups
Snag offers two ways to combine wallet holdings: delegate.cash and user groups. These work differently:| Feature | Delegate.cash | User Groups |
|---|---|---|
| Relationship | One-way (delegator → delegatee) | Bi-directional (all wallets equal) |
| Control | Only the delegated-to wallet controls the pool | All wallets in the group have equal control |
| Setup | On-chain via delegate.cash | In-app via Snag |
| Use case | Cold wallet security | Multiple personal wallets |
| Points sharing | No point balance sharing | Full point balance aggregation |
| Rule scope | Token hold rules only | All loyalty rules |
One-way delegation explained
With delegate.cash, the delegation is one-way:- The delegated-to wallet (hot wallet) can claim rewards based on combined holdings
- The delegating wallet (cold wallet) cannot independently claim rewards through this delegation
- If the cold wallet owner wants to interact directly, they must connect that wallet separately
Supported rules
Delegate.cash integration currently applies to:- Hold an NFT: NFT holdings from delegated cold wallets are aggregated with the hot wallet when evaluating token hold rules
Delegation-based holding checks apply only to the “Hold an NFT” rule. Other loyalty rules do not use delegated wallet holdings.
Limitations
How it works technically
When delegate.cash is enabled for your website:- On authentication: When a user connects their wallet and authenticates, Snag queries the delegate.cash registry for any delegations where the user’s wallet is the delegatee
- Delegation storage: Valid delegations are stored in the user’s metadata (
delegatedToanddelegationsFromrelationships) - Rule evaluation: When evaluating token hold rules, the system combines holdings from:
- The user’s connected wallet
- Any wallets that have delegated to the user’s wallet
- The wallet the user has delegated to (if applicable)
- On-chain sync: Delegation data is synced from the on-chain state, so changes made on delegate.cash are reflected after the user re-authenticates
User experience
For end users with delegate.cash set up:1
Set up delegation on delegate.cash
Users visit delegate.xyz and create a full-wallet delegation from their cold wallet to their hot wallet.
2
Connect hot wallet to your loyalty program
Users connect their hot wallet (the delegated-to wallet) to your loyalty site.
3
Automatic aggregation
Snag automatically detects the delegation and combines NFT holdings from both wallets when evaluating token hold rules.
Users do not need to connect their cold wallet directly. The delegation on delegate.cash is sufficient for Snag to recognize and aggregate their holdings.
Troubleshooting
Delegated holdings not appearing
Delegated holdings not appearing
- Re-authenticate: Have the user sign out and sign back in to trigger delegation indexing
- Check delegation type: Ensure the delegation is a full-wallet delegation, not collection or token-level
- Verify network: Confirm the delegation was created on Ethereum mainnet
- Check delegate.cash: Verify the delegation is active on delegate.xyz
Delegation not syncing after changes
Delegation not syncing after changes
Changes to delegations on delegate.cash require the user to re-authenticate for Snag to pick up the updates. The system syncs delegation state at authentication time.
Holdings showing for wrong wallet
Holdings showing for wrong wallet
With one-way delegation, only the delegated-to wallet (hot wallet) receives the aggregated holdings. The delegating wallet (cold wallet) will not see combined holdings unless it’s also connected and has its own delegations.