An AI-powered mobile app for Bittensor that provides timely, relevant insights and alerts to help users stay on top of important ecosystem signals.
Bittensor is difficult to understand and follow in realtime. The ecosystem moves quickly, information is fragmented, and important signals are easy to miss.
TaoPulse aims to surface the most relevant signals, explain why they matter, and help users stay informed through intelligent feeds, alerts, and AI-powered insights.
It should stay clear, calm, and mobile-first: not ad-like, not popup-heavy, and not overloaded with dashboard noise.
| AI-backed live feed that surfaces the most relevant Bittensor signals for your interests, whether you are evaluating subnets, staking, or mining. | |
| Helps users understand, compare, and follow Bittensor subnets with concise descriptions, key metrics, and deeper context. | |
| Helps users understand Bittensor activity through plain-language questions and concise AI explanations. | |
| Helps users stay on top of important subnet events and control which activity triggers notifications. | |
| Helps users manage subnet watchlists, alert settings, AI preferences, profile settings, and appearance in one place. |
- Feed & Signal Quality: Improve live feed relevance, prioritization, and signal quality.
- Subnets: Expand subnet coverage and improve subnet metadata and comparison signals.
- AI & Insights: Strengthen Ask AI context awareness, explanations, and source-aware responses.
- Alerts & Watchlists: Improve alert prioritization, watchlist workflows, and notification clarity.
- Mobile UX: Improve mobile-first usability, responsiveness, and information clarity.
- Infrastructure & Backend: Evolve the backend from mock-driven development toward more production-ready data pipelines and ingestion workflows.
TaoPulse uses a feature-first Flutter app structure with shared app, core, and UI layers.
lib/
├── api/ # ApiClient (dio) and the apiClientProvider
├── app/ # root widget and typed go_router routes
├── constants/ # app-wide constant values
├── theme/ # colors, spacing, radius, typography, gradients
├── widgets/ # shared, feature-agnostic widgets
├── features/
│ └── <feature>/
│ ├── data/ # repositories: interface + Api*/Mock* impls + mappers
│ ├── models/ # immutable feature models
│ ├── view_models/ # Riverpod notifiers + immutable view states
│ └── views/ # screens and widgets
└── main.dart
Most product areas follow the same pattern: feature data lives in data/, state lives in view_models/, UI lives in views/, and reusable app-wide pieces live in widgets/, theme/, or constants/.
Dependency flow:
View (widget) -> ViewModel (Notifier) -> Repository -> ApiClient / Mock
Riverpod is used to inject app routing, repositories, and feature state.
For the full architecture, state management, repository, navigation, theming, and naming conventions, see .github/CODE_GUIDELINES.md.
See CONTRIBUTING.md for contribution guidelines and development setup.
This project is licensed under the GNU AGPL-3.0.
Copyright (c) 2026 cogniax.









