Overview
Summary
This article explains how beaconcha.in assigns human‑readable tags to Ethereum validators. Tags make it easier to understand which validators belong to well‑known entities (e.g., Lido, Rocket Pool), as well as large independent operators (“whales”). It covers data sources, the step‑by‑step tagging pipeline, how often tagging runs, and how conflicts are resolved. Shout‑out: A big thank‑you to Hildobby for maintaining a community dataset of validator/entity mappings used by many in the ecosystem.What is a validator tag?
A validator tag is a short, human-readable label associated with one or more validators. Tags help you:- Attribute validator performance to entities via their BeaconScore® benchmark value.
- Understand decentralization by operator/entity.
- Identify large clusters of validators controlled by the same address.
CoinbaseorBinanceLido,Lido Simple DVT, orLido CSM(Lido modules)Rocket Pool(Rocket Pool validators)Whale_0x1234ab(an independent cluster labeled by address prefix)
High‑level pipeline
At a high level, the tagging module:- Imports community tags from the Hildobby dataset
- Queries on‑chain contracts to detect Lido validators (Curated v1 and v2, Simple DVT, Community Staking)
- Queries ether.fi’s on‑chain contracts to detect ether.fi validators
- Queries on‑chain contracts to detect Rocket Pool validators
- For any remaining untagged validators, clusters by withdrawal address and assigns whale tags if the cluster balance reaches 320 ETH
- For any remaining untagged validators, clusters by deposit (funding) address and assigns whale tags if the cluster balance reaches 320 ETH
- Applies operator self-reports
- Applies manual overrides
Step‑by‑step details
1) Community tags via Hildobby- Source: Hildobby’s public validator/entity dataset (community maintained).
- Matching: The dataset contains mappings of validator indices or pubkeys to known entities. We import those tags directly.
- Why first? Community‑maintained mappings often include entities that are not easily inferred from on‑chain structures.
- Note: We retain Hildobby’s naming semantics and apply them as the baseline when no higher‑certainty on‑chain inference is available.
Lido Curated Module v1Lido Curated Module v2Lido SimpleDVT ModuleLido Community Staking Module
- Enumerate the validator set exposed by each module’s contracts
- Read Curated Module v2 operator names from its on-chain MetaRegistry
- Map each validator pubkey to the appropriate tag:
Lido,Lido Simple DVT, orLido CSM - Prefer these determinations over community tags when a contract says a validator belongs to Lido
- Read the validator registration events of ether.fi’s staking contracts
- Look up each validator’s node operator and its name in ether.fi’s official operator list
- Tag those validators as
ether.fi, with the node operator as the sub-entity, replacing the ether.fi tags from the community dataset
- Enumerate active and historical minipools
- Retrieve associated validator pubkeys
- Tag those validators as
Rocket Pool, with the node address as the sub-entity
- Cluster key: withdrawal address
- Cluster size metric: sum of the current balances of the validators in the cluster
- Threshold:
>= 320 ETH(equivalent to at least 10 validators at 32 ETH each) - Tag format:
Whale_0x1234ab, where1234abare the first six hex characters of the withdrawal address in lowercase, for readability
- Cluster key: deposit/funding (from) address of the validator’s first deposit
- Cluster size metric: sum of the current balances of the validators funded by that address, where validators with 0x00 credentials count as 0 ETH
- Threshold:
>= 320 ETH - Tag format:
Whale_0x1234ab
- Each reported validator is tagged with the entity (and the sub-entity given in the report), even if an earlier step tagged it differently
- Validators that earlier steps attributed to the entity, but that are not in its report, lose that tag
Tag priority and conflict resolution
When a validator qualifies for multiple tags, we follow this precedence (from highest to lowest priority):- Manual overrides
- Operator self-reports
- On‑chain entity detection (Lido modules, ether.fi, Rocket Pool)
- Community dataset (Hildobby)
- Inferred whale clustering by withdrawal address
- Inferred whale clustering by deposit address
Schedule and freshness
The tagging system runs on a fixed UTC schedule:- Daily at 10:00 UTC: Full tagging pipeline (all steps) runs in order, followed by a precompute job that updates the entity data dashboards.
- Hourly (other than 10:00): Precompute only. This ensures UI remains fast and consistent even between daily runs.
Examples
- A validator included in either version of Lido’s Curated module contracts will be tagged
Lido, with its node operator recorded as the sub-entity. - An independent operator running 15 validators with the same withdrawal address will be tagged
Whale_0xabcdef, whereabcdefare the first six hex characters of their withdrawal address. - A cluster of 8 validators with 32 ETH each, funded from address
0xF..., will not get a whale tag because the balance threshold (>= 320 ETH) is not met.
How to request a correction
If you believe a tag is incorrect:- Open an issue in the beaconcha.in support channel and include validator indices or pubkeys, plus the correct attribution if known.
- For on‑chain attributions (Lido/Rocket Pool), please provide the relevant contract references or transaction links.
Frequently asked questions
- Why does a whale tag use a short address prefix?
- For readability in the UI. The underlying full address is retained for accuracy.
- Will small operators get whale tags?
- No. Only clusters with a total balance of at least 320 ETH (
>= 320 ETH) qualify.
- No. Only clusters with a total balance of at least 320 ETH (
- When are tags assigned for new validators?
- Tags refresh daily with new data and may evolve if on‑chain ownership changes or the community dataset is updated.
- Does tagging affect rewards or protocol behavior?
- No. Tagging is a UI attribution feature only; it does not interact with consensus or execution layer incentives.

