Glossary
This page defines the core terminology used throughout the ENSRainbow codebase and documentation. If you notice an unfamiliar word elsewhere in the docs, come back to this page – it is probably defined here.
A single component of an ENS name (characters between two dots). Can contain any valid UTF-8 string – it may or may not be ENS-normalised.
Example: vitalik, 😺, example.eth has labels example & eth
Labelhash
Section titled “Labelhash”keccak256 hash of the UTF-8 bytes of a label (no pre-normalisation), represented as a 0x-prefixed 64-digit lowercase hex string (32 bytes).
Example: 0xaf2caa…03cc
The act of converting a labelhash back to its original label via a rainbow table lookup.
Example: heal('0xaf2c…') → 'vitalik'
Rainbow Record
Section titled “Rainbow Record”An entry mapping a labelhash ➜ label. Persisted as a LevelDB key (labelhash bytes) and UTF-8 value (see Data Model).
Label Set
Section titled “Label Set”A logical collection of rainbow records that share a common source and versioning scheme. Each label set represents a dataset snapshot that enables deterministic healing across time. Label sets are identified by a labelSetId and labelSetVersion.
Example: id: subgraph, version: 0
Label Set ID
Section titled “Label Set ID”String (1-50 chars) consisting of lowercase ASCII letters and hyphens that names a label set.
Example: subgraph, discovery-a
Label Set Version
Section titled “Label Set Version”Non-negative integer that monotonically increases when new labelhash-to-label mappings are added to a label set. Each version contains incremental additions since the previous version. Version 0 is always the initial dataset. Enables deterministic healing across time by allowing clients to pin to specific versions for reproducible results.
Example: 0, 1, 2
Healable Count
Section titled “Healable Count”Total number of labels that can currently be healed by the running server. Exposed via /count.
Example: 7 892 001
Status Code
Section titled “Status Code”High-level outcome of an API call – either success or error.
Error Code
Section titled “Error Code”HTTP-style numeric code describing the error (400, 404, 500).
Rainbow Table
Section titled “Rainbow Table”A pre-computed set of labelhash → label pairs used for healing.
Ingestion
Section titled “Ingestion”One-off process that streams a .ensrainbow snapshot into LevelDB.
Example: pnpm run ingest subgraph_0.ensrainbow
System Key
Section titled “System Key”Special LevelDB key (length ≠ 32 bytes) storing metadata such as schema version, label set id, etc.
Example: 0xff 0xff 0xff 0xfd
ENS Normalization
Section titled “ENS Normalization”The ENSIP-15 canonicalisation process; ENSRainbow stores labels as-is, even if not normalised.
Related Documentation
Section titled “Related Documentation”- Label Sets & Versioning - Understanding the versioning system
- Data Model - How data is stored and organized
- TypeScript Interfaces - Type definitions for APIs