An in-depth guide to the validator tagging module, explaining how beaconcha.in attributes validators to entities (including whales) using data sources and on-chain lookups.
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.
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.
2) Lido validators from on‑chain contractsWe identify validators belonging to Lido by reading their on‑chain registry data. This includes:
Lido Curated Module
Lido SimpleDVT Module
Lido Community Staking Module
Implementation outline:
Enumerate the validator set exposed by each module’s contracts
Map each validator pubkey to the appropriate tag, typically Lido, Lido (SimpleDVT), or Lido (CSM)
Prefer these determinations over community tags when a contract says a validator belongs to Lido
Rationale: On‑chain state is authoritative for Lido’s modules and provides the highest‑certainty attribution.3) Rocket Pool validators from on‑chain contractsWe detect Rocket Pool validators by reading the relevant Rocket Pool contracts that register or imply validator ownership (e.g., minipools and their validator keys/addresses).Implementation outline:
Enumerate active and historical minipools
Retrieve associated validator pubkeys
Tag those validators as RocketPool
Rationale: Like Lido, Rocket Pool’s on‑chain structures allow for accurate, direct inference of validator membership.4) Whale tagging by withdrawal address (> 320 ETH)For remaining untagged validators, we infer likely common control by clustering validators sharing the same withdrawal credentials/address.
Cluster key: withdrawal address
Cluster size metric: total effective balance of validators in the cluster
Threshold: > 320 ETH (equivalent to more than 10 full validators at 32 ETH each)
Tag format: Whale_0x1234 where 0x1234 is a short prefix of the withdrawal address for readability
Operators often consolidate withdrawals to a single address, making it a strong signal of common ownership/control.5) Whale tagging by deposit (funding) address (> 320 ETH)For any still‑untagged validators, we cluster by the funding address that sent the deposit transaction(s).
Cluster key: deposit/funding (from) address
Cluster size metric: total effective balance of validators funded by that address
Threshold: > 320 ETH
Tag format: Whale_0x1234
Large operators often fund many deposits from a single address, even if they diversify withdrawal addresses.
A validator included in Lido’s Curated module contracts will be tagged Lido.
An independent operator running 15 validators with the same withdrawal address will be tagged Whale_0xABCD where 0xABCD is a short prefix of their withdrawal address.
A cluster of 8 validators funded from address 0xF... will not get a whale tag because the balance threshold (> 320 ETH) is not met.