Metanova Labs – Dashboard Bittensor
2025Dashboard para a subnet 68 do Bittensor — uma rede de descoberta de medicamentos por IA on-chain. Implementou a aba Algorithms com integração frontend/backend. Rastreia competições moleculares, rankings de mineradores e dados de proteínas por época.


Metanova Labs é um dashboard para a subnet 68 do Bittensor — uma rede de descoberta de medicamentos por IA on-chain onde os mineradores competem para produzir os melhores candidatos moleculares para ligação de proteínas. Minha contribuição foi a aba Algorithms, que fornece aos pesquisadores uma visão legível dos resultados de competições, rankings de mineradores e dados de proteínas por época.
A subnet 68 não tinha UI dedicada. Todos os dados ficavam on-chain e em endpoints de API brutos — acessíveis apenas a desenvolvedores que pudessem ler respostas JSON e entender o modelo de dados indexado por época do Bittensor. Pesquisadores não tinham como acompanhar o progresso das competições ou comparar o desempenho dos mineradores sem escrever código.
Implementar a aba Algorithms com integração completa frontend/backend — rastreamento de competições moleculares, rankings de mineradores e exibição de dados de proteínas por época — de forma que funcione de maneira confiável com dados ao vivo da chain Bittensor.
- ◈Desenvolvedor frontend, integração de API (trabalho para cliente)
- 01Next.js 15 com SSR para a aba Algorithms — os dados de época são relativamente estáveis dentro de uma janela, então a renderização no servidor reduz o tamanho do bundle do cliente e melhora a performance de primeiro carregamento para fluxos de pesquisadores.
- 02Tipagem TypeScript estrita para todos os formatos de resposta da API Bittensor — os dados da chain são complexos e parcialmente não documentados; tipos defensivos com validação em tempo de execução detectaram várias mudanças de formato durante o desenvolvimento.
- 03Primitivos Radix UI para componentes base acessíveis — o dashboard precisava ser acessível por leitores de tela para pesquisadores que usam ferramentas assistivas; o Radix lida com navegação por teclado e ARIA nativamente.
- 04Deduplicação de requisições por chave de época — múltiplas renderizações de aba solicitando a mesma época fazem um único fetch; renderizações subsequentes servem do cache até que a época avance.
- →Dados de blockchain são append-only e indexados por época — padrões de paginação REST padrão (page/offset) não se aplicam. Cache por chave de época é o modelo mental correto, não paginação baseada em cursor.
- →Formatos de dados em subnets Bittensor ativas mudam entre versões sem aviso. Parsing defensivo com valores de fallback explícitos não é paranoia — é a linha de base.
Entregue — no ar em produção