Skip to content
This repository was archived by the owner on Jul 5, 2026. It is now read-only.

feat(explorer): subnet/registry/chain analytics depth (detail, home, status, account)#276

Merged
JSONbored merged 4 commits into
mainfrom
feat/explorer-dashboard
Jun 28, 2026
Merged

feat(explorer): subnet/registry/chain analytics depth (detail, home, status, account)#276
JSONbored merged 4 commits into
mainfrom
feat/explorer-dashboard

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Surfaces backend data the UI didn't expose yet, from a backend↔UI gap audit. All of it runs on current data — no archive node required. Reuses the shared primitive kit (StatTile / BarMini / Sparkline / SortHeader / SelectFilter / HealthPill / CopyableCode) and design tokens throughout; no one-off values.

Theme A — subnet economic depth (subnet detail)

  • Metagraph tab: sortable neuron table (uid, hotkey, stake, emission, rank, trust, consensus, validator-permit) + stake-distribution chart + validator-permit filter + per-UID drill-in (?uid=)
  • Validators leaderboard with validator-scoring columns (dividends + validator-trust, not the always-null rank/consensus)
  • Concentration: Gini / Nakamoto / HHI tiles + top-1/5/10/20% share bars + stake-vs-emission Gini-drift sparklines (window toggle)
  • Neuron snapshot card above the per-UID history

Theme C — registry & network health

  • Home "Registry depth": score-distribution histogram + dimension-coverage heatmap + /coverage-depth ranked enrichment queue
  • Fixed the network-pulse band — it was rendering one ratio repeated across every bucket; now derives per-day uptime from bulk /health/trends (1h/24h honestly fall back to current snapshot)
  • Status diagnostics: /health/history/{date} date-picker drilldown + /source-health provider table
  • Agent-catalog: subnet-list capability / agent-readiness filter + per-subnet "Callable services" tab (kind/url/auth/health + copy-paste snippets)

Theme B — chain explorer & account depth

  • Finished /explorer (renders data the dashboard already fetched — no new queries): daily activity sparklines (blocks / events / success-rate / unique-signers), daily fees & tips + top fee payers, call-function drill-down, signer tip / last-block columns
  • Account page: paginated chain-events feed (?kind filter + pager) + cross-subnet footprint (/subnets + stake-by-subnet bar)

Verification

typecheck (tsc --noEmit) clean · 163 vitest pass · eslint 0 errors · prettier clean. Rebased onto #274/#275; combined state re-verified green.

Data note: /chain/signers and /accounts/{ss58}/events are thin from the data tier today (pre-backfill); those views null-guard with empty-states and populate as the indexer fills.

JSONbored added 4 commits June 27, 2026 19:08
Add live metagraph-snapshot depth to the subnet detail page:

- data layer: typed queries + normalizers for /subnets/{n}/metagraph,
  /validators, /neurons/{uid}, /concentration, and /concentration/history,
  with null-safe per-neuron fields (inactive UIDs carry null rank/axon/
  emission)
- Metagraph tab: sortable neuron table (uid, hotkey, stake, emission, rank,
  trust, consensus, validator-permit badge) + top-UID stake distribution +
  validator-permit filter, with a per-UID drill-in (snapshot StatTile grid +
  history sparklines) driven by a ?uid= search param
- Validators tab: top-validator stake bars + leaderboard reusing the shared
  neuron table; rows drill into the Metagraph neuron view
- Concentration section: Gini / Nakamoto / HHI KPI tiles with meaningful
  tones, top-1/5/10/20% share bars, and stake/emission Gini drift sparklines
  over a 7d/30d/90d window
…ability

Theme C — registry & network-health depth.

Pulse band: wire the bulk /api/v1/health/trends artifact into NetworkPulseBand
so 7d/30d buckets reflect REAL sample-weighted daily uptime per day instead of
one flat current-snapshot ratio repeated across every column; 1h/24h (sub-day,
no per-day points) fall back to the live snapshot. Incident markers + tooltips
realign to the rendered bucket count. Fixes the flat-band bug on home and health.

Registry depth (home): completeness score-distribution histogram and a
surface-dimension coverage breakdown from /api/v1/registry/summary, plus a
ranked enrichment-queue table from /api/v1/coverage-depth.

Status diagnostics: a /api/v1/health/history/{date} date-picker drill-down
(classification mix + sortable, filterable per-surface grid) and a real
/api/v1/source-health provider table (status, counts, classification mix).

Agent-catalog: a capability/readiness filter on the subnet list (service kind +
readiness tier, joined via a netuid-keyed agent-catalog map) with a sortable
Readiness column, and a new "Callable services" tab on subnet detail rendering
each service's kind/url/auth/live health + copy-paste snippets, with an
agent-readiness blocker card.

Adds bulkHealthTrends/registrySummary/coverageDepth/healthHistory/
sourceHealthProviders/agentCatalogMap/agentCatalogDetail query factories +
null-safe normalizers and the matching types.
NeuronTable gains a variant ('miner' | 'validator'); the validators panel
now surfaces dividends + validator-trust (falling back to trust) instead of
rank/consensus, which are null/~0 for validators. The miner default and the
Metagraph tab are unchanged. Sorting and em-dash null-safety cover the new
columns.

normalizeBulkTrendSubnet sliced its per-day points[] with the surface-named
MAX_HEALTH_TREND_SURFACES; add MAX_HEALTH_TREND_DAYS (400, matching the daily
history window) and use it for the points slice.
…footprint

Render the chain-direct data the WIP /explorer already fetched but never
charted, and flesh out the account page with the paginated event feed and
cross-subnet footprint endpoints.

Explorer (/explorer):
- Daily activity series: block, event, success-rate, and unique-signers
  mini-sparklines beside extrinsics (reverse to chronological).
- Daily fees & tips series (total/avg fee, total/avg tip) as sparklines,
  a top-fee-payers table, and a Tips KPI tile.
- Call mix is now click-to-drill: select a module to reveal its
  call_function rows (when the aggregate is grouped by function).
- Signers table gains total-tip and last-tx-block (block-linked) columns.

Account (/accounts/$ss58):
- Chain events section backed by /accounts/{ss58}/events with a ?kind
  SelectFilter and offset pagination matching the sibling feeds.
- Subnet footprint from /accounts/{ss58}/subnets with a stake-by-subnet
  BarMini, falling back to the already-fetched summary registrations.
- Add accountEventsQuery + accountSubnetsQuery and the AccountEventsPage /
  AccountSubnets types; capture alpha_amount + extrinsic_index on events.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 28, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
metagraphed-ui 1f4ed6c Commit Preview URL

Branch Preview URL
Jun 28 2026, 02:11 AM

@superagent-security

Copy link
Copy Markdown

Superagent didn't find any vulnerabilities or security issues in this PR.

@JSONbored JSONbored merged commit 7b7c170 into main Jun 28, 2026
7 checks passed
@JSONbored JSONbored deleted the feat/explorer-dashboard branch June 28, 2026 02:13
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant