Skip to main content
Delegate.cash is an on-chain registry that lets users delegate rights from one wallet to another without moving assets. Snag integrates with delegate.cash so users can prove ownership of NFTs in cold storage while interacting with your loyalty program using a hot wallet.

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
When the delegated-to wallet authenticates with your loyalty program, Snag checks the delegate.cash registry and combines the holdings from both wallets for rule evaluation.

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.
If users don’t see their delegated wallet holdings after enabling this feature, they need to re-authenticate (sign out and sign back in) to trigger the delegation indexing.

Delegation vs user groups

Snag offers two ways to combine wallet holdings: delegate.cash and user groups. These work differently:
FeatureDelegate.cashUser Groups
RelationshipOne-way (delegator → delegatee)Bi-directional (all wallets equal)
ControlOnly the delegated-to wallet controls the poolAll wallets in the group have equal control
SetupOn-chain via delegate.cashIn-app via Snag
Use caseCold wallet securityMultiple personal wallets
Points sharingNo point balance sharingFull point balance aggregation
Rule scopeToken hold rules onlyAll 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
This differs from user groups where all connected wallets are treated as equals and share the same identity, points balance, and social connections.
Use delegate.cash when users want to keep valuable NFTs in cold storage while participating in your loyalty program. Use user groups when users simply have multiple active wallets they want to combine.

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

Current limitations:
  • Full-wallet delegations only: Collection-level or token-level delegations are not supported. The delegation must grant full wallet rights.
  • Ethereum mainnet only: Only delegations on Ethereum mainnet are tracked. Delegations on other networks (Polygon, Arbitrum, etc.) are ignored.
  • Token hold rules only: Delegation aggregation only applies to NFT holding rules, not to other rule types like social connections or check-ins.

How it works technically

When delegate.cash is enabled for your website:
  1. 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
  2. Delegation storage: Valid delegations are stored in the user’s metadata (delegatedTo and delegationsFrom relationships)
  3. 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)
  4. 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

  • 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
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.
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.