◈ DOCUMENTATION v1.0

TAO Intelligence Dashboard

A live Bittensor (TAO) crypto monitoring tool with real-time price data, technical indicators, news impact analysis, and actionable trading suggestions — all backed by a server-side data cache.

↗ Open Live Dashboard
OVERVIEW

What is this?

A self-hosted, tactical-style crypto dashboard focused on Bittensor (TAO). Unlike most price trackers, this dashboard includes a server-side data cache that fetches from CoinGecko and Alternative.me every 90 seconds — meaning browser clients never hit API rate limits, and the data is always fresh when you load the page.

The dashboard was built to be genuinely useful: not just a price chart, but a tool that combines technical signals, news impact analysis, historical context, and clearly-reasoned trade suggestions based on actual market data.

📡

Live Data Backend

Node.js server caches CoinGecko + F&G data server-side, served via nginx proxy. No browser rate limits.

📊

Technical Analysis

RSI(14), Bollinger Bands, support/resistance from real 1Y price data, composite signal scoring.

🧠

Intelligence Report

5 actionable suggestion cards with price triggers, confidence levels, reasoning, and risk factors.

FEATURES

What's on the dashboard

💲

Live Price Header

Animated number counter on load, 24h change badge (green/red), live dot indicator. Auto-refreshes every 60 seconds in-place without reloading the page.

📈

90-Day Price Chart

Built with Chart.js 4. Shows price with gradient fill, MA20 (dashed yellow), and MA50 (dotted orange). Time axis via chartjs-adapter-date-fns. Right-side Y axis for cleaner layout.

🎯

Technical Signal Panel

RSI(14) computed from the last 15 price points. Bollinger Band position (20-day). Fear & Greed contrarian signal. Price vs 1-year average. Post-halving cycle indicator. Combined into a composite buy/neutral/caution verdict.

🛡️

Support & Resistance Levels

Calculated from real 1-year price data: 20th, 50th, and 80th percentile price levels, plus the 1Y high and low. Current price is highlighted with zone classification.

😨

Fear & Greed Gauge

Semicircle arc gauge with animated needle, 7-day bar history. Color-coded from red (Extreme Fear) to green (Extreme Greed). Data from Alternative.me free API.

📰

News Impact Analysis

5 curated news cards covering the most significant recent events. Each shows an impact badge (VERY BULLISH → CAUTION), description, and a price impact bar showing strength of effect on price.

Intelligence Report

5 actionable suggestion cards: ACCUMULATE ($250–$280), STRONG BUY ($220–$240), HOLD/WAIT ($280–$320), PARTIAL TAKE PROFIT ($380–$420), and DO NOT CHASE (above $420). Each has a confidence level, multi-sentence reasoning backed by data, and risk factors. Prominently marked as not financial advice.

ARCHITECTURE

How it works

The system has three layers: a Node.js API server that fetches and caches external data, an nginx reverse proxy that routes requests, and the static HTML frontend.

DATA FLOW
┌─────────────┐ /api/tao ┌──────────────────┐ every 90s ┌──────────────────┐ │ Browser │ ──────────────► │ nginx proxy │ ──────────────► │ Node.js cache │ │ (tao.html) │ ◄────────────── │ theport.cloud │ ◄────────────── │ api-server.js │ └─────────────┘ JSON response └──────────────────┘ cached data └──────────┬───────┘ │ fetches ┌────────────────────┤ │ │ ┌──────────▼──────┐ ┌────────▼────────┐ │ CoinGecko │ │ Alternative.me │ │ (price, OHLC) │ │ (Fear & Greed) │ └─────────────────┘ └─────────────────┘

The frontend calls /api/tao on load and every 60 seconds. The backend refreshes from external APIs every 90 seconds independently. This means the browser always gets a fast local response, and external API rate limits are never hit regardless of how many people view the page.

API REFERENCE

API endpoint

The backend exposes two endpoints:

ENDPOINTS
GET /api/tao — Full market data, indicators, F&G, 90d chart data GET /api/health — Health check: { ok, cache_age_s, has_data }
FIELDTYPEDESCRIPTION
pricenumberCurrent TAO price in USD
change_24hnumber24-hour % price change
change_7dnumber7-day % price change
change_30dnumber30-day % price change
market_capnumberMarket cap in USD
volume_24hnumber24h trading volume in USD
ath / atlnumberAll-time high / low in USD
prices_90darray[timestamp, price] pairs for 90-day chart
volumes_90darray[timestamp, volume] pairs for 90-day chart
stats_1yobjectmin, max, avg, p20, p50, p80 from 1-year data
indicators.rsinumberRSI(14) computed from last 15 price points
indicators.bb_*numberBollinger Bands (20-day, 2σ): upper, lower, mid, position %
fear_greedarrayLast 7 days: { date, value, classification }
cache_age_snumberSeconds since last external API refresh
SIGNAL METHODOLOGY

How signals are computed

SIGNALMETHODSCORING LOGIC
RSI (14) Computed from last 15 close prices using Wilder's smoothing method RSI ≥80 = 15 (overbought/bearish); RSI ≤30 = 90 (oversold/bullish); scale between
Bollinger Position 20-day MA ± 2σ. Position = (price − lower) / (upper − lower) × 100 ≥85% (near upper) = 15; ≤15% (near lower) = 85; neutral at 50%
Fear & Greed Alternative.me index (0–100). Low values = contrarian buy signals ≤15 = 80 (extreme fear = buy); ≥75 = 20 (extreme greed = caution)
vs 1Y Average Current price vs rolling 1-year average from CoinGecko daily data Below avg = bullish; above avg = caution; threshold bands at 75% and 125%
Halving Cycle Static: post-halving (Dec 14, 2025) is structurally bullish for 6–18 months Fixed score of 72/100 during the post-halving accumulation window
Composite Simple average of all 5 signal scores (0–100) ≥65 = BUY ZONE; 45–64 = NEUTRAL/WAIT; <45 = CAUTION
TECH STACK

Requirements & dependencies

Node.js v18+
Backend API server (api-server.js) — no npm packages needed, uses built-in http/https
nginx
Reverse proxy for /api/ routes + static file serving
Chart.js 4.4 (CDN)
Price and volume charts. Loaded from jsdelivr.net CDN.
chartjs-adapter-date-fns (CDN)
Time-axis adapter for Chart.js date formatting
CoinGecko Free API
No API key required. Rate limit handled server-side. Endpoints: /coins/bittensor, /market_chart
Alternative.me
Crypto Fear & Greed index. Free, no key required. /fng/?limit=14
Google Fonts: Inter
Loaded from fonts.googleapis.com. No fallback font required.
Pure CSS
No CSS frameworks. Glassmorphism via backdrop-filter + rgba. Responsive grid layout.
SERVER FILES
/home/celz/.openclaw/workspace/hello/ ├── api-server.js # Node.js backend — caches API data, serves /api/tao ├── api.log # API server stdout log ├── crypto/ │ ├── tao.html # Main dashboard │ └── readme.html # This file └── index.html # Root hello page /etc/nginx/sites-available/hello # nginx config with /api/ proxy_pass
NGINX CONFIG (KEY SECTION)
location /api/ { proxy_pass http://127.0.0.1:3456; proxy_set_header Host $host; }
RATE LIMITS & RELIABILITY

API rate limits

⏱️

CoinGecko Free Tier

10–30 calls/minute depending on endpoint. The backend makes 4 parallel calls every 90 seconds = ~2.7 calls/minute. Well within limits. If CoinGecko is temporarily unavailable, the server keeps serving the last cached response.

🛡️

Offline Fallback

If the API server is unreachable, the frontend shows an "OFFLINE" badge and continues displaying the last known data. The server auto-retries every 90 seconds. The browser retries every 15 seconds on error.

🔄

Auto-Restart

The api-server.js process should be run under a process manager (pm2 or systemd) for production use to ensure it restarts automatically after server reboots. Currently running as a background node process.

⚠ DISCLAIMER

This dashboard is for educational and informational purposes only. Nothing on this page constitutes financial advice, investment advice, trading advice, or any other sort of advice. The actionable suggestions in the Intelligence Report are algorithmic analysis based on historical price data and publicly available indicators — they do not account for your personal financial situation, risk tolerance, tax implications, or other factors relevant to investment decisions. Cryptocurrency markets are highly volatile. Past performance is not indicative of future results. Always do your own research and consult a qualified financial advisor before making any investment decisions.