Rank
70
AI Agents & MCPs & AI Workflow Automation โข (~400 MCP servers for AI agents) โข AI Automation / AI Agent with MCPs โข AI Workflows & AI Agents โข MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Xpersona Agent
Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics. Skill: Bittensor - taostats Owner: vanlabs-dev Summary: Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics. Tags: latest:1.0.2 Version history: v1.0.2 | 2026-02-11T03:52:20.687Z | user - Documentation updated. - Removed instructions to add the TAOSTATS_API_KEY export to shell profiles. - Added Python client reference: added mention of taostats_cli
clawhub skill install kn7a81sdex3gszysgg397hwvw180y8sb:bittensor-taostatsOverall rank
#62
Adoption
674 downloads
Trust
Unknown
Freshness
Mar 1, 2026
Freshness
Last checked Mar 1, 2026
Best For
Bittensor - taostats is best for general automation workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, CLAWHUB, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics. Skill: Bittensor - taostats Owner: vanlabs-dev Summary: Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics. Tags: latest:1.0.2 Version history: v1.0.2 | 2026-02-11T03:52:20.687Z | user - Documentation updated. - Removed instructions to add the TAOSTATS_API_KEY export to shell profiles. - Added Python client reference: added mention of taostats_cli Capability contract not published. No trust telemetry is available yet. 674 downloads reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Mar 1, 2026
Vendor
Clawhub
Artifacts
0
Benchmarks
0
Last release
1.0.2
Install & run
clawhub skill install kn7a81sdex3gszysgg397hwvw180y8sb:bittensor-taostatsSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Clawhub
Protocol compatibility
OpenClaw
Latest release
1.0.2
Adoption signal
674 downloads
Handshake status
UNKNOWN
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
4
Examples
6
Snippets
0
Languages
Unknown
bash
export TAOSTATS_API_KEY="tao-xxxxx:yyyyy"
bash
source ~/.openclaw/workspace/skills/taostats/taostats.sh
bash
curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=33" \ -H "Authorization: $TAOSTATS_API_KEY" | jq '.data[0].root_prop'
bash
curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=33" \ -H "Authorization: $TAOSTATS_API_KEY" | jq '.data[0].root_prop' # Returns: "0.2104087259347016725" (21% - GOOD entry)
bash
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=33" \ -H "Authorization: $TAOSTATS_API_KEY" | \
bash
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=33" \ -H "Authorization: $TAOSTATS_API_KEY" | \ jq -r '.data | sort_by(-.seven_day_apy) | .[0] | "\(.name // .hotkey.ss58): \(.seven_day_apy * 100)% APY"'
SKILL.md
# TaoStats Skill
**Purpose**: Interact with TaoStats API for Bittensor blockchain data - subnets, validators, miners, staking, emissions, and more.
**API Documentation**: https://docs.taostats.io/
**Base URL**: `https://api.taostats.io`
**Rate Limit**: 5 calls/minute (free tier)
---
## Setup
### 1. Set API Key
Get a free API key from [taostats.io](https://taostats.io) and export it as an environment variable:
```bash
export TAOSTATS_API_KEY="tao-xxxxx:yyyyy"
```
### 2. Source Helper Functions
```bash
source ~/.openclaw/workspace/skills/taostats/taostats.sh
```
---
## Complete Endpoint Reference
### dTAO Pool Endpoints
#### `GET /api/dtao/pool/latest/v1?netuid={N}`
**CRITICAL**: This endpoint has EVERYTHING for trading decisions.
**Key Fields**:
- `price` - Current alpha price in TAO
- `root_prop` - % of price from root TAO injection (CRITICAL for entry validation)
- `fear_and_greed_index` / `fear_and_greed_sentiment` - Market sentiment
- `seven_day_prices` - Historical price array (42 data points)
- `price_change_1_hour`, `price_change_1_day`, `price_change_1_week`, `price_change_1_month`
- `market_cap`, `liquidity`, `total_tao`, `total_alpha`
- `tao_volume_24_hr`, `alpha_volume_24_hr`, `buys_24_hr`, `sells_24_hr`
- `highest_price_24_hr`, `lowest_price_24_hr`
**Example**:
```bash
curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=33" \
-H "Authorization: $TAOSTATS_API_KEY" | jq '.data[0].root_prop'
# Returns: "0.2104087259347016725" (21% - GOOD entry)
```
#### `GET /api/dtao/pool/history/v1?netuid={N}&limit={L}`
Historical pool snapshots for backtesting.
#### `GET /api/dtao/validator/yield/latest/v1?netuid={N}`
Validator APYs with multiple timeframes.
**Key Fields**:
- `seven_day_apy` - Primary metric for staking decisions
- `one_day_apy`, `one_hour_apy`, `thirty_day_apy`
- `seven_day_epoch_participation` - Validator reliability
- `name`, `hotkey.ss58`, `stake`, `take`
**Example**:
```bash
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=33" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data | sort_by(-.seven_day_apy) | .[0] |
"\(.name // .hotkey.ss58): \(.seven_day_apy * 100)% APY"'
```
#### `GET /api/dtao/stake_balance/latest/v1?coldkey={COLDKEY}`
All stake positions across all subnets.
**Key Fields**:
- `netuid`, `hotkey.ss58`, `hotkey_name`
- `balance_as_tao` - โ ๏ธ IN RAO (divide by 1e9)
- `price`, `price_change_1_day`
- `root_prop` - Per-position root proportion
### Subnet Endpoints
#### `GET /api/subnet/latest/v1` or `?netuid={N}`
Complete subnet parameters and economics.
**Key Fields**:
- `netuid`, `emission`, `projected_emission`
- `net_flow_1_day`, `net_flow_7_days`, `net_flow_30_days` - Capital flow tracking
- `recycled_24_hours`, `recycled_lifetime` - Registration economics
- `tao_flow`, `excess_tao` - dTAO mechanics
- `immune_owner_uids_limit`, `immunity_period` - Risk assessment
- `max_validators`, `active_validators`
- `difficulty`, `adjustment_alpha` - MinREADME.md
# TaoStats Skill - Quick Start ## Installation ```bash # Already installed at ~/.openclaw/workspace/skills/taostats/ ``` ## Setup 1. Ensure `.taostats` file exists in workspace root with your API key 2. Source the functions: `source ~/.openclaw/workspace/skills/taostats/taostats.sh` ## Most Useful Commands ### Check Portfolio ```bash taostats_stake_balance "YOUR_COLDKEY" | jq '.data[] | "SN\(.netuid): \((.balance_as_tao | tonumber) / 1e9) TAO"' ``` ### Find Best Validator ```bash taostats_top_validators 12 ``` ### Scan for High APY ```bash taostats_scan_apy 80 # Find subnets with >80% APY ``` ### Check Transaction History ```bash taostats_delegation_history "YOUR_COLDKEY" 10 ``` ### Get Total Staked ```bash taostats_total_staked "YOUR_COLDKEY" ``` ## Full Documentation See `SKILL.md` for complete function reference and examples.
_meta.json
{
"ownerId": "kn7a81sdex3gszysgg397hwvw180y8sb",
"slug": "bittensor-taostats",
"version": "1.0.2",
"publishedAt": 1770781940687
}skill.json
{
"name": "taostats",
"version": "1.1.0",
"description": "TaoStats API wrapper for Bittensor blockchain data - subnets, validators, staking, emissions. Read-only GET calls to api.taostats.io.",
"author": "vanlabs-dev",
"created": "2026-02-03",
"tags": [
"bittensor",
"taostats",
"blockchain",
"crypto",
"api"
],
"dependencies": {
"system": [
"curl",
"jq",
"bc"
],
"python": [
"requests"
],
"api": [
"TaoStats API key (free tier at taostats.io)"
]
},
"files": {
"main": "taostats.sh",
"python": [
"taostats_client.py",
"balance_history.py",
"validator_tracker.py"
],
"docs": [
"SKILL.md",
"README.md"
]
},
"credentials": {
"required": [
"TAOSTATS_API_KEY"
],
"description": "Free API key from taostats.io. Export as environment variable.",
"storage": "environment_variable"
},
"setup": {
"env_vars": [
"TAOSTATS_API_KEY"
]
},
"permissions": {
"network": [
"api.taostats.io"
],
"filesystem": "read-only",
"disableModelInvocation": true
},
"functions": [
"taostats_pool",
"taostats_validator_yield",
"taostats_stake_balance",
"taostats_delegation_history",
"taostats_pruning",
"taostats_dev_activity",
"taostats_metagraph",
"taostats_slippage",
"taostats_coldkey_balance",
"taostats_top_validators",
"taostats_total_staked",
"taostats_dereg_risk",
"taostats_scan_apy",
"taostats_tao_price",
"rao_to_tao",
"tao_to_rao",
"taostats_batch_apy"
],
"examples": [
{
"name": "Check portfolio",
"command": "taostats_total_staked YOUR_COLDKEY"
},
{
"name": "Find best validator",
"command": "taostats_top_validators 12"
},
{
"name": "Scan high APY",
"command": "taostats_scan_apy 100"
}
],
"requires": {
"env": [
"TAOSTATS_API_KEY"
]
}
}Editorial read
Docs source
CLAWHUB
Editorial quality
ready
Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics. Skill: Bittensor - taostats Owner: vanlabs-dev Summary: Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics. Tags: latest:1.0.2 Version history: v1.0.2 | 2026-02-11T03:52:20.687Z | user - Documentation updated. - Removed instructions to add the TAOSTATS_API_KEY export to shell profiles. - Added Python client reference: added mention of taostats_cli
Skill: Bittensor - taostats
Owner: vanlabs-dev
Summary: Access Bittensor blockchain data via TaoStats API for subnets, validators, miners, staking, emissions, and market metrics.
Tags: latest:1.0.2
Version history:
v1.0.2 | 2026-02-11T03:52:20.687Z | user
v1.0.1 | 2026-02-11T03:48:55.525Z | user
export TAOSTATS_API_KEY=โฆ) instead of a .taostats file.v1.0.0 | 2026-02-11T03:36:00.499Z | user
Initial release of TaoStats skill for Bittensor blockchain analytics.
Archive index:
Archive v1.0.2: 8 files, 15098 bytes
Files: balance_history.py (4042b), README.md (851b), skill.json (1994b), SKILL.md (15939b), taostats_client.py (5131b), taostats.sh (14205b), validator_tracker.py (2044b), _meta.json (137b)
File v1.0.2:SKILL.md
Purpose: Interact with TaoStats API for Bittensor blockchain data - subnets, validators, miners, staking, emissions, and more.
API Documentation: https://docs.taostats.io/
Base URL: https://api.taostats.io
Rate Limit: 5 calls/minute (free tier)
Get a free API key from taostats.io and export it as an environment variable:
export TAOSTATS_API_KEY="tao-xxxxx:yyyyy"
source ~/.openclaw/workspace/skills/taostats/taostats.sh
GET /api/dtao/pool/latest/v1?netuid={N}CRITICAL: This endpoint has EVERYTHING for trading decisions.
Key Fields:
price - Current alpha price in TAOroot_prop - % of price from root TAO injection (CRITICAL for entry validation)fear_and_greed_index / fear_and_greed_sentiment - Market sentimentseven_day_prices - Historical price array (42 data points)price_change_1_hour, price_change_1_day, price_change_1_week, price_change_1_monthmarket_cap, liquidity, total_tao, total_alphatao_volume_24_hr, alpha_volume_24_hr, buys_24_hr, sells_24_hrhighest_price_24_hr, lowest_price_24_hrExample:
curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=33" \
-H "Authorization: $TAOSTATS_API_KEY" | jq '.data[0].root_prop'
# Returns: "0.2104087259347016725" (21% - GOOD entry)
GET /api/dtao/pool/history/v1?netuid={N}&limit={L}Historical pool snapshots for backtesting.
GET /api/dtao/validator/yield/latest/v1?netuid={N}Validator APYs with multiple timeframes.
Key Fields:
seven_day_apy - Primary metric for staking decisionsone_day_apy, one_hour_apy, thirty_day_apyseven_day_epoch_participation - Validator reliabilityname, hotkey.ss58, stake, takeExample:
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=33" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data | sort_by(-.seven_day_apy) | .[0] |
"\(.name // .hotkey.ss58): \(.seven_day_apy * 100)% APY"'
GET /api/dtao/stake_balance/latest/v1?coldkey={COLDKEY}All stake positions across all subnets.
Key Fields:
netuid, hotkey.ss58, hotkey_namebalance_as_tao - โ ๏ธ IN RAO (divide by 1e9)price, price_change_1_dayroot_prop - Per-position root proportionGET /api/subnet/latest/v1 or ?netuid={N}Complete subnet parameters and economics.
Key Fields:
netuid, emission, projected_emissionnet_flow_1_day, net_flow_7_days, net_flow_30_days - Capital flow trackingrecycled_24_hours, recycled_lifetime - Registration economicstao_flow, excess_tao - dTAO mechanicsimmune_owner_uids_limit, immunity_period - Risk assessmentmax_validators, active_validatorsdifficulty, adjustment_alpha - Mining economicsGET /api/subnet/registration/v1?netuid={N}Subnet registration details.
Key Fields:
owner.ss58 - Subnet ownerregistration_cost - Current registration costtimestamp - When registeredGET /api/validator/latest/v1?netuid={N}Current validator state.
Key Fields:
apr, apr_7_day_average, apr_30_day_averagenominator_return_per_k - Staker yield per 1000 TAOnominators, nominators_24_hr_change - Capital inflows/outflowsstake, stake_24_hr_change, validator_stake, system_staketake - Commission ratename, coldkey.ss58, hotkey.ss58permits - Subnet permissionsGET /api/validator/history/v1?netuid={N}&hotkey={H}&limit={L}Historical validator performance.
Key Fields:
nominators_24_hr_change - Track capital movementsdominance, subnet_dominance - Market shareGET /api/delegation/v1?nominator={COLDKEY}&action={all|stake|unstake}&limit={L}Complete transaction history (stakes, unstakes, transfers).
Key Fields:
action ("add" = stake, "remove" = unstake)amount, rate (price), tao_amount, alpha_amountfee, slippageblock_number, timestamphotkey.ss58, coldkey.ss58GET /api/transfer/v1?from={COLDKEY}&limit={L}TAO transfer history (not staking).
Key Fields:
from.ss58, to.ss58, amount, feeblock_number, timestampGET /api/metagraph/latest/v1?netuid={N}&limit={L}Complete subnet state for every neuron.
Key Fields:
uid, hotkey.ss58, coldkey.ss58rank, trust, consensus, incentive, dividends, emissionalpha_stake, root_stake, total_alpha_stakedaily_mining_alpha, daily_validating_alpha, daily_rewardvalidator_permit, is_immunity_period, in_dangerdaily_burned_alpha, daily_owner_alphaGET /api/neuron/latest/v1?netuid={N}&limit={L}Simplified neuron view with pruning risk.
Key Fields:
uid, name, hotkey.ss58, coldkey.ss58pruning_score, in_danger, is_immuneminer_rank, validator_ranktaostats_pool 33
# Returns: price, root_prop, fear_and_greed_index, 7-day price history, volume
taostats_validator_yield 33
# Returns: All validators with 1h/1d/7d/30d APYs
taostats_stake_balance "YOUR_COLDKEY_HERE"
# Returns: All positions with root_prop per subnet
taostats_delegation_history "YOUR_COLDKEY_HERE"
# Returns: All stake/unstake transactions with slippage
taostats_subnet_info 33
# Returns: Emissions, net flows, registration cost, immunity params
taostats_metagraph 33
# Returns: All neurons with stakes, ranks, emissions
NETUID=33
ROOT_PROP=$(curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=$NETUID" \
-H "Authorization: $TAOSTATS_API_KEY" | jq -r '.data[0].root_prop')
if (( $(echo "$ROOT_PROP < 0.30" | bc -l) )); then
echo "SN$NETUID: GOOD entry (root_prop: $ROOT_PROP)"
else
echo "SN$NETUID: AVOID (root_prop: $ROOT_PROP - artificial price)"
fi
NETUID=33
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=$NETUID" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data | sort_by(-.seven_day_apy) | .[0] |
"\(.name // .hotkey.ss58) | APY: \(.seven_day_apy * 100)% | Commission: \(.take * 100)%"'
COLDKEY="YOUR_COLDKEY_HERE"
curl -s "https://api.taostats.io/api/dtao/stake_balance/latest/v1?coldkey=$COLDKEY" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data[] |
"SN\(.netuid): \((.balance_as_tao | tonumber) / 1000000000) TAO | root_prop: \(.root_prop)"'
for NETUID in 33 64 51 13 3 1 100; do
MAX_APY=$(curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=$NETUID" \
-H "Authorization: $TAOSTATS_API_KEY" | jq -r '.data | max_by(.seven_day_apy) | .seven_day_apy')
echo "$NETUID|$MAX_APY"
sleep 0.3
done | sort -t'|' -k2 -rn | while IFS='|' read netuid apy; do
printf "SN%-3s: %6.1f%%\n" "$netuid" "$(echo "$apy * 100" | bc -l)"
done
curl -s "https://api.taostats.io/api/subnet/latest/v1" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data[] | select(.netuid != 0) |
"SN\(.netuid): net_flow_7d=\(.net_flow_7_days) | emission=\(.emission)"' | \
sort -t'=' -k2 -rn | head -10
taostats_client.pyRobust API client with automatic retry logic.
from taostats_client import TaostatsAPI
api = TaostatsAPI("your-api-key")
# Single call with retry
result = api.get_json("dtao/pool/latest/v1?netuid=33")
# Paginated (handles all pages automatically)
all_data = api.get_paginated("dtao/stake_balance/latest/v1?coldkey=XYZ")
# Balance history
history = api.get_balance_history(coldkey, start_timestamp, end_timestamp)
balance_history.pyTrack daily portfolio changes over time.
# View last 30 days
python3 skills/taostats/balance_history.py --days 30
# Export to CSV
python3 skills/taostats/balance_history.py --days 90 --export
Output:
๐ Portfolio History (30 records):
--------------------------------------------------------------------------------
Date Free ฯ Staked ฯ Total ฯ Daily ฮ
--------------------------------------------------------------------------------
2026-01-07 0.0234 1.9567 1.9801
2026-01-08 0.0256 1.9789 2.0045 +0.0244
...
Overall Change: +0.5399 ฯ (+27.27%)
taostats_pool <netuid>Get full pool data including root_prop and fear & greed.
taostats_pool_history <netuid> [limit]Historical pool snapshots.
taostats_validator_yield <netuid>All validators with APYs.
taostats_stake_balance <coldkey>All positions with per-subnet root_prop.
taostats_delegation_history <coldkey> [limit]Transaction history with slippage.
taostats_subnet_info [netuid]Subnet parameters and economics.
taostats_subnet_registration <netuid>Subnet ownership and registration details.
taostats_validator_info <netuid>Current validator state.
taostats_validator_history <netuid> <hotkey> [limit]Historical validator performance.
taostats_metagraph <netuid>Complete subnet state.
taostats_neurons <netuid>Simplified neuron view.
Free tier: 5 calls per minute
Best practices:
sleep 0.3 between calls (20 calls/min safe)Example rate-limited loop:
for NETUID in {1..50}; do
taostats_pool $NETUID | jq -r '.data[0] | "SN\(.netuid): root_prop=\(.root_prop)"'
sleep 0.3
done
| Code | Cause | Fix |
|------|-------|-----|
| 401 | Invalid API key | Check .taostats format, no "Bearer" prefix |
| 404 | Wallet not indexed | Wait 1-2 hours for new wallets |
| 429 | Rate limit | Add sleep delays between calls |
| Empty | Inactive subnet | Check if subnet exists first |
root_prop < 0.30 = Good (organic price)root_prop > 0.70 = Bad (artificially pumped)net_flow_7_days > 0 = Capital inflownominators_24_hr_change > 0 = Growing validator stakein_danger = true โ Pruning riskis_immunity_period = true โ Protected from deregpruning_score โ Lower is saferfear_and_greed_index < 30 = Fear (potential buy)fear_and_greed_index > 70 = Greed (potential wait)balance_as_tao Field BugIssue: Returns value in rao (raw units), not TAO.
Workaround: Always divide by 1,000,000,000
balance_tao=$(echo "$balance_as_tao / 1000000000" | bc -l)
Affected endpoints:
/api/dtao/stake_balance/latest/v1#!/bin/bash
source ~/.openclaw/workspace/skills/taostats/taostats.sh
echo "=== High-Quality Entry Opportunities ==="
for NETUID in 33 64 51 13 3 1 100 117 12 120; do
POOL=$(taostats_pool $NETUID)
ROOT_PROP=$(echo "$POOL" | jq -r '.data[0].root_prop')
PRICE=$(echo "$POOL" | jq -r '.data[0].price')
FEAR_GREED=$(echo "$POOL" | jq -r '.data[0].fear_and_greed_sentiment')
MAX_APY=$(taostats_validator_yield $NETUID | jq -r '.data | max_by(.seven_day_apy) | .seven_day_apy')
if (( $(echo "$ROOT_PROP < 0.30" | bc -l) )); then
printf "SN%-3s | root_prop: %.2f | APY: %5.1f%% | Sentiment: %s\n" \
"$NETUID" "$ROOT_PROP" "$(echo "$MAX_APY * 100" | bc -l)" "$FEAR_GREED"
fi
sleep 0.3
done
#!/bin/bash
source ~/.openclaw/workspace/skills/taostats/taostats.sh
COLDKEY="YOUR_COLDKEY"
echo "=== Portfolio Risk Assessment ==="
taostats_stake_balance $COLDKEY | jq -r '.data[] |
"\(.netuid)|\(.balance_as_tao)|\(.root_prop)"' | while IFS='|' read netuid balance root_prop; do
BALANCE_TAO=$(echo "$balance / 1000000000" | bc -l)
if (( $(echo "$root_prop > 0.50" | bc -l) )); then
printf "โ ๏ธ SN%-3s: %6.3f TAO | HIGH root_prop: %.2f - Consider exit\n" "$netuid" "$BALANCE_TAO" "$root_prop"
else
printf "โ
SN%-3s: %6.3f TAO | OK root_prop: %.2f\n" "$netuid" "$BALANCE_TAO" "$root_prop"
fi
done
import requests
import os
class TaoStatsAPI:
def __init__(self):
self.base_url = "https://api.taostats.io"
self.api_key = os.getenv("TAOSTATS_API_KEY")
def _get(self, endpoint):
headers = {"Authorization": self.api_key, "accept": "application/json"}
r = requests.get(f"{self.base_url}{endpoint}", headers=headers)
return r.json()
def pool(self, netuid):
"""Get pool data with root_prop and fear & greed"""
return self._get(f"/api/dtao/pool/latest/v1?netuid={netuid}")
def validator_yield(self, netuid):
"""Get all validators with APYs"""
return self._get(f"/api/dtao/validator/yield/latest/v1?netuid={netuid}")
def stake_balance(self, coldkey):
"""Get all positions with root_prop per subnet"""
return self._get(f"/api/dtao/stake_balance/latest/v1?coldkey={coldkey}")
def subnet_info(self, netuid=None):
"""Get subnet parameters and net flows"""
if netuid:
return self._get(f"/api/subnet/latest/v1?netuid={netuid}")
return self._get("/api/subnet/latest/v1")
# Usage
api = TaoStatsAPI()
pool = api.pool(33)
print(f"SN33 root_prop: {pool['data'][0]['root_prop']}")
Last Updated: 2026-02-06
Author: vanlabs-dev
Dependencies: curl, jq, bc
Changelog:
TODO:
File v1.0.2:README.md
# Already installed at ~/.openclaw/workspace/skills/taostats/
.taostats file exists in workspace root with your API keysource ~/.openclaw/workspace/skills/taostats/taostats.shtaostats_stake_balance "YOUR_COLDKEY" | jq '.data[] | "SN\(.netuid): \((.balance_as_tao | tonumber) / 1e9) TAO"'
taostats_top_validators 12
taostats_scan_apy 80 # Find subnets with >80% APY
taostats_delegation_history "YOUR_COLDKEY" 10
taostats_total_staked "YOUR_COLDKEY"
See SKILL.md for complete function reference and examples.
File v1.0.2:_meta.json
{ "ownerId": "kn7a81sdex3gszysgg397hwvw180y8sb", "slug": "bittensor-taostats", "version": "1.0.2", "publishedAt": 1770781940687 }
File v1.0.2:skill.json
{ "name": "taostats", "version": "1.1.0", "description": "TaoStats API wrapper for Bittensor blockchain data - subnets, validators, staking, emissions. Read-only GET calls to api.taostats.io.", "author": "vanlabs-dev", "created": "2026-02-03", "tags": [ "bittensor", "taostats", "blockchain", "crypto", "api" ], "dependencies": { "system": [ "curl", "jq", "bc" ], "python": [ "requests" ], "api": [ "TaoStats API key (free tier at taostats.io)" ] }, "files": { "main": "taostats.sh", "python": [ "taostats_client.py", "balance_history.py", "validator_tracker.py" ], "docs": [ "SKILL.md", "README.md" ] }, "credentials": { "required": [ "TAOSTATS_API_KEY" ], "description": "Free API key from taostats.io. Export as environment variable.", "storage": "environment_variable" }, "setup": { "env_vars": [ "TAOSTATS_API_KEY" ] }, "permissions": { "network": [ "api.taostats.io" ], "filesystem": "read-only", "disableModelInvocation": true }, "functions": [ "taostats_pool", "taostats_validator_yield", "taostats_stake_balance", "taostats_delegation_history", "taostats_pruning", "taostats_dev_activity", "taostats_metagraph", "taostats_slippage", "taostats_coldkey_balance", "taostats_top_validators", "taostats_total_staked", "taostats_dereg_risk", "taostats_scan_apy", "taostats_tao_price", "rao_to_tao", "tao_to_rao", "taostats_batch_apy" ], "examples": [ { "name": "Check portfolio", "command": "taostats_total_staked YOUR_COLDKEY" }, { "name": "Find best validator", "command": "taostats_top_validators 12" }, { "name": "Scan high APY", "command": "taostats_scan_apy 100" } ], "requires": { "env": [ "TAOSTATS_API_KEY" ] } }
Archive v1.0.1: 8 files, 15035 bytes
Files: balance_history.py (4042b), README.md (851b), skill.json (1781b), SKILL.md (15825b), taostats_client.py (5131b), taostats.sh (14205b), validator_tracker.py (2044b), _meta.json (137b)
File v1.0.1:SKILL.md
Purpose: Interact with TaoStats API for Bittensor blockchain data - subnets, validators, miners, staking, emissions, and more.
API Documentation: https://docs.taostats.io/
Base URL: https://api.taostats.io
Rate Limit: 5 calls/minute (free tier)
Get a free API key from taostats.io and export it as an environment variable:
export TAOSTATS_API_KEY="tao-xxxxx:yyyyy"
Add to your shell profile (~/.bashrc, ~/.zshrc) to persist across sessions.
source ~/.openclaw/workspace/skills/taostats/taostats.sh
GET /api/dtao/pool/latest/v1?netuid={N}CRITICAL: This endpoint has EVERYTHING for trading decisions.
Key Fields:
price - Current alpha price in TAOroot_prop - % of price from root TAO injection (CRITICAL for entry validation)fear_and_greed_index / fear_and_greed_sentiment - Market sentimentseven_day_prices - Historical price array (42 data points)price_change_1_hour, price_change_1_day, price_change_1_week, price_change_1_monthmarket_cap, liquidity, total_tao, total_alphatao_volume_24_hr, alpha_volume_24_hr, buys_24_hr, sells_24_hrhighest_price_24_hr, lowest_price_24_hrExample:
curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=33" \
-H "Authorization: $TAOSTATS_API_KEY" | jq '.data[0].root_prop'
# Returns: "0.2104087259347016725" (21% - GOOD entry)
GET /api/dtao/pool/history/v1?netuid={N}&limit={L}Historical pool snapshots for backtesting.
GET /api/dtao/validator/yield/latest/v1?netuid={N}Validator APYs with multiple timeframes.
Key Fields:
seven_day_apy - Primary metric for staking decisionsone_day_apy, one_hour_apy, thirty_day_apyseven_day_epoch_participation - Validator reliabilityname, hotkey.ss58, stake, takeExample:
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=33" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data | sort_by(-.seven_day_apy) | .[0] |
"\(.name // .hotkey.ss58): \(.seven_day_apy * 100)% APY"'
GET /api/dtao/stake_balance/latest/v1?coldkey={COLDKEY}All stake positions across all subnets.
Key Fields:
netuid, hotkey.ss58, hotkey_namebalance_as_tao - โ ๏ธ IN RAO (divide by 1e9)price, price_change_1_dayroot_prop - Per-position root proportionGET /api/subnet/latest/v1 or ?netuid={N}Complete subnet parameters and economics.
Key Fields:
netuid, emission, projected_emissionnet_flow_1_day, net_flow_7_days, net_flow_30_days - Capital flow trackingrecycled_24_hours, recycled_lifetime - Registration economicstao_flow, excess_tao - dTAO mechanicsimmune_owner_uids_limit, immunity_period - Risk assessmentmax_validators, active_validatorsdifficulty, adjustment_alpha - Mining economicsGET /api/subnet/registration/v1?netuid={N}Subnet registration details.
Key Fields:
owner.ss58 - Subnet ownerregistration_cost - Current registration costtimestamp - When registeredGET /api/validator/latest/v1?netuid={N}Current validator state.
Key Fields:
apr, apr_7_day_average, apr_30_day_averagenominator_return_per_k - Staker yield per 1000 TAOnominators, nominators_24_hr_change - Capital inflows/outflowsstake, stake_24_hr_change, validator_stake, system_staketake - Commission ratename, coldkey.ss58, hotkey.ss58permits - Subnet permissionsGET /api/validator/history/v1?netuid={N}&hotkey={H}&limit={L}Historical validator performance.
Key Fields:
nominators_24_hr_change - Track capital movementsdominance, subnet_dominance - Market shareGET /api/delegation/v1?nominator={COLDKEY}&action={all|stake|unstake}&limit={L}Complete transaction history (stakes, unstakes, transfers).
Key Fields:
action ("add" = stake, "remove" = unstake)amount, rate (price), tao_amount, alpha_amountfee, slippageblock_number, timestamphotkey.ss58, coldkey.ss58GET /api/transfer/v1?from={COLDKEY}&limit={L}TAO transfer history (not staking).
Key Fields:
from.ss58, to.ss58, amount, feeblock_number, timestampGET /api/metagraph/latest/v1?netuid={N}&limit={L}Complete subnet state for every neuron.
Key Fields:
uid, hotkey.ss58, coldkey.ss58rank, trust, consensus, incentive, dividends, emissionalpha_stake, root_stake, total_alpha_stakedaily_mining_alpha, daily_validating_alpha, daily_rewardvalidator_permit, is_immunity_period, in_dangerdaily_burned_alpha, daily_owner_alphaGET /api/neuron/latest/v1?netuid={N}&limit={L}Simplified neuron view with pruning risk.
Key Fields:
uid, name, hotkey.ss58, coldkey.ss58pruning_score, in_danger, is_immuneminer_rank, validator_ranktaostats_pool 33
# Returns: price, root_prop, fear_and_greed_index, 7-day price history, volume
taostats_validator_yield 33
# Returns: All validators with 1h/1d/7d/30d APYs
taostats_stake_balance "YOUR_COLDKEY_HERE"
# Returns: All positions with root_prop per subnet
taostats_delegation_history "YOUR_COLDKEY_HERE"
# Returns: All stake/unstake transactions with slippage
taostats_subnet_info 33
# Returns: Emissions, net flows, registration cost, immunity params
taostats_metagraph 33
# Returns: All neurons with stakes, ranks, emissions
NETUID=33
ROOT_PROP=$(curl -s "https://api.taostats.io/api/dtao/pool/latest/v1?netuid=$NETUID" \
-H "Authorization: $TAOSTATS_API_KEY" | jq -r '.data[0].root_prop')
if (( $(echo "$ROOT_PROP < 0.30" | bc -l) )); then
echo "SN$NETUID: GOOD entry (root_prop: $ROOT_PROP)"
else
echo "SN$NETUID: AVOID (root_prop: $ROOT_PROP - artificial price)"
fi
NETUID=33
curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=$NETUID" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data | sort_by(-.seven_day_apy) | .[0] |
"\(.name // .hotkey.ss58) | APY: \(.seven_day_apy * 100)% | Commission: \(.take * 100)%"'
COLDKEY="YOUR_COLDKEY_HERE"
curl -s "https://api.taostats.io/api/dtao/stake_balance/latest/v1?coldkey=$COLDKEY" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data[] |
"SN\(.netuid): \((.balance_as_tao | tonumber) / 1000000000) TAO | root_prop: \(.root_prop)"'
for NETUID in 33 64 51 13 3 1 100; do
MAX_APY=$(curl -s "https://api.taostats.io/api/dtao/validator/yield/latest/v1?netuid=$NETUID" \
-H "Authorization: $TAOSTATS_API_KEY" | jq -r '.data | max_by(.seven_day_apy) | .seven_day_apy')
echo "$NETUID|$MAX_APY"
sleep 0.3
done | sort -t'|' -k2 -rn | while IFS='|' read netuid apy; do
printf "SN%-3s: %6.1f%%\n" "$netuid" "$(echo "$apy * 100" | bc -l)"
done
curl -s "https://api.taostats.io/api/subnet/latest/v1" \
-H "Authorization: $TAOSTATS_API_KEY" | \
jq -r '.data[] | select(.netuid != 0) |
"SN\(.netuid): net_flow_7d=\(.net_flow_7_days) | emission=\(.emission)"' | \
sort -t'=' -k2 -rn | head -10
taostats_client.pyRobust API client with automatic retry logic.
from taostats_client import TaostatsAPI
api = TaostatsAPI("your-api-key")
# Single call with retry
result = api.get_json("dtao/pool/latest/v1?netuid=33")
# Paginated (handles all pages automatically)
all_data = api.get_paginated("dtao/stake_balance/latest/v1?coldkey=XYZ")
# Balance history
history = api.get_balance_history(coldkey, start_timestamp, end_timestamp)
balance_history.pyTrack daily portfolio changes over time.
# View last 30 days
python3 skills/taostats/balance_history.py --days 30
# Export to CSV
python3 skills/taostats/balance_history.py --days 90 --export
Output:
๐ Portfolio History (30 records):
--------------------------------------------------------------------------------
Date Free ฯ Staked ฯ Total ฯ Daily ฮ
--------------------------------------------------------------------------------
2026-01-07 0.0234 1.9567 1.9801
2026-01-08 0.0256 1.9789 2.0045 +0.0244
...
Overall Change: +0.5399 ฯ (+27.27%)
taostats_pool <netuid>Get full pool data including root_prop and fear & greed.
taostats_pool_history <netuid> [limit]Historical pool snapshots.
taostats_validator_yield <netuid>All validators with APYs.
taostats_stake_balance <coldkey>All positions with per-subnet root_prop.
taostats_delegation_history <coldkey> [limit]Transaction history with slippage.
taostats_subnet_info [netuid]Subnet parameters and economics.
taostats_subnet_registration <netuid>Subnet ownership and registration details.
taostats_validator_info <netuid>Current validator state.
taostats_validator_history <netuid> <hotkey> [limit]Historical validator performance.
taostats_metagraph <netuid>Complete subnet state.
taostats_neurons <netuid>Simplified neuron view.
Free tier: 5 calls per minute
Best practices:
sleep 0.3 between calls (20 calls/min safe)Example rate-limited loop:
for NETUID in {1..50}; do
taostats_pool $NETUID | jq -r '.data[0] | "SN\(.netuid): root_prop=\(.root_prop)"'
sleep 0.3
done
| Code | Cause | Fix |
|------|-------|-----|
| 401 | Invalid API key | Check .taostats format, no "Bearer" prefix |
| 404 | Wallet not indexed | Wait 1-2 hours for new wallets |
| 429 | Rate limit | Add sleep delays between calls |
| Empty | Inactive subnet | Check if subnet exists first |
root_prop < 0.30 = Good (organic price)root_prop > 0.70 = Bad (artificially pumped)net_flow_7_days > 0 = Capital inflownominators_24_hr_change > 0 = Growing validator stakein_danger = true โ Pruning riskis_immunity_period = true โ Protected from deregpruning_score โ Lower is saferfear_and_greed_index < 30 = Fear (potential buy)fear_and_greed_index > 70 = Greed (potential wait)balance_as_tao Field BugIssue: Returns value in rao (raw units), not TAO.
Workaround: Always divide by 1,000,000,000
balance_tao=$(echo "$balance_as_tao / 1000000000" | bc -l)
Affected endpoints:
/api/dtao/stake_balance/latest/v1#!/bin/bash
source ~/.openclaw/workspace/skills/taostats/taostats.sh
echo "=== High-Quality Entry Opportunities ==="
for NETUID in 33 64 51 13 3 1 100 117 12 120; do
POOL=$(taostats_pool $NETUID)
ROOT_PROP=$(echo "$POOL" | jq -r '.data[0].root_prop')
PRICE=$(echo "$POOL" | jq -r '.data[0].price')
FEAR_GREED=$(echo "$POOL" | jq -r '.data[0].fear_and_greed_sentiment')
MAX_APY=$(taostats_validator_yield $NETUID | jq -r '.data | max_by(.seven_day_apy) | .seven_day_apy')
if (( $(echo "$ROOT_PROP < 0.30" | bc -l) )); then
printf "SN%-3s | root_prop: %.2f | APY: %5.1f%% | Sentiment: %s\n" \
"$NETUID" "$ROOT_PROP" "$(echo "$MAX_APY * 100" | bc -l)" "$FEAR_GREED"
fi
sleep 0.3
done
#!/bin/bash
source ~/.openclaw/workspace/skills/taostats/taostats.sh
COLDKEY="YOUR_COLDKEY"
echo "=== Portfolio Risk Assessment ==="
taostats_stake_balance $COLDKEY | jq -r '.data[] |
"\(.netuid)|\(.balance_as_tao)|\(.root_prop)"' | while IFS='|' read netuid balance root_prop; do
BALANCE_TAO=$(echo "$balance / 1000000000" | bc -l)
if (( $(echo "$root_prop > 0.50" | bc -l) )); then
printf "โ ๏ธ SN%-3s: %6.3f TAO | HIGH root_prop: %.2f - Consider exit\n" "$netuid" "$BALANCE_TAO" "$root_prop"
else
printf "โ
SN%-3s: %6.3f TAO | OK root_prop: %.2f\n" "$netuid" "$BALANCE_TAO" "$root_prop"
fi
done
import requests
import os
class TaoStatsAPI:
def __init__(self):
self.base_url = "https://api.taostats.io"
self.api_key = os.getenv("TAOSTATS_API_KEY")
def _get(self, endpoint):
headers = {"Authorization": self.api_key, "accept": "application/json"}
r = requests.get(f"{self.base_url}{endpoint}", headers=headers)
return r.json()
def pool(self, netuid):
"""Get pool data with root_prop and fear & greed"""
return self._get(f"/api/dtao/pool/latest/v1?netuid={netuid}")
def validator_yield(self, netuid):
"""Get all validators with APYs"""
return self._get(f"/api/dtao/validator/yield/latest/v1?netuid={netuid}")
def stake_balance(self, coldkey):
"""Get all positions with root_prop per subnet"""
return self._get(f"/api/dtao/stake_balance/latest/v1?coldkey={coldkey}")
def subnet_info(self, netuid=None):
"""Get subnet parameters and net flows"""
if netuid:
return self._get(f"/api/subnet/latest/v1?netuid={netuid}")
return self._get("/api/subnet/latest/v1")
# Usage
api = TaoStatsAPI()
pool = api.pool(33)
print(f"SN33 root_prop: {pool['data'][0]['root_prop']}")
Last Updated: 2026-02-06
Author: vanlabs-dev
Dependencies: curl, jq, bc
Changelog:
File v1.0.1:README.md
# Already installed at ~/.openclaw/workspace/skills/taostats/
.taostats file exists in workspace root with your API keysource ~/.openclaw/workspace/skills/taostats/taostats.shtaostats_stake_balance "YOUR_COLDKEY" | jq '.data[] | "SN\(.netuid): \((.balance_as_tao | tonumber) / 1e9) TAO"'
taostats_top_validators 12
taostats_scan_apy 80 # Find subnets with >80% APY
taostats_delegation_history "YOUR_COLDKEY" 10
taostats_total_staked "YOUR_COLDKEY"
See SKILL.md for complete function reference and examples.
File v1.0.1:_meta.json
{ "ownerId": "kn7a81sdex3gszysgg397hwvw180y8sb", "slug": "bittensor-taostats", "version": "1.0.1", "publishedAt": 1770781735525 }
File v1.0.1:skill.json
{ "name": "taostats", "version": "1.1.0", "description": "TaoStats API wrapper for Bittensor blockchain data - subnets, validators, staking, emissions. Read-only GET calls to api.taostats.io.", "author": "vanlabs-dev", "created": "2026-02-03", "tags": ["bittensor", "taostats", "blockchain", "crypto", "api"], "dependencies": { "system": ["curl", "jq", "bc"], "python": ["requests"], "api": ["TaoStats API key (free tier at taostats.io)"] }, "files": { "main": "taostats.sh", "python": ["taostats_client.py", "balance_history.py", "validator_tracker.py"], "docs": ["SKILL.md", "README.md"] }, "credentials": { "required": ["TAOSTATS_API_KEY"], "description": "Free API key from taostats.io. Export as environment variable.", "storage": "environment_variable" }, "setup": { "env_vars": ["TAOSTATS_API_KEY"] }, "permissions": { "network": ["api.taostats.io"], "filesystem": "read-only", "disableModelInvocation": false }, "functions": [ "taostats_pool", "taostats_validator_yield", "taostats_stake_balance", "taostats_delegation_history", "taostats_pruning", "taostats_dev_activity", "taostats_metagraph", "taostats_slippage", "taostats_coldkey_balance", "taostats_top_validators", "taostats_total_staked", "taostats_dereg_risk", "taostats_scan_apy", "taostats_tao_price", "rao_to_tao", "tao_to_rao", "taostats_batch_apy" ], "examples": [ { "name": "Check portfolio", "command": "taostats_total_staked YOUR_COLDKEY" }, { "name": "Find best validator", "command": "taostats_top_validators 12" }, { "name": "Scan high APY", "command": "taostats_scan_apy 100" } ] }
Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "CLAWHUB",
"generatedAt": "2026-04-17T05:54:14.731Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceUrl": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "674 downloads",
"href": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceUrl": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.2",
"href": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceUrl": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-11T03:52:20.687Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-vanlabs-dev-bittensor-taostats/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "release",
"title": "Release 1.0.2",
"description": "- Documentation updated. - Removed instructions to add the TAOSTATS_API_KEY export to shell profiles. - Added Python client reference: added mention of taostats_client.py and example usage. - No code or functional changes.",
"href": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceUrl": "https://clawhub.ai/vanlabs-dev/bittensor-taostats",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-11T03:52:20.687Z",
"isPublic": true
}
]Sponsored
Ads related to Bittensor - taostats and adjacent AI workflows.