Top-Level Structure
The schema usespatternProperties 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)
- ✅
"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: Invalid Examples:
^#[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
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
^[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 (-)
Complete Entry Examples
Blockchain Networks
DeFi Protocols
Stablecoins
Special Cases
Property Constraints Summary
object
Alias Best Practices
Include Common Variations
Include Common Variations
Add all commonly used names and abbreviations for the protocol:
Use Lowercase for Matching
Use Lowercase for Matching
Aliases are matched case-insensitively in Dune, but convention is to use lowercase:
Avoid Conflicts
Avoid Conflicts
Ensure your aliases don’t overlap with other protocols. The CI system will catch conflicts:
Include Version Variations
Include Version Variations
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:- Valid JSON syntax - The file must be properly formatted JSON
- Schema compliance - All entries match the defined patterns and requirements
- Required fields - Both
hexandaliasesare present for every protocol - Format validation - Hex codes and aliases match their respective patterns
- No extra properties - Only defined properties are present