Explorer Bounty Umbrella: Delegators View & History Event Filter

What did you build?

Two additive features on the Explorer account pages, both built on existing infrastructure. No subgraph or indexer change, no new server code.

Delegators tab (#719, closes #106)

Adds a Delegators tab to the orchestrator account page listing every account that has delegated stake to that orchestrator. Each row shows Stake (subgraph bondedAmount) and Pending Rewards (live on-chain pendingStake − bondedAmount, via the existing /api/pending-stake endpoint), so a row’s total matches what that delegator sees on their own profile. Orchestrators can now reconcile their delegator set from the Explorer instead of querying the subgraph themselves; delegators can see the composition of the stake behind an orchestrator before delegating. Gated to orchestrator accounts, paginated, and it reuses the same per-cell fetch pattern already used for ENS data.

History event filter (#720, closes #511)

Adds a Filter popover to the account History tab covering 12 event categories (Delegated, Reward calls, Reward cut & fee changes, Winning tickets, Votes, and so on), with All/None shortcuts and an active-count badge. Filtering is display-only: paging stays filter-agnostic, so the filter changes what you see, never what is fetched. The infinite-scroll observer was also reworked to attach once on sentinel mount, so a short filtered list can no longer self-retrigger and crawl an account’s entire history.

Both PRs went through CodeRabbit review with the actionable comments addressed, and codegen / typecheck / eslint --max-warnings 0 / prettier are clean on both.

Why does it matter?

Both features surface data the protocol already emits but the Explorer didn’t expose. An orchestrator’s delegator base was only reachable by querying the subgraph directly or using a third-party tool, and the account History tab was a single undifferentiated feed. Fnding a specific vote, reward call, or cut change meant scrolling past everything else.

The beneficiaries are delegators doing due diligence before they stake (they can now see the stake composition behind an orchestrator, and filter its history down to whether it calls reward consistently, etc.), and orchestrators, who can see their own delegator base and each delegator’s pending rewards directly on their profile instead of reconstructing it from the subgraph.

Link to the work

Evidence of impact

The need was named by the maintainers #511 was opened by @ECWireless in January 2026 following the discussion in #115; #106 is a long-standing open request*; @Mehrdad grouped both into #711 and labelled them help wanted / retrospective compensation as bounty-suitable work.

Reach. The Delegators tab appears on every orchestrator profile. The active set alone is the top 100 orchestrators by stake, and every one of them has a delegator base that was previously invisible from the Explorer. The History filter applies to every account page on the Explorer, across 12 event categories.

Community proof points

Link to the Discord thread. Community review is requested

Amount requested

$500 USD-equivalent in LPT, covering both features. The compensation cap stated on umbrella issue #711.

1 Like

AI Pre-Screen — Retro Grant Review

Application: Explorer Bounty Umbrella — Delegators View & History Event Filter · Applicant: lpt.moudi.eth (moudi-network) · Ask: $500 in LPT (both) · Category: Retro Grants — Network Engineering SPE

  • Scope :white_check_mark: — [Delegators] Governance & Observability. Two Explorer features on existing infra: PR #719 delegators view + PR #720 history filter. No subgraph/server changes.
  • Shipped :yellow_circle: — Reviewable, not yet merged. Both PRs open with live previews (#719 preview, #720 preview). Rick to merge “in the coming weeks” after Adam’s pass + minor tweaks.
  • Proof point :white_check_mark: — Strong. Technical Director Rick reviewed and signed off on #719 and #720: “The implementation works, and the code quality is high enough for the bounty to be paid out.” Both close maintainer-filed #106 and #511 under umbrella #711.
  • Impact :white_check_mark: — Recognised gap (delegator lists previously needed raw subgraph queries; history was unfilterable). Reach spans every orchestrator profile + all history pages. Named end-user adoption still thin.
  • Quality :white_check_mark: — codegen/typecheck/eslint(--max-warnings 0)/prettier clean; CodeRabbit clean (#720 all checks, #719 one docstring-coverage warning). Low-risk, additive, revert-safe.
  • Proportionality :white_check_mark: — $500 for two features, well under the $5k ceiling; if anything under-priced.
  • Red flags — None material. Only open item: #719 + #720 not yet merged, but merge is pre-blessed by the Technical Director.

Verdict: :white_check_mark: READY FOR REVIEW — approve at $500. Quality and impact clear the rubric, and the Technical Director has already signalled payout. Recommend releasing on merge of #719 + #720.

Decision: Approved

The Review Team approves the requested $500 in full, subject to both pull requests completing the normal merge process.

The contribution addresses two established Explorer needs: visibility into an orchestrator’s delegator base and practical filtering of account history. Both features are implemented as low-risk, read-only additions that reuse the Explorer’s existing subgraph, on-chain API, account layout, design system, and table infrastructure.

The implementation shows good attention to pagination, partial-load failures, accessibility, responsive behaviour, and consistency with established repository patterns. The requested amount is modest and proportionate to the scope and utility of the work.

Before payment, PR #719 should be rebased and its conflict with the shared table component resolved while preserving the newer table-state behaviour on main. The forced wrapping of the Delegators headers should also be reviewed so the header height matches existing Explorer tables.

PR #720 would benefit from a small accessibility refinement before merge. The All and None controls should use clearer action labels or a standard master “Select all” checkbox, retain visible keyboard focus, and provide adequate hit areas. The unchecked checkbox boundary should also use a stronger contrast against the popover background.

The remaining history-pagination and indexed-versus-live data-freshness limitations are suitable follow-up work and do not justify reducing the award.

Future Follow-Ups

  • Add a manual “Load more” action or clearer loaded-window wording when a History filter produces a short list. The current observer can stop requesting additional pages while older matching events still exist.
  • Add focused tests for filtered infinite scrolling and multi-page delegator failure recovery as future hardening. The absence of these tests is consistent with the repository’s currently limited component-test coverage and is not a blocker for approval.
  • Consider persisting History filters in URL parameters for sharable links with active filters.

@lpt.moudi.eth please share your wallet address

@jjassonn69 I applied the suggested code review fixes in the branches already. Thanks for your insight and feedback.
@Mehrdad 0x141e6d4953b933746c770272126db2bd691a9683