Subtensor MCP
An official Model Context Protocol server for the Subtensor blockchain, providing AI agents with tools to search, lookup, list, explore, explain, and decode blockchain data including pallets, events, calls, storage, constants, and errors.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://subtensor.com/mcpWhat you can do with it
- Search across all Subtensor pallets, events, calls, storage, constants, and errors by keyword.
- Get detailed info about a specific pallet, event, call, storage item, constant, error, SCALE type, RPC method, protocol account, or EVM precompile.
- Decode SCALE-encoded hex into labelled fields with RAO→TAO and hex→SS58 conversions applied.
Source and maintenance
Protocol and capabilities
- Server
- subtensor 2.0.0
- MCP protocol
- 2025-06-18
- Tools
- 7 advertised
- Resources
- 20 advertised
- Resource templates
- 9 advertised
- Prompts
- 11 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"extensions": {
"io.modelcontextprotocol/ui": {
"mimeTypes": [
"text/html;profile=mcp-app"
]
}
},
"completions": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
subtensor_search — Search Subtensor
Search across all Subtensor pallets, events, calls, storage, constants, and errors by keyword.
{
"type": "object",
"required": [
"query"
],
"properties": {
"type": {
"enum": [
"all",
"event",
"call",
"storage",
"constant",
"error",
"type",
"runtime-api",
"mechanism",
"workflow",
"hyperparameter",
"learn",
"glossary",
"runtime-error"
],
"type": "string",
"description": "Filter by item type (default: all)"
},
"limit": {
"type": "number",
"description": "Max results per page (default: 10, max: 50)"
},
"query": {
"type": "string",
"description": "Search query (e.g., 'stake', 'neuron', 'emission')"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"status": {
"enum": [
"active",
"removed",
"all"
],
"type": "string",
"description": "Filter by item status (default: 'active')"
}
}
}{
"type": "object",
"required": [
"query",
"status_filter",
"total",
"results"
],
"properties": {
"query": {
"type": "string"
},
"total": {
"type": "number"
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"pallet",
"name",
"score"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"score": {
"type": "number"
},
"pallet": {
"type": "string"
},
"status": {
"type": "string"
},
"detail_url": {
"type": "string"
},
"description": {
"type": "string"
}
},
"additionalProperties": true
}
},
"nextCursor": {
"type": "string"
},
"_removed_hint": {
"type": "string"
},
"status_filter": {
"type": "string"
},
"removed_hidden": {
"type": "number"
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}subtensor_lookup — Look up Subtensor item
Get detailed info about a specific pallet, event, call, storage item, constant, error, SCALE type, RPC method, protocol account, or EVM precompile. Accepts URN identifiers with optional #field.path drilling.
{
"type": "object",
"required": [],
"properties": {
"sub": {
"type": [
"string",
"number"
],
"description": "For type=\"account\": derive a sub-account. A number is a netuid or crowdloan id; a string is an 8-byte tag such as \"beta/esc\". Index 0 collapses onto the base address."
},
"urn": {
"type": "string",
"description": "URN identifier (e.g., 'subtensor:event:SubtensorModule.StakeAdded', 'subtensor:storage:System.Account#data.free', 'subtensor:api:SwapRuntimeApi.sim_swap_tao_for_alpha', 'subtensor:account:SubtensorModule.SubtensorPalletId#64', 'subtensor:precompile:StakingV2'). `subtensor:runtime_api:...` is accepted as an alias for `subtensor:api:...`. Supports field-path drilling with # for event/call/storage/type items (for account items, #fragment is a sub-index instead). Alternative to type+pallet+name. Takes precedence if both provided."
},
"name": {
"type": [
"string",
"number"
],
"description": "Item name (e.g., 'SubtensorModule', 'StakeAdded', 'add_stake', 'AccountId32', 'pruning', 'pow-faucet') or type ID number. For type=\"account\": the declaring key ('SubtensorModule.SubtensorPalletId'). For type=\"precompile\": a name ('StakingV2') or 0x address."
},
"type": {
"enum": [
"pallet",
"event",
"call",
"storage",
"constant",
"error",
"type",
"runtime_api",
"rpc_method",
"account",
"precompile",
"cli_flag",
"build_feature"
],
"type": "string",
"description": "What kind of item to look up"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"pallet": {
"type": "string",
"description": "Pallet name — required for event/call/storage/constant/error lookups (e.g., 'SubtensorModule')"
},
"address": {
"type": "string",
"description": "For type=\"account\": an SS58 address to identify. Returns which protocol account it is, including the sub-index, or reports that it is an ordinary wallet."
},
"include": {
"enum": [
"events",
"calls",
"storage",
"constants",
"errors"
],
"type": "string",
"description": "For pallet lookup: filter to a specific item type with descriptions"
},
"language": {
"enum": [
"typescript",
"python-bt",
"python-sub",
"rust"
],
"type": "string",
"description": "Field name casing for your language. TypeScript shows camelCase (tickLow), others show snake_case (tick_low). Overrides session preference."
},
"preferences": {
"type": "string",
"description": "Preferences handle from subtensor_preferences(action=\"set\"). Carries language/node_url/node_type without a session. Explicit arguments on this call take precedence over the handle."
},
"include_history": {
"type": "boolean",
"description": "Include full argument signatures for each version range (events/calls only)"
},
"include_removed": {
"type": "boolean",
"description": "Include removed/historical items (default: false)"
}
}
}{
"type": "object",
"required": [
"type",
"name"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"description": "Item kind, mirrors the request type"
},
"pallet": {
"type": "string"
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}subtensor_list — List Subtensor items
Browse items by category: pallets, events, calls, storage, constants, errors, types, runtime APIs, RPC methods, protocol accounts, EVM precompiles, mechanisms, workflows, hyperparameters, cli_flags, build_features, chain_specs, or env_vars.
{
"type": "object",
"required": [
"category"
],
"properties": {
"kind": {
"enum": [
"primitive",
"composite",
"variant",
"sequence",
"array",
"tuple",
"compact"
],
"type": "string",
"description": "For types: filter by type kind"
},
"role": {
"enum": [
"hotkey",
"coldkey",
"coldkey:owner",
"coldkey:subnet-owner",
"root",
"senate",
"any"
],
"type": "string",
"description": "Filter calls by required role (only applies when category=calls)"
},
"limit": {
"type": "number",
"description": "Max items per page (default: 10)"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response"
},
"domain": {
"enum": [
"consensus",
"emission",
"staking",
"registration",
"subnet",
"governance",
"identity",
"security",
"swap",
"data",
"randomness"
],
"type": "string",
"description": "For mechanisms: filter by domain"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"pallet": {
"type": "string",
"description": "Pallet name — required for events/calls/storage/constants/errors (e.g., 'SubtensorModule'). For category='rpc_methods' this filters by RPC namespace instead (e.g., 'state', 'subtensor')."
},
"search": {
"type": "string",
"description": "For types: search by name"
},
"context": {
"enum": [
"dev",
"production",
"both"
],
"type": "string",
"description": "For cli_flags/build_features: filter by usage context"
},
"category": {
"enum": [
"pallets",
"events",
"calls",
"storage",
"constants",
"errors",
"types",
"runtime_apis",
"rpc_methods",
"accounts",
"precompiles",
"mechanisms",
"workflows",
"hyperparameters",
"cli_flags",
"build_features",
"chain_specs",
"env_vars"
],
"type": "string",
"description": "Category of items to list"
},
"flag_category": {
"type": "string",
"description": "For cli_flags: filter by flag category (chain, sync, networking, rpc, metrics, runtime, subtensor)"
},
"include_removed": {
"type": "boolean",
"description": "Include removed/historical items (default: false)"
}
}
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"category",
"pallets"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"pallets": {
"type": "array"
},
"category": {
"const": "pallets"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"events"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"events": {
"type": "array"
},
"category": {
"const": "events"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"calls"
],
"properties": {
"calls": {
"type": "array"
},
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "calls"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"storage"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"storage": {
"type": "array"
},
"category": {
"const": "storage"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"constants"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "constants"
},
"constants": {
"type": "array"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"errors"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"errors": {
"type": "array"
},
"category": {
"const": "errors"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"types"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"types": {
"type": "array"
},
"category": {
"const": "types"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"apis"
],
"properties": {
"apis": {
"type": "array"
},
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "runtime_apis"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"methods"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"methods": {
"type": "array"
},
"category": {
"const": "rpc_methods"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"accounts"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"accounts": {
"type": "array"
},
"category": {
"const": "accounts"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"precompiles"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "precompiles"
},
"nextCursor": {
"type": "string"
},
"precompiles": {
"type": "array"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"mechanisms"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "mechanisms"
},
"mechanisms": {
"type": "array"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"categories"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "workflows"
},
"categories": {
"type": "object"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"hyperparameters"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "hyperparameters"
},
"nextCursor": {
"type": "string"
},
"hyperparameters": {
"type": "array"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"cli_flags"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "cli_flags"
},
"cli_flags": {
"type": "array"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"build_features"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "build_features"
},
"nextCursor": {
"type": "string"
},
"build_features": {
"type": "array"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"chain_specs"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "chain_specs"
},
"nextCursor": {
"type": "string"
},
"chain_specs": {
"type": "array"
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"category",
"env_vars"
],
"properties": {
"count": {
"type": "number"
},
"total": {
"type": "number"
},
"category": {
"const": "env_vars"
},
"env_vars": {
"type": "array"
},
"nextCursor": {
"type": "string"
}
},
"additionalProperties": true
}
],
"required": [
"category"
],
"properties": {
"category": {
"type": "string",
"description": "Item category, mirrors the request category"
}
},
"description": "Shape varies by category: each branch pins the category to the array field it returns its items in."
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}subtensor_explore — Explore relationships and changelogs
Explore relationships, version history, removed items, changelogs, and migration guides between runtime versions.
{
"type": "object",
"required": [
"topic"
],
"properties": {
"name": {
"type": "string",
"description": "Item name (e.g., 'StakeAdded', 'add_stake', 'TotalStake')"
},
"type": {
"enum": [
"event",
"call",
"storage",
"error",
"all",
"pallet",
"constant"
],
"type": "string",
"description": "Item type — for relationships (event/call/storage/error), for removed (all/pallet/event/call/storage/constant/error)"
},
"limit": {
"type": "number",
"description": "Max items per page (default: 10)"
},
"topic": {
"enum": [
"relationships",
"emitters",
"modifiers",
"throwers",
"removed",
"changelog",
"migration",
"versions"
],
"type": "string",
"description": "What to explore"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"pallet": {
"type": "string",
"description": "Pallet name (e.g., 'SubtensorModule')"
},
"version": {
"type": "number",
"description": "For versions: look up a specific version"
},
"to_version": {
"type": "number",
"description": "For changelog/migration: end version"
},
"from_version": {
"type": "number",
"description": "For changelog/migration: start version"
}
}
}{
"type": "object",
"required": [
"topic"
],
"properties": {
"topic": {
"type": "string",
"description": "Explore topic, mirrors the request topic"
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}subtensor_explain — Explain Subtensor concepts
Understand Bittensor concepts, workflows, mechanisms, runtime APIs, runtime errors, extrinsic format, or get code examples.
{
"type": "object",
"required": [
"topic"
],
"properties": {
"name": {
"type": "string",
"description": "Topic-specific name: concept name ('staking'), workflow ID ('add-stake'), mechanism ID ('yuma-consensus'), runtime API name ('NeuronInfoRuntimeApi'), or item name for examples"
},
"topic": {
"enum": [
"concept",
"workflow",
"mechanism",
"runtime_api",
"runtime_errors",
"extrinsic_format",
"examples",
"monitor",
"event_group"
],
"type": "string",
"description": "What to explain"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"pallet": {
"type": "string",
"description": "Pallet name — required for examples (e.g., 'SubtensorModule')"
},
"language": {
"enum": [
"typescript",
"python-bt",
"python-sub",
"rust"
],
"type": "string",
"description": "For examples: filter to one language (overrides session preference)"
},
"node_url": {
"type": "string",
"description": "For examples: WebSocket endpoint override"
},
"enum_slug": {
"enum": [
"dispatch",
"token",
"arithmetic",
"transactional",
"trie",
"module"
],
"type": "string",
"description": "For runtime_errors: get a specific error enum"
},
"item_type": {
"enum": [
"storage",
"call",
"event"
],
"type": "string",
"description": "For examples: type of item to generate code for"
},
"node_type": {
"enum": [
"lite",
"archive"
],
"type": "string",
"description": "For examples: 'lite' (current state) or 'archive' (historical patterns)"
},
"preferences": {
"type": "string",
"description": "Preferences handle from subtensor_preferences(action=\"set\"). Carries language/node_url/node_type without a session. Explicit arguments on this call take precedence over the handle."
}
}
}{
"type": "object",
"anyOf": [
{
"required": [
"topic"
],
"properties": {
"topic": {
"type": "string",
"description": "Explain topic, mirrors the request topic"
}
}
},
{
"required": [
"type",
"name"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"description": "Item kind — 'runtime_api', shared shape with subtensor_lookup"
}
}
}
],
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}subtensor_preferences — Session preferences
Get or set session preferences for language, node URL, and node type. Language affects field name casing (TypeScript=camelCase, others=snake_case) and code examples.
{
"type": "object",
"required": [],
"properties": {
"action": {
"enum": [
"get",
"set"
],
"type": "string",
"description": "Action to perform (default: 'get')"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"language": {
"enum": [
"typescript",
"python-bt",
"python-sub",
"rust"
],
"type": "string",
"description": "For set: preferred language. Affects field name casing in lookups (TypeScript=camelCase, others=snake_case) and code examples."
},
"node_url": {
"type": "string",
"description": "For set: WebSocket endpoint for generated code"
},
"node_type": {
"enum": [
"lite",
"archive"
],
"type": "string",
"description": "For set: 'lite' (current state) or 'archive' (historical patterns)"
},
"preferences": {
"type": "string",
"description": "Preferences handle from subtensor_preferences(action=\"set\"). Carries language/node_url/node_type without a session. Explicit arguments on this call take precedence over the handle."
}
}
}{
"type": "object",
"required": [
"node_type",
"preferences_handle"
],
"properties": {
"language": {
"type": [
"string",
"null"
]
},
"node_url": {
"type": [
"string",
"null"
]
},
"node_type": {
"type": "string"
},
"preferences_handle": {
"type": "string",
"description": "Pass back as `preferences` on later calls to reapply these."
}
},
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}subtensor_decode — Decode SCALE data
Decode SCALE-encoded hex into labelled fields with RAO→TAO and hex→SS58 conversions applied. Omit pallet and name to identify an event or call from its two-byte (pallet index, item index) prefix — the usual case when you have bytes and want to know what they are.
{
"type": "object",
"required": [
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "SCALE-encoded bytes as hex, with or without a 0x prefix. Whitespace is ignored."
},
"kind": {
"enum": [
"event",
"call",
"value"
],
"type": "string",
"description": "What the bytes are: 'event' (default), 'call', or 'value' for a bare value of a given type"
},
"name": {
"type": "string",
"description": "Event or call name. Must be given together with \"pallet\"."
},
"type": {
"type": "string",
"description": "For kind=\"value\": the SCALE type to decode against, e.g. \"u64\", \"AccountId\", \"Vec<u16>\", \"Option<u32>\""
},
"format": {
"enum": [
"text",
"json"
],
"type": "string",
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"pallet": {
"type": "string",
"description": "Pallet of the event or call. Omit together with \"name\" to identify the item from the byte prefix instead."
}
}
}{
"type": "object",
"required": [
"kind",
"input",
"fields",
"trailing_bytes"
],
"properties": {
"kind": {
"type": "string"
},
"input": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"raw"
],
"properties": {
"raw": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"error": {
"type": "string"
},
"value": {},
"display": {
"type": "string"
},
"conversion": {
"type": "string"
}
},
"additionalProperties": true
}
},
"trailing_bytes": {
"type": "string"
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
11 advertised
explain-pallet — Explain a pallet
Walk through a pallet: purpose, key events/calls/storage, and a typical workflow
- pallet
- Pallet name (e.g., SubtensorModule) (required)
explain-workflow — Walk through a workflow
Step-by-step walkthrough of a named workflow with live-state verification links
- workflow
- Workflow id (e.g., add-stake, register-neuron-burned, set-weights, register-network, become-delegate) (required)
decode-event — Decode an event
Decode a SCALE-encoded event payload or an on-chain event by id
- hex_data
- SCALE-encoded hex bytes
- event_id
- Explorer event id, format block-index
- event_name
- Optional hint: Pallet.EventName
build-extrinsic — Build an extrinsic
Generate code to construct and submit a specific call, with verification link
- call
- Call identifier, format Pallet.callName (required)
- language
- Output language: typescript | python (required)
version-diff — Compare runtime versions
Summarize all changes between two runtime versions, grouped by pallet
- from_version
- Lower runtime version number (required)
- to_version
- Upper runtime version number, or "current" for latest (required)
migration-help — Migrate from a removed item
Find a replacement for a removed pallet item and produce migration code
- removed_item
- Format: Pallet.itemName (required)
getting-started — Get started
Tailored introduction to Subtensor depending on audience
- audience
- Audience: developer | user | agent (required)
inspect-tx — Inspect a transaction
Decode a transaction by hash, identify call and events, link to explorer
- tx_hash
- Transaction hash (hex with 0x prefix) (required)
inspect-account — Inspect an account
Explore an SS58 account: detect role, link relevant explorer pages
- address
- SS58 address (Bittensor prefix 42) (required)
inspect-subnet — Inspect a subnet
Subnet overview from docs + live state link
- netuid
- Subnet ID (non-negative integer) (required)
inspect-block — Inspect a block
Walk through the extrinsics and events at a block height
- block_number
- Block height (non-negative integer) (required)
Resources
20 advertised
item-explorer — Subtensor item explorer
Interactive card for a pallet, event, call, storage item, constant or error, with clickable cross-references to related items.
ui://subtensor/item-explorer.htmlscale-decoder — SCALE decoder
Paste SCALE-encoded event or extrinsic hex and see it decoded field by field, with RAO→TAO and hex→SS58 conversions applied.
ui://subtensor/scale-decoder.htmlpallet-SubtensorModule — SubtensorModule pallet
Core staking/neurons/subnets/emissions pallet
subtensor://pallet/SubtensorModulepallet-Balances — Balances pallet
TAO balance transfers and account operations
subtensor://pallet/Balancespallet-System — System pallet
Substrate runtime info: block number, account nonce, events
subtensor://pallet/Systempallet-AdminUtils — AdminUtils pallet
Subnet admin operations and hyperparameter updates
subtensor://pallet/AdminUtilspallet-Commitments — Commitments pallet
On-chain commit-reveal data
subtensor://pallet/Commitmentspallet-Drand — Drand pallet
Drand randomness beacon integration
subtensor://pallet/Drandpallet-EVMChainId — EVMChainId pallet
EVM chain ID configuration
subtensor://pallet/EVMChainIdpallet-Proxy — Proxy pallet
Proxy accounts and delegation of authority
subtensor://pallet/Proxypallet-Utility — Utility pallet
Batch calls and dispatch utilities
subtensor://pallet/Utilitypallet-SafeMode — SafeMode pallet
Network-wide safe-mode pause
subtensor://pallet/SafeModeruntime-current — Current runtime
Notes for the latest deployed runtime version
subtensor://runtime/currentworkflow-add-stake — Workflow: add-stake
Add stake from coldkey to hotkey
subtensor://workflow/add-stakeworkflow-register-neuron-burned — Workflow: register-neuron-burned
Register a neuron by burning TAO
subtensor://workflow/register-neuron-burnedworkflow-set-weights — Workflow: set-weights
Set validator weights for subnet UIDs
subtensor://workflow/set-weightsworkflow-register-network — Workflow: register-network
Create (register) a new subnet
subtensor://workflow/register-networkworkflow-become-delegate — Workflow: become-delegate
Register a hotkey as a delegate
subtensor://workflow/become-delegateconcept-dtao — Concept: dtao
Dynamic TAO: subnet alpha tokens
subtensor://concept/dtaoconcept-emissions — Concept: emissions
How emissions are calculated and distributed
subtensor://concept/emissionspallet — Pallet documentation
Full pallet reference: events, calls, storage, constants, errors
subtensor://pallet/{name}event — Event reference
Event details: fields, triggers, related calls and storage
subtensor://event/{pallet}/{name}call — Call reference
Call (extrinsic) details: parameters, events emitted, errors
subtensor://call/{pallet}/{name}storage — Storage reference
Storage item: keys, value, modifying calls
subtensor://storage/{pallet}/{name}constant — Constant reference
Pallet constant: value, type, when it changed
subtensor://constant/{pallet}/{name}error — Error reference
Error type: what throws it, how to avoid
subtensor://error/{pallet}/{name}runtime — Runtime version notes
Per-version changes across all pallets. Pass "current" for latest.
subtensor://runtime/{version}workflow — Workflow walkthrough
Step-by-step workflow (e.g., add-stake, set-weights)
subtensor://workflow/{name}concept — Concept explanation
Bittensor concept (e.g., dtao, emissions, consensus)
subtensor://concept/{name}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1286 ms
- 95th percentile latency
- 1286 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1286 ms · metadata changed · 7 tool(s), 20 resource(s), 9 resource template(s), 11 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http subtensor-mcp https://subtensor.com/mcpCodex
codex mcp add subtensor-mcp --url https://subtensor.com/mcpCursor
{
"mcpServers": {
"subtensor-mcp": {
"url": "https://subtensor.com/mcp"
}
}
}Cline
{
"mcpServers": {
"subtensor-mcp": {
"type": "streamableHttp",
"url": "https://subtensor.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"subtensor-mcp": {
"type": "http",
"url": "https://subtensor.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http subtensor-mcp https://subtensor.com/mcpClaude Desktop
{
"mcpServers": {
"subtensor-mcp": {
"url": "https://subtensor.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"subtensor-mcp": {
"serverUrl": "https://subtensor.com/mcp"
}
}
}Let your agent find its tools
Find servers like Subtensor MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Subtensor MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.