[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GN07Z238V3JYFS04HXRTMY":3,"skill-same:01M6GN07Z238V3JYFS04HXRTMY":86},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":29,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M6GN07Z238V3JYFS04HXRTMY","bittensor-taostats",null,"jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002FSKILL.md",[],[18],"bittensor taostats","2026-11-10 10:12:30",false,"# TaoStats Skill\n\n**Purpose**: Interact with TaoStats API for Bittensor blockchain data - subnets, validators, miners, staking, emissions, and more.\n\n**API Documentation**: https:\u002F\u002Fdocs.taostats.io\u002F  \n**Base URL**: `https:\u002F\u002Fapi.taostats.io`  \n**Rate Limit**: 5 calls\u002Fminute (free tier)\n\n---\n## Setup\n\n### 1. Set API Key\nGet a free API key from [taostats.io](https:\u002F\u002Ftaostats.io) and export it as an environment variable:\n```bash\nexport TAOSTATS_API_KEY=\"tao-xxxxx:yyyyy\"\n```\n\n### 2. Source Helper Functions\n```bash\nsource ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Ftaostats\u002Ftaostats.sh\n```\n\n---\n\n## Complete Endpoint Reference\n\n### dTAO Pool Endpoints\n\n#### `GET \u002Fapi\u002Fdtao\u002Fpool\u002Flatest\u002Fv1?netuid={N}`\n**CRITICAL**: This endpoint has EVERYTHING for trading decisions.\n\n**Key Fields**:\n- `price` - Current alpha price in TAO\n- `root_prop` - % of price from root TAO injection (CRITICAL for entry validation)\n- `fear_and_greed_index` \u002F `fear_and_greed_sentiment` - Market sentiment\n- `seven_day_prices` - Historical price array (42 data points)\n- `price_change_1_hour`, `price_change_1_day`, `price_change_1_week`, `price_change_1_month`\n- `market_cap`, `liquidity`, `total_tao`, `total_alpha`\n- `tao_volume_24_hr`, `alpha_volume_24_hr`, `buys_24_hr`, `sells_24_hr`\n- `highest_price_24_hr`, `lowest_price_24_hr`\n\n**Example**:\n```bash\ncurl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fdtao\u002Fpool\u002Flatest\u002Fv1?netuid=33\" \\\n  -H \"Authorization: $TAOSTATS_API_KEY\" | jq '.data[0].root_prop'\n# Returns: \"0.2104087259347016725\" (21% - GOOD entry)\n```\n\n#### `GET \u002Fapi\u002Fdtao\u002Fpool\u002Fhistory\u002Fv1?netuid={N}&limit={L}`\nHistorical pool snapshots for backtesting.\n\n#### `GET \u002Fapi\u002Fdtao\u002Fvalidator\u002Fyield\u002Flatest\u002Fv1?netuid={N}`\nValidator APYs with multiple timeframes.\n\n**Key Fields**:\n- `seven_day_apy` - Primary metric for staking decisions\n- `one_day_apy`, `one_hour_apy`, `thirty_day_apy`\n- `seven_day_epoch_participation` - Validator reliability\n- `name`, `hotkey.ss58`, `stake`, `take`\n\n**Example**:\n```bash\ncurl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fdtao\u002Fvalidator\u002Fyield\u002Flatest\u002Fv1?netuid=33\" \\\n  -H \"Authorization: $TAOSTATS_API_KEY\" | \\\n  jq -r '.data | sort_by(-.seven_day_apy) | .[0] | \n  \"\\(.name \u002F\u002F .hotkey.ss58): \\(.seven_day_apy * 100)% APY\"'\n```\n\n#### `GET \u002Fapi\u002Fdtao\u002Fstake_balance\u002Flatest\u002Fv1?coldkey={COLDKEY}`\nAll stake positions across all subnets.\n\n**Key Fields**:\n- `netuid`, `hotkey.ss58`, `hotkey_name`\n- `balance_as_tao` - ⚠️ IN RAO (divide by 1e9)\n- `price`, `price_change_1_day`\n- `root_prop` - Per-position root proportion\n\n### Subnet Endpoints\n\n#### `GET \u002Fapi\u002Fsubnet\u002Flatest\u002Fv1` or `?netuid={N}`\nComplete subnet parameters and economics.\n\n**Key Fields**:\n- `netuid`, `emission`, `projected_emission`\n- `net_flow_1_day`, `net_flow_7_days`, `net_flow_30_days` - Capital flow tracking\n- `recycled_24_hours`, `recycled_lifetime` - Registration economics\n- `tao_flow`, `excess_tao` - dTAO mechanics\n- `immune_owner_uids_limit`, `immunity_period` - Risk assessment\n- `max_validators`, `active_validators`\n- `difficulty`, `adjustment_alpha` - Mining economics\n\n#### `GET \u002Fapi\u002Fsubnet\u002Fregistration\u002Fv1?netuid={N}`\nSubnet registration details.\n\n**Key Fields**:\n- `owner.ss58` - Subnet owner\n- `registration_cost` - Current registration cost\n- `timestamp` - When registered\n\n### Validator Endpoints\n\n#### `GET \u002Fapi\u002Fvalidator\u002Flatest\u002Fv1?netuid={N}`\nCurrent validator state.\n\n**Key Fields**:\n- `apr`, `apr_7_day_average`, `apr_30_day_average`\n- `nominator_return_per_k` - Staker yield per 1000 TAO\n- `nominators`, `nominators_24_hr_change` - Capital inflows\u002Foutflows\n- `stake`, `stake_24_hr_change`, `validator_stake`, `system_stake`\n- `take` - Commission rate\n- `name`, `coldkey.ss58`, `hotkey.ss58`\n- `permits` - Subnet permissions\n\n#### `GET \u002Fapi\u002Fvalidator\u002Fhistory\u002Fv1?netuid={N}&hotkey={H}&limit={L}`\nHistorical validator performance.\n\n**Key Fields**:\n- All APR metrics with daily granularity\n- `nominators_24_hr_change` - Track capital movements\n- `dominance`, `subnet_dominance` - Market share\n\n### Transaction Endpoints\n\n#### `GET \u002Fapi\u002Fdelegation\u002Fv1?nominator={COLDKEY}&action={all|stake|unstake}&limit={L}`\nComplete transaction history (stakes, unstakes, transfers).\n\n**Key Fields**:\n- `action` (\"add\" = stake, \"remove\" = unstake)\n- `amount`, `rate` (price), `tao_amount`, `alpha_amount`\n- `fee`, `slippage`\n- `block_number`, `timestamp`\n- `hotkey.ss58`, `coldkey.ss58`\n\n#### `GET \u002Fapi\u002Ftransfer\u002Fv1?from={COLDKEY}&limit={L}`\nTAO transfer history (not staking).\n\n**Key Fields**:\n- `from.ss58`, `to.ss58`, `amount`, `fee`\n- `block_number`, `timestamp`\n\n### Metagraph Endpoints\n\n#### `GET \u002Fapi\u002Fmetagraph\u002Flatest\u002Fv1?netuid={N}&limit={L}`\nComplete subnet state for every neuron.\n\n**Key Fields**:\n- `uid`, `hotkey.ss58`, `coldkey.ss58`\n- `rank`, `trust`, `consensus`, `incentive`, `dividends`, `emission`\n- `alpha_stake`, `root_stake`, `total_alpha_stake`\n- `daily_mining_alpha`, `daily_validating_alpha`, `daily_reward`\n- `validator_permit`, `is_immunity_period`, `in_danger`\n- `daily_burned_alpha`, `daily_owner_alpha`\n\n#### `GET \u002Fapi\u002Fneuron\u002Flatest\u002Fv1?netuid={N}&limit={L}`\nSimplified neuron view with pruning risk.\n\n**Key Fields**:\n- `uid`, `name`, `hotkey.ss58`, `coldkey.ss58`\n- `pruning_score`, `in_danger`, `is_immune`\n- `miner_rank`, `validator_rank`\n\n---\n\n## Quick Reference\n\n### Get Subnet Pool Data\n```bash\ntaostats_pool 33\n# Returns: price, root_prop, fear_and_greed_index, 7-day price history, volume\n```\n\n### Get Validator APYs\n```bash\ntaostats_validator_yield 33\n# Returns: All validators with 1h\u002F1d\u002F7d\u002F30d APYs\n```\n\n### Get Stake Balances\n```bash\ntaostats_stake_balance \"YOUR_COLDKEY_HERE\"\n# Returns: All positions with root_prop per subnet\n```\n\n### Get Transaction History\n```bash\ntaostats_delegation_history \"YOUR_COLDKEY_HERE\"\n# Returns: All stake\u002Funstake transactions with slippage\n```\n\n### Get Subnet Parameters\n```bash\ntaostats_subnet_info 33\n# Returns: Emissions, net flows, registration cost, immunity params\n```\n\n### Get Metagraph\n```bash\ntaostats_metagraph 33\n# Returns: All neurons with stakes, ranks, emissions\n```\n\n---\n\n## Common Patterns\n\n### Check Entry Quality (root_prop \u003C 0.30)\n```bash\nNETUID=33\nROOT_PROP=$(curl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fdtao\u002Fpool\u002Flatest\u002Fv1?netuid=$NETUID\" \\\n  -H \"Authorization: $TAOSTATS_API_KEY\" | jq -r '.data[0].root_prop')\n\nif (( $(echo \"$ROOT_PROP \u003C 0.30\" | bc -l) )); then\n  echo \"SN$NETUID: GOOD entry (root_prop: $ROOT_PROP)\"\nelse\n  echo \"SN$NETUID: AVOID (root_prop: $ROOT_PROP - artificial price)\"\nfi\n```\n\n### Find Best Validator for Subnet\n```bash\nNETUID=33\ncurl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fdtao\u002Fvalidator\u002Fyield\u002Flatest\u002Fv1?netuid=$NETUID\" \\\n  -H \"Authorization: $TAOSTATS_API_KEY\" | \\\n  jq -r '.data | sort_by(-.seven_day_apy) | .[0] | \n  \"\\(.name \u002F\u002F .hotkey.ss58) | APY: \\(.seven_day_apy * 100)% | Commission: \\(.take * 100)%\"'\n```\n\n### Check Portfolio with root_prop per Position\n```bash\nCOLDKEY=\"YOUR_COLDKEY_HERE\"\ncurl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fdtao\u002Fstake_balance\u002Flatest\u002Fv1?coldkey=$COLDKEY\" \\\n  -H \"Authorization: $TAOSTATS_API_KEY\" | \\\n  jq -r '.data[] | \n  \"SN\\(.netuid): \\((.balance_as_tao | tonumber) \u002F 1000000000) TAO | root_prop: \\(.root_prop)\"'\n```\n\n### Scan for High APY Opportunities (S-tier only)\n```bash\nfor NETUID in 33 64 51 13 3 1 100; do\n  MAX_APY=$(curl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fdtao\u002Fvalidator\u002Fyield\u002Flatest\u002Fv1?netuid=$NETUID\" \\\n    -H \"Authorization: $TAOSTATS_API_KEY\" | jq -r '.data | max_by(.seven_day_apy) | .seven_day_apy')\n  echo \"$NETUID|$MAX_APY\"\n  sleep 0.3\ndone | sort -t'|' -k2 -rn | while IFS='|' read netuid apy; do\n  printf \"SN%-3s: %6.1f%%\\n\" \"$netuid\" \"$(echo \"$apy * 100\" | bc -l)\"\ndone\n```\n\n### Monitor Capital Flows (net_flow indicates momentum)\n```bash\ncurl -s \"https:\u002F\u002Fapi.taostats.io\u002Fapi\u002Fsubnet\u002Flatest\u002Fv1\" \\\n  -H \"Authorization: $TAOSTATS_API_KEY\" | \\\n  jq -r '.data[] | select(.netuid != 0) | \n  \"SN\\(.netuid): net_flow_7d=\\(.net_flow_7_days) | emission=\\(.emission)\"' | \\\n  sort -t'=' -k2 -rn | head -10\n```\n\n---\n\n## Python Tools\n\n### `taostats_client.py`\nRobust API client with automatic retry logic.\n\n```python\nfrom taostats_client import TaostatsAPI\n\napi = TaostatsAPI(\"your-api-key\")\n\n# Single call with retry\nresult = api.get_json(\"dtao\u002Fpool\u002Flatest\u002Fv1?netuid=33\")\n\n# Paginated (handles all pages automatically)\nall_data = api.get_paginated(\"dtao\u002Fstake_balance\u002Flatest\u002Fv1?coldkey=XYZ\")\n\n# Balance history\nhistory = api.get_balance_history(coldkey, start_timestamp, end_timestamp)\n```\n\n### `balance_history.py`\nTrack daily portfolio changes over time.\n\n```bash\n# View last 30 days\npython3 skills\u002Ftaostats\u002Fbalance_history.py --days 30\n\n# Export to CSV\npython3 skills\u002Ftaostats\u002Fbalance_history.py --days 90 --export\n```\n\n**Output:**\n```\n? Portfolio History (30 records):\n--------------------------------------------------------------------------------\nDate         Free τ    Staked τ    Total τ    Daily Δ\n--------------------------------------------------------------------------------\n2026-01-07   0.0234    1.9567    1.9801            \n2026-01-08   0.0256    1.9789    2.0045   +0.0244\n...\nOverall Change: +0.5399 τ (+27.27%)\n```\n\n---\n\n## Bash Functions (taostats.sh)\n\n### Core Trading Functions\n\n#### `taostats_pool \u003Cnetuid>`\nGet full pool data including root_prop and fear & greed.\n- **Returns**: price, root_prop, fear_and_greed_index, seven_day_prices, volume\n- **Use for**: Entry validation, sentiment analysis, price history\n\n#### `taostats_pool_history \u003Cnetuid> [limit]`\nHistorical pool snapshots.\n- **Returns**: Time-series of pool state\n- **Use for**: Backtesting, trend analysis\n\n#### `taostats_validator_yield \u003Cnetuid>`\nAll validators with APYs.\n- **Returns**: 1h\u002F1d\u002F7d\u002F30d APYs, participation rates\n- **Use for**: Validator selection\n\n#### `taostats_stake_balance \u003Ccoldkey>`\nAll positions with per-subnet root_prop.\n- **Returns**: Balance, price, root_prop per position\n- **Use for**: Portfolio monitoring, risk assessment\n\n#### `taostats_delegation_history \u003Ccoldkey> [limit]`\nTransaction history with slippage.\n- **Returns**: Stakes, unstakes, fees, slippage\n- **Use for**: Performance tracking, tax records\n\n### Subnet Analysis Functions\n\n#### `taostats_subnet_info [netuid]`\nSubnet parameters and economics.\n- **Returns**: Emissions, net flows, registration costs\n- **Use for**: Fundamental analysis\n\n#### `taostats_subnet_registration \u003Cnetuid>`\nSubnet ownership and registration details.\n- **Returns**: Owner, registration cost, timestamp\n- **Use for**: Due diligence\n\n### Validator Analysis Functions\n\n#### `taostats_validator_info \u003Cnetuid>`\nCurrent validator state.\n- **Returns**: APR, nominator returns, stake changes\n- **Use for**: Deep validator research\n\n#### `taostats_validator_history \u003Cnetuid> \u003Chotkey> [limit]`\nHistorical validator performance.\n- **Returns**: Daily APR trends\n- **Use for**: Validator reliability assessment\n\n### Metagraph Functions\n\n#### `taostats_metagraph \u003Cnetuid>`\nComplete subnet state.\n- **Returns**: All neurons with stakes, emissions, ranks\n- **Use for**: Ecosystem analysis\n\n#### `taostats_neurons \u003Cnetuid>`\nSimplified neuron view.\n- **Returns**: Pruning scores, immunity status\n- **Use for**: Risk monitoring\n\n---\n\n## Rate Limit Handling\n\n**Free tier**: 5 calls per minute\n\n**Best practices**:\n1. Cache pool data (changes slowly)\n2. Use `sleep 0.3` between calls (20 calls\u002Fmin safe)\n3. Batch where possible\n4. Monitor for 429 errors\n\n**Example rate-limited loop**:\n```bash\nfor NETUID in {1..50}; do\n  taostats_pool $NETUID | jq -r '.data[0] | \"SN\\(.netuid): root_prop=\\(.root_prop)\"'\n  sleep 0.3\ndone\n```\n\n---\n\n## Error Handling\n\n| Code | Cause | Fix |\n|------|-------|-----|\n| 401 | Invalid API key | Check `.taostats` format, no \"Bearer\" prefix |\n| 404 | Wallet not indexed | Wait 1-2 hours for new wallets |\n| 429 | Rate limit | Add `sleep` delays between calls |\n| Empty | Inactive subnet | Check if subnet exists first |\n\n---\n\n## Critical Fields for Trading\n\n### Entry Validation\n- `root_prop` \u003C 0.30 = Good (organic price)\n- `root_prop` > 0.70 = Bad (artificially pumped)\n\n### Momentum Signals\n- `net_flow_7_days` > 0 = Capital inflow\n- `nominators_24_hr_change` > 0 = Growing validator stake\n\n### Risk Metrics\n- `in_danger` = true → Pruning risk\n- `is_immunity_period` = true → Protected from dereg\n- `pruning_score` → Lower is safer\n\n### Sentiment\n- `fear_and_greed_index` \u003C 30 = Fear (potential buy)\n- `fear_and_greed_index` > 70 = Greed (potential wait)\n\n---\n\n## Known Issues\n\n### `balance_as_tao` Field Bug\n**Issue**: Returns value in rao (raw units), not TAO.\n\n**Workaround**: Always divide by 1,000,000,000\n```bash\nbalance_tao=$(echo \"$balance_as_tao \u002F 1000000000\" | bc -l)\n```\n\n**Affected endpoints**:\n- `\u002Fapi\u002Fdtao\u002Fstake_balance\u002Flatest\u002Fv1`\n\n---\n\n## Integration Examples\n\n### Entry Scanner (root_prop + APY + flow)\n```bash\n#!\u002Fbin\u002Fbash\nsource ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Ftaostats\u002Ftaostats.sh\n\necho \"=== High-Quality Entry Opportunities ===\"\nfor NETUID in 33 64 51 13 3 1 100 117 12 120; do\n  POOL=$(taostats_pool $NETUID)\n  ROOT_PROP=$(echo \"$POOL\" | jq -r '.data[0].root_prop')\n  PRICE=$(echo \"$POOL\" | jq -r '.data[0].price')\n  FEAR_GREED=$(echo \"$POOL\" | jq -r '.data[0].fear_and_greed_sentiment')\n  \n  MAX_APY=$(taostats_validator_yield $NETUID | jq -r '.data | max_by(.seven_day_apy) | .seven_day_apy')\n  \n  if (( $(echo \"$ROOT_PROP \u003C 0.30\" | bc -l) )); then\n    printf \"SN%-3s | root_prop: %.2f | APY: %5.1f%% | Sentiment: %s\\n\" \\\n      \"$NETUID\" \"$ROOT_PROP\" \"$(echo \"$MAX_APY * 100\" | bc -l)\" \"$FEAR_GREED\"\n  fi\n  sleep 0.3\ndone\n```\n\n### Portfolio Risk Monitor\n```bash\n#!\u002Fbin\u002Fbash\nsource ~\u002F.openclaw\u002Fworkspace\u002Fskills\u002Ftaostats\u002Ftaostats.sh\n\nCOLDKEY=\"YOUR_COLDKEY\"\necho \"=== Portfolio Risk Assessment ===\"\n\ntaostats_stake_balance $COLDKEY | jq -r '.data[] | \n  \"\\(.netuid)|\\(.balance_as_tao)|\\(.root_prop)\"' | while IFS='|' read netuid balance root_prop; do\n  BALANCE_TAO=$(echo \"$balance \u002F 1000000000\" | bc -l)\n  if (( $(echo \"$root_prop > 0.50\" | bc -l) )); then\n    printf \"⚠️ SN%-3s: %6.3f TAO | HIGH root_prop: %.2f - Consider exit\\n\" \"$netuid\" \"$BALANCE_TAO\" \"$root_prop\"\n  else\n    printf \"✅ SN%-3s: %6.3f TAO | OK root_prop: %.2f\\n\" \"$netuid\" \"$BALANCE_TAO\" \"$root_prop\"\n  fi\ndone\n```\n\n---\n\n## Python Wrapper\n\n```python\nimport requests\nimport os\n\nclass TaoStatsAPI:\n    def __init__(self):\n        self.base_url = \"https:\u002F\u002Fapi.taostats.io\"\n        self.api_key = os.getenv(\"TAOSTATS_API_KEY\")\n        \n    def _get(self, endpoint):\n        headers = {\"Authorization\": self.api_key, \"accept\": \"application\u002Fjson\"}\n        r = requests.get(f\"{self.base_url}{endpoint}\", headers=headers)\n        return r.json()\n    \n    def pool(self, netuid):\n        \"\"\"Get pool data with root_prop and fear & greed\"\"\"\n        return self._get(f\"\u002Fapi\u002Fdtao\u002Fpool\u002Flatest\u002Fv1?netuid={netuid}\")\n    \n    def validator_yield(self, netuid):\n        \"\"\"Get all validators with APYs\"\"\"\n        return self._get(f\"\u002Fapi\u002Fdtao\u002Fvalidator\u002Fyield\u002Flatest\u002Fv1?netuid={netuid}\")\n    \n    def stake_balance(self, coldkey):\n        \"\"\"Get all positions with root_prop per subnet\"\"\"\n        return self._get(f\"\u002Fapi\u002Fdtao\u002Fstake_balance\u002Flatest\u002Fv1?coldkey={coldkey}\")\n    \n    def subnet_info(self, netuid=None):\n        \"\"\"Get subnet parameters and net flows\"\"\"\n        if netuid:\n            return self._get(f\"\u002Fapi\u002Fsubnet\u002Flatest\u002Fv1?netuid={netuid}\")\n        return self._get(\"\u002Fapi\u002Fsubnet\u002Flatest\u002Fv1\")\n\n# Usage\napi = TaoStatsAPI()\npool = api.pool(33)\nprint(f\"SN33 root_prop: {pool['data'][0]['root_prop']}\")\n```\n\n---\n\n## Skill Maintenance\n\n**Last Updated**: 2026-02-06  \n**Author**: vanlabs-dev  \n**Dependencies**: `curl`, `jq`, `bc`\n\n**Changelog**:\n- 2026-02-06: COMPLETE OVERHAUL - Discovered root_prop, fear_and_greed, 7-day history in pool endpoint\n- 2026-02-06: Added all working endpoints from discovery testing\n- 2026-02-06: Added entry validation patterns using root_prop\n- 2026-02-03: Initial version\n\n**TODO**:\n- [ ] Add caching layer for pool data\n- [ ] Build retry logic with exponential backoff\n- [ ] Create real-time monitoring dashboard\n- [ ] Add root_prop alerts for portfolio positions\n",{},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fai-crypto\u002Fbittensor-taostats",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-15 02:28:10",{"source":7,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill bittensor-taostats",{"tool":38,"command":39},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill bittensor-taostats",{"tool":41,"command":42},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill bittensor-taostats","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002FSKILL.md",true,[46,52,58,62,66,70,74,78,82],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"_meta.json","REFERENCE","参考文档",295,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002F_meta.json",{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"balance_history.py","SCRIPT","脚本",4042,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002Fbalance_history.py",{"path":59,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":60,"sourceHtmlUrl":61},"README.md",851,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002FREADME.md",{"path":63,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":64,"sourceHtmlUrl":65},"skill.json",1994,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002Fskill.json",{"path":67,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":68,"sourceHtmlUrl":69},"SOURCE.md",266,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002FSOURCE.md",{"path":71,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":72,"sourceHtmlUrl":73},"taostats_client.py",5131,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002Ftaostats_client.py",{"path":75,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":76,"sourceHtmlUrl":77},"taostats.sh",14205,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002Ftaostats.sh",{"path":79,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":80,"sourceHtmlUrl":81},"TRUST.auto.yaml",2074,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002FTRUST.auto.yaml",{"path":83,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":84,"sourceHtmlUrl":85},"validator_tracker.py",2044,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fbittensor-taostats\u002Fvalidator_tracker.py",[87,116,139,157,170,180],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":92,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":19},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":120,"licenseFileUrl":121,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":19},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[125,126,127,128,129,130,131,132,133,134,135,136,137,138],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":120,"licenseFileUrl":143,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":19},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[147,126,148,149,150,151,152,136,135,134,153,154,155,130,156,129,128],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":120,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":19},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[165,166,127,167,168,137,135,169,133,132,130,129],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":171,"name":172,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":173,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":19},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[177,178,179],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":184,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":19},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[188,189,190,191,192,193,194,195,196,197,198],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","use","patch","code","share"]