Overview
Rank all public staking entities on Ethereum and reproduce the metrics published in the monthly beaconcha.in leaderboard.API Endpoints: This guide uses
/api/v2/ethereum/entities, /api/v2/ethereum/validators/apy-roi, and /api/v2/ethereum/validators/rewards-aggregate.Attribution required: If you display BeaconScore publicly, follow the BeaconScore License and License Materials.
Why Compare Entities?
Provider Due Diligence
Evaluate operational quality across staking providers before selecting integrations or partners.
Competitive Analysis
Track how entity rankings shift across windows to detect persistent vs. short-lived changes.
Concentration Monitoring
Measure stake concentration using
net_share and validator_count.Reproduce the Leaderboard
Fetch the exact data behind the @beaconcha_in monthly leaderboard posts using the steps below.
Step 1: Fetch Ranked Entities
Retrieve entities sorted by network share (the order used in the leaderboard):Filtering Unknown:
page_size maximum is 10. If Unknown appears in the first page, use the paging.next_cursor from the response to fetch the next page and complete your top-10 named entity list:net_share as shown above. See the Entities API reference.
Step 2: Fetch APY / ROI per Entity
Query annualized returns for each entity. Run serially with a 1-second sleep between calls to avoid rate limits:Step 3: Fetch Missed Rewards per Entity
Query missed reward data per entity. Run serially with a 1-second sleep between calls:Missed Rewards Methodology
inactivity_leak_penalty is a penalty on earned rewards, not a missed opportunity. Exclude it from all missed reward totals.
Step 4: Fetch the Network Baseline
To compute “vs average” deltas, fetch the network-wide baseline over the same window:Known behavior: This endpoint does not accept an entity filter. It always returns network-wide data regardless of any entity parameter passed. Use
rewards-aggregate component ratios to derive per-entity BeaconScore component approximations.Step 5: Compute Derived Metrics
Once you have data from all three entity endpoints and the network baseline, compute the leaderboard metrics:“vs Average” Thresholds
Applied consistently to BeaconScore total, all three components, and APY deltas:Missed % of Earned Thresholds (lower = better)
Example: Full Leaderboard Script (Python)
Compare Across Time Windows
Run the same query across windows to identify persistent vs. short-lived performance changes:Best Practices
Filter Unknown
Always exclude
entity == "Unknown" before ranking. Unknown validators are unlabeled and may skew concentration metrics.Interpret APY Carefully
EL APY scales with proposal luck in short windows. Use BeaconScore as the primary efficiency metric (see residual luck factors).
Respect Rate Limits
V1 and V2 API calls share one combined rate limit bucket. Sleep 1 second between serial
apy-roi and rewards-aggregate calls. If you receive a 429, read the ratelimit-reset header and wait before retrying.Store Snapshots
Export ranking snapshots periodically for trend reporting and incident investigation.

