Skip to main content
The Color Palettes schema defines a precise structure for protocol color entries. Understanding each property and its constraints is essential for contributing to the collection.

Top-Level Structure

The schema uses patternProperties to define protocol entries dynamically. Each protocol name serves as a key in the JSON object.
string
required
The unique identifier for a protocol, chain, or token. This is the top-level key in the JSON structure.Pattern: ^[A-Za-z0-9\\s\\-_().₮]+$Allowed Characters:
  • Uppercase and lowercase letters (A-Z, a-z)
  • Numbers (0-9)
  • Spaces
  • Hyphens (-)
  • Underscores (_)
  • Parentheses ()
  • Periods (.)
  • Special character: ₮ (Tugrik symbol)
Examples:
  • ✅ "Ethereum"
  • ✅ "Polygon zkEVM"
  • ✅ "SEI (Cosmos)"
  • ✅ "1inch"
  • ✅ "USD₮"
  • ❌ "Protocol@Name" (@ not allowed)
  • ❌ "Protocol/Name" (/ not allowed)

Protocol Object Properties

Each protocol name maps to an object with exactly two required properties: hex and aliases. No additional properties are permitted.

Hex Color Property

string
required
The hexadecimal color code representing the protocol’s primary brand color.Pattern: ^#[0-9A-Fa-f]{6}$Format Requirements:
  • Must start with #
  • Must be followed by exactly 6 characters
  • Characters must be hexadecimal (0-9, A-F, a-f)
  • Both uppercase and lowercase are accepted
Valid Examples:
Invalid Examples:
The schema does not support alpha channels (8-character hex codes). All colors must be fully opaque 6-character RGB hex codes.

Aliases Property

array
required
An array of alternative names and variations used to match protocol names in Dune Analytics queries.Array Requirements:
  • Must contain at least 1 item (minItems: 1)
  • All items must be unique (uniqueItems: true)
  • Each item must be a string matching the alias pattern
Item Pattern: ^[a-zA-Z0-9_\\s.₮-]+$Allowed Characters (per alias):
  • Uppercase and lowercase letters (A-Z, a-z)
  • Numbers (0-9)
  • Underscores (_)
  • Spaces
  • Periods (.)
  • Special character: ₮ (Tugrik symbol)
  • Hyphens (-)
Examples:

Complete Entry Examples

Blockchain Networks

DeFi Protocols

Stablecoins

Special Cases

Property Constraints Summary

object
The schema explicitly sets "additionalProperties": false at both the protocol object level and the root level. This means:
  • You cannot add extra fields to a protocol entry
  • You cannot add top-level properties beyond protocol names
  • Any additional properties will cause validation to fail

Alias Best Practices

Add all commonly used names and abbreviations for the protocol:
Aliases are matched case-insensitively in Dune, but convention is to use lowercase:
Ensure your aliases don’t overlap with other protocols. The CI system will catch conflicts:
For protocols with multiple versions, include version-specific aliases:

Schema Enforcement

The schema is enforced through automated validation in the CI pipeline. Every pull request is checked to ensure:
  1. Valid JSON syntax - The file must be properly formatted JSON
  2. Schema compliance - All entries match the defined patterns and requirements
  3. Required fields - Both hex and aliases are present for every protocol
  4. Format validation - Hex codes and aliases match their respective patterns
  5. No extra properties - Only defined properties are present
Use a JSON schema validator locally before submitting your contribution to catch errors early. Most modern IDEs support JSON schema validation automatically.