What is ENSRainbow?
ENSRainbow is an open-source public good designed to make the “unknown, known” by healing millions of unknown ENS (Ethereum Name Service) names. It functions as a sidecar service for ENSNode, the multichain indexer for ENSv2.
ENSRainbow builds upon work from The Graph Protocol (original ENS rainbow tables) and ENS Labs (ENS Subgraph development and maintenance). It is part of the Namehash Labs suite of tools dedicated to supporting the growth of the ENS Protocol.
The Problem: Unknown Labels
Section titled “The Problem: Unknown Labels”The ENS Registry allows subnames to be created onchain without revealing onchain what those subnames are. As a result, when querying indexed ENS names, some names include labels represented as encoded labelhashes (e.g., [428...b0b]
). These represent unknown labels and are an unfortunate user experience issue in the ENS ecosystem.
How ENSRainbow Helps
Section titled “How ENSRainbow Helps”ENSRainbow significantly improves “name healing” coverage compared to relying solely on services like the ENS Subgraph. Its goal is to heal as many ENS names as possible, minimizing the probability that end-users encounter unknown labels.
Key aspects of ENSRainbow include:
- Resolving Encoded Labelhashes: It translates cryptic labelhashes into human-readable labels.
- Sidecar to ENSNode: It integrates with ENSNode to provide deterministic name healing across time.
- Improved Healing Coverage: Aims to minimize the probability that end-users encounter unknown labels, far exceeding previous capabilities.
- Extensible and Decentralized Data Management: Uses a label set ID and label set version system for enabling any number of different label sets (collections of rainbow records) to support incremental updates across time.
Documentation Structure
Section titled “Documentation Structure”This documentation is organized into focused sections to help you find what you need quickly:
📚 Concepts
Section titled “📚 Concepts”Understanding the fundamentals - terminology, data models, and why ENSRainbow works the way it does.
🛠️ Usage
Section titled “🛠️ Usage”Practical guides for integrating ENSRainbow into your applications.
🚀 Deployment
Section titled “🚀 Deployment”Running your own ENSRainbow instance for control, privacy, or scale.
👥 Contributing
Section titled “👥 Contributing”Contributing to the project and running ENSRainbow locally for development.
Quick Start
Section titled “Quick Start”Ready to try ENSRainbow? Here are the fastest ways to get started:
Try the Public API
Section titled “Try the Public API”Start with a simple HTTP request to heal labelhashes immediately. The public API requires no setup and provides instant access to ENSRainbow’s healing capabilities.
Use the TypeScript SDK
Section titled “Use the TypeScript SDK”Get type-safe integration with built-in error handling and caching. Perfect for JavaScript/TypeScript applications.
Deploy with Docker
Section titled “Deploy with Docker”Run your own ENSRainbow instance for control, privacy, or high-volume usage. Starts quickly with test data.
Choose your path above and dive into the relevant documentation section!