Bittensor Analytics
Answer Bittensor questions about history, not just now.
Bundled with Minerva and active by default — there is nothing to install.
Skill metadata
| Path | skills/bittensor/bittensor-analytics |
| Version | 1.1.0 |
| Author | moy-boy (@moy-boy), Minerva Agent |
| License | MIT |
| Platforms | linux, macos, windows |
| Tags | Bittensor, TAO, Analytics, History, Price, Validator, Yield, Registry, Integration |
| Related skills | bittensor-staking, bittensor-validator, bittensor-archive |
Reference: full SKILL.md
The following is the complete skill definition that Minerva loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Which source answers this?
Fast path
Start with the one-call tools; they join chain, dashboards, Discord and the curated knowledge for you:
bittensor_knowledge(question, optional netuid): terms, rules, subnet facts and playbooks.bittensor_profile(any name or key): the person's coldkey, every hotkey on every subnet with rank, incentive and king status, linked names with sources, subnets they own.bittensor_subnet_profile(netuid or name): owner by name, team on Discord, current king and dethronements, top miners by name, owner burn share, market data.bittensor_changes(any name or key): rank and incentive changes over the last days.
They may appear with a prefix such as mcp_bittensor_research_. Lead with names; give keys as support.
Minerva has three sources of Bittensor fact and they answer different questions. Picking wrong produces a confident answer to a question the user did not ask.
The split
The chain tools — bittensor_subnets, bittensor_subnet, bittensor_metagraph,
bittensor_account — read subtensor directly through the official SDK. No API key, no third party,
nothing cached. They answer "what is true right now": current price, current emission, who is
in the metagraph this block, what a coldkey holds.
They cannot answer anything about the past. There is no history in a chain read.
The Taostats MCP (minerva mcp install taostats) is an indexer. It answers "what
happened": price and pool history, trades, transfers, what a validator has actually yielded over
time, what an account did. It needs an API key and it is a third party — so it is a deliberate
second step, not the default.
The metagraphed MCP (minerva mcp install metagraphed) is a registry. It answers "what does
this subnet expose and how do I call it": which subnet has a given capability, whether its
endpoint is up, what APIs it publishes, and the schema for calling them. No key. It is about
integrating with a subnet, not about its economics.
Choosing
| The user asks | Use |
|---|---|
| "what is subnet 19 trading at" | chain — bittensor_subnet |
| "how has subnet 19 moved this month" | Taostats — getPriceHistory |
| "who is in the metagraph" | chain — bittensor_metagraph |
| "has this validator actually paid out" | Taostats — getValidatorYield |
| "what do I hold" | chain — bittensor_account |
| "what did I do last quarter" | Taostats — getAccountHistory, getTransfers |
| "which validator should I pick" | Taostats — getValidatorRecommendations, then verify on chain |
| "what does this parameter mean" | Taostats — searchDocs |
| "which subnet does image generation" | metagraphed — find_subnets_by_capability |
| "is subnet 19's endpoint up" | metagraphed — get_subnet_health |
| "how do I call subnet 19" | metagraphed — list_subnet_apis, get_api_schema, how_do_i_call |
The rule underneath: a number about now comes from the chain; a number about a period comes from the indexer; a question about calling a subnet comes from the registry. If both could serve, prefer the chain — it needs no key and cannot be stale.
Registry answers are about a subnet's service, not its economics. "Is subnet 19 healthy" from metagraphed means its endpoint responds, not that its price or emission is healthy — do not let those two senses of the word blur in an answer.
When the source is not installed
Do not pretend. Name what is missing and what would add it — minerva mcp install taostats for
history (an API key from dash.taostats.io), minerva mcp install metagraphed for the registry (no
key). Then answer whatever part of the question the chain can answer.
Never estimate a historical number from a current one. "Price is X now and was probably around Y" is the failure this skill exists to prevent.
Reading the answers honestly
- An indexer can lag. If a Taostats figure disagrees with a chain read of the same quantity, the chain is right about now and the indexer is right about the period. Say which you used.
- Yield is backward-looking.
getValidatorYieldsays what happened, not what will. Do not turn it into a projection. - Recommendations are one input.
getValidatorRecommendationsranks by the indexer's own criteria. Check the candidate's current state on chain — take, stake, whether it is even active — before the user acts on it. - Cite the block or the window. Every number is only true for a moment or a range; name it.
Completion
Done when the user has the number they asked for, from the source that can actually know it, with the block or time window named. If the question needed history and Taostats is not installed, saying so plainly is a complete answer — a guessed number is not.