Address Tags Registry
The Address Tags Registry maps a(address, chain) pair to a short descriptive tag string. It is the primary source for “what is this contract?” labels shown in wallets and explorers.
Item Schema
Each registered item encodes the following columns:Subgraph Access
The registry is indexed by an Envio-hosted subgraph (private deployment). Query pattern:- Addresses must be lowercase in
wherefilters - Filter by
chain_idinpropsto narrow to a specific network - Items with
ClearingRequestedare still active - include them in “active tags” queries
Resolution Rules
- One tag per address per chain. A second registration for the same
(address, chainId)pair triggers a conflict; the curated item with more stake backing is preferred. - ATQ vs ATR conflict: If an address has a tag from both the ATQ meta-registry and the Address Tags Registry, the ATR entry takes priority (it is individually curated and challenged).
Tokens Registry
The Tokens Registry curates ERC-20 token metadata. It is the source for Kleros-maintained token lists used by Uniswap, MetaMask, Ledger, and others.Item Schema
Subgraph Access
Same Envio-hosted subgraph pattern as ATR. Query byregistryAddress for the Tokens registry contract.
Token List Output
The Tokens registry generates a standard Token List JSON at build time. Consumers fetch the static file rather than querying the subgraph directly:CDN Registry (Contract Domain Names)
The CDN Registry maps contract addresses to web domains. It provides a reverse-lookup: given a contract address, find the project’s authoritative domain.Item Schema
Subgraph Access
Same Envio-hosted subgraph pattern. CDN is smaller than ATR; the full set can typically be fetched in a single query.Use Cases
- Wallet phishing detection: check whether the domain a dApp claims matches the CDN entry for the contract being called
- Block explorer “verified project” badges
- Reverse DNS resolution for contract addresses
ATQ Registry (Address Tag Query)
The ATQ registry is a meta-registry: instead of curating individual address tags, it curates NPM packages that each generate batches of address tags when run. This allows large-scale tag generation (thousands of addresses) without requiring individual curation submissions per address.Item Schema
Workflow
- A data provider publishes an NPM package that exports a function returning
Array<{address, chainId, tag, ...}> - They submit the package to the ATQ registry via Curate
- Consumers clone all registered packages, run them, and merge the results into a combined address tag dataset
- The merged dataset is cached and served statically
Data Model
Data Models
Full normalized data models for each registry:curate_address_tag
curate_token
curate_cdn
curate_atq_package
Consumers
The following products and services consume data from Kleros registries:
Consumers typically fetch a pre-built static export (JSON file) rather than querying the subgraph at runtime, to avoid exposing API keys in client-side code.
Architecture
Level 1 - System Context
Level 2 - Container View
Known Limitations
Adding Data to a Registry
To contribute address tags, tokens, or domain names:- Go to curate.kleros.io and select the registry
- Review the registry policy (linked from the registry page)
- Submit your item and pay the deposit
- Wait for the challenge period to expire (typically 3–7 days)
- Create an NPM package exporting an async function returning an array of
{address, chainId, tag}objects - Publish it to NPM
- Register it in the ATQ registry on Curate
Contact the Kleros team via Discord or
integrations@kleros.io if you need registry contract addresses, Envio subgraph endpoints, or assistance with bulk ATQ submissions.