Skip to main content
Alias conflicts occur when the same alias is associated with multiple protocols. This guide explains how conflicts are detected, why they matter, and how to resolve them.

What is an Alias Conflict?

An alias conflict happens when a single alias string could refer to more than one protocol in the color palettes collection. This creates ambiguity in the automatic color matching system used by Dune Analytics.

Real-World Conflict Examples

The Conflict:
  • “BSC” could refer to Binance Smart Chain (now BNB Chain)
  • “BSC” could refer to Basis Cash (algorithmic stablecoin protocol)
Why It’s Problematic: When a Dune query returns data with “BSC” in the protocol field, the system cannot determine which color to apply.Current Resolution:
Basis Cash would need to use alternative aliases like "basis", "basis_cash".
The Conflict: Multiple versions of the same protocol might share aliases:
  • Uniswap V2
  • Uniswap V3
  • Uniswap V4
Resolution Strategy: Use the main protocol entry with general aliases, add version-specific aliases only when needed:
For version-specific coloring needs, users can override colors manually in their visualizations.

How Conflicts Are Detected

Automated CI Validation

The repository uses automated GitHub Actions to detect duplicate aliases on every pull request.
The CI workflow extracts all aliases and checks for duplicates using case-insensitive comparison:
How It Works:
  1. Extracts each protocol and its aliases
  2. Converts all aliases to lowercase for comparison
  3. Tracks which protocol “owns” each alias
  4. Exits with error if duplicate found

Conflict Resolution Process

1

Identify the Conflict

When CI fails, review the error message to identify:
  1. The conflicting alias: Which alias is duplicated
  2. Affected protocols: Which two (or more) protocols share it
2

Analyze Protocol Priority

Determine which protocol should get priority for the conflicting alias:
Most Common Wins:Which protocol appears more frequently in Dune Analytics queries?

High Priority

Major chains, top DEXes, widely-used protocols

Lower Priority

Niche protocols, testnets, deprecated projects
Example:
  • “BSC” → Binance Smart Chain (high usage) ✅
  • Basis Cash must use alternative alias ❌
3

Choose Resolution Strategy

Select the appropriate strategy based on the conflict:
When to Use: The alias is less important for one protocolBefore:
After:
When to Use: Both protocols need clear identificationBefore:
After:
When to Use: Same protocol on different chainsBefore:
After:
When to Use: Unclear which protocol should have priorityProcess:
  1. Comment on your PR explaining the conflict
  2. Tag maintainers for input
  3. Provide usage data if available
  4. Wait for community consensus
Example Comment:
4

Update Your Pull Request

Make the necessary changes to resolve the conflict:
CI checks will automatically re-run when you push changes. Monitor the results to confirm the conflict is resolved.
5

Verify Resolution

Confirm that:
  • CI checks now pass
  • No duplicate aliases remain
  • Both protocols have at least one unique alias
  • Aliases accurately represent the protocols
  • Changes are documented in PR description

Best Practices for Preventing Conflicts

Research Before Adding

Before creating a PR, search the existing JSON for potential conflicts:

Use Specific Aliases

When possible, use specific, unambiguous aliases:
  • ✅ "uniswap_v3" instead of just "v3"
  • ✅ "arbitrum_nova" instead of just "nova"
  • ✅ "polygon_pos" instead of just "polygon"

Include Protocol Name

Always include the full protocol name (lowercase) as an alias:

Test Against Common Abbreviations

Avoid common two-letter abbreviations that might conflict:
  • ❌ "op" - Could be Optimism or Ocean Protocol
  • ❌ "ai" - Too generic
  • ❌ "db" - Too generic
Use three+ letter aliases when possible.

Common Conflict Scenarios

Scenario: A protocol shares a name with a blockchainExample:
  • Manta Network (L1 chain)
  • Manta Protocol (privacy protocol)
Resolution:

Testing for Conflicts Locally

Before submitting your PR, you can test for conflicts locally:

Getting Help with Conflicts

If you’re unsure how to resolve a conflict:
  1. Comment on your PR describing the conflict and asking for guidance
  2. Tag maintainers for input on priority decisions
  3. Provide context about both protocols’ usage and official naming
  4. Be patient - complex conflicts may require community discussion
Conflict resolution is collaborative. Maintainers are here to help you find the best solution.