Clayton BorgesDESENVOLVEDOR
← ← All Projects
Client: Metanova Labs

Metanova Labs – Bittensor Dashboard

2025
Data Dashboard / Product

Dashboard for Bittensor subnet 68 — an on-chain AI drug-discovery network. Implemented the Algorithms tab frontend/backend integration. Tracks molecular competitions, miner leaderboards, and protein data across epochs.

Media
Metanova Labs – Bittensor Dashboard 1
Metanova Labs – Bittensor Dashboard 2
Overview

Metanova Labs is a dashboard for Bittensor subnet 68 — an on-chain AI drug-discovery network where miners compete to produce the best molecular candidates for protein binding. My contribution was the Algorithms tab, which gives researchers a human-readable view of competition results, miner rankings, and protein data across epochs.

Problem

Subnet 68 had no dedicated UI. All data lived on-chain and in raw API endpoints — accessible only to developers who could read JSON responses and understand Bittensor's epoch-indexed data model. Researchers had no way to track competition progress or compare miner performance without writing code.

Goal

Implement the Algorithms tab with full frontend/backend integration — molecular competition tracking, miner leaderboards, and protein data display per epoch — in a way that works reliably against live Bittensor chain data.

My Role
  • ◈Frontend developer, API integration (client work)
Stack
Next.js 15TypeScriptBittensorRadix UI
Technical Decisions
  1. 01Next.js 15 with SSR for the Algorithms tab — epoch data is relatively stable within a window, so server-rendering reduces client bundle size and improves first-load performance for researcher workflows.
  2. 02Strict TypeScript typing for all Bittensor API response shapes — the chain data is complex and partially undocumented; defensive types with runtime validation caught several shape changes during development.
  3. 03Radix UI primitives for accessible base components — the dashboard needed to be screen-reader accessible for researchers who use assistive tools; Radix handles keyboard navigation and ARIA out of the box.
  4. 04Epoch-keyed request deduplication — multiple tab renders requesting the same epoch do one fetch; subsequent renders serve from cache until the epoch advances.
What I Learned
  • →Blockchain data is append-only and epoch-indexed — standard REST pagination patterns (page/offset) don't apply. Epoch-keyed caching is the right mental model, not cursor-based pagination.
  • →Data shapes in active Bittensor subnets change between versions without notice. Defensive parsing with explicit fallback values is not paranoia — it's the baseline.
Status

Delivered — live in production