← Back to Plugins
Integration

Crypto Radar

ssdeanx By ssdeanx ⭐ 1 stars 👁 122 views ▲ 0 votes

OpenClaw plugin for multi-chain crypto market intelligence — tracks 39+ tokens across Solana, Polygon, Cosmos, and more with RSI, MACD, Bollinger Bands, ATR, and EMA technical indicators. RSS news aggregation with 3-strategy signal engine (momentum, mean-reversion, trend-following). Binance data integration, DeFiLlama on-chain metrics, configurable

GitHub

Install

npm install -g

README

<p align="center">
  <br>
  <a href="https://github.com/ssdeanx/OpenClaw-Crypto-Radar/actions/workflows/ci.yml"><img src="https://github.com/ssdeanx/OpenClaw-Crypto-Radar/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
  <a href="https://github.com/ssdeanx/OpenClaw-Crypto-Radar/actions/workflows/nightly-e2e.yml"><img src="https://github.com/ssdeanx/OpenClaw-Crypto-Radar/actions/workflows/nightly-e2e.yml/badge.svg" alt="Nightly E2E"></a>
  <a href="https://www.npmjs.com/package/openclaw-crypto-radar"><img src="https://img.shields.io/npm/v/openclaw-crypto-radar" alt="npm version"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
  <img src="https://img.shields.io/badge/node-%3E%3D22-blue" alt="Node">
  <img src="https://img.shields.io/badge/PRs-welcome-brightgreen" alt="PRs Welcome">
</p>

<h1 align="center">🛰️ OpenClaw Crypto Radar</h1>
<p align="center"><strong>Enterprise-grade multi-chain crypto market intelligence — OpenClaw plugin</strong></p>
<p align="center">Track 39+ tokens across 8 chains with 10 technical indicators, a 3-strategy signal engine, DeFiLlama on-chain metrics, RSS news aggregation, and rich SVG charts. Built for OpenClaw with a warm daemon for sub-50ms tool calls.</p>

<p align="center">
  <a href="#-features">Features</a> •
  <a href="#-architecture--data-flow">Architecture & Data Flow</a> •
  <a href="#-quick-install">Quick Install</a> •
  <a href="#-cli-reference">CLI Reference</a> •
  <a href="#-openclaw-plugin-tools">Plugin Tools</a> •
  <a href="#-development">Development</a> •
  <a href="SPEC.md">SPEC</a> •
  <a href="CHANGELOG.md">Changelog</a>
</p>

---

## ✨ Features

| Area | Highlights |
|------|-----------|
| **🪙 Token Coverage** | 39+ tokens across 8 chains — Solana, Polygon, Ethereum, BNB, Bitcoin, XRP, Cardano, Dogecoin, Cosmos, Sui, Aptos, Sei, Celestia, Injective, Thorchain |
| **📊 Technical Indicators** | **10 indicators**: RSI (14), MACD (12/26/9), Bollinger Bands (20/2), ATR (14), MFI (14), OBV, Stochastic (%K/%D), Ichimoku Cloud, Williams %R, CMF, TSI |
| **🧠 Signal Engine** | 3 strategies: Momentum (40%), Mean Reversion (20%), Trend Following (40%) — weighted voting with confidence scoring |
| **⏱️ Multi-Timeframe** | Parallel kline fetch across 15m, 1h, 4h, 1d intervals with weighted aggregation |
| **⛓️ On-Chain Metrics** | DeFiLlama integration — protocol TVL, chain TVL, fees (1d/7d/30d) — boosts signal confidence |
| **📰 News Aggregation** | 9 RSS feeds with relevance scoring, dedup, poison-filtering via token headline/body matching |
| **🎯 Dynamic Scan** | `--dynamic` flag auto-detects top N tokens by 24h volume (default: 50) |
| **📈 Charts** | SVG candlestick, line, multi-panel dashboards with CSS gradients, tooltips, crosshairs, responsive viewBox, accessibility |
| **💾 Export** | JSON, CSV, Markdown, terminal table, **XLSX** (Excel/Sheets with frozen headers + conditional formatting) |
| **🥇 Daemon Mode** | Warm HTTP daemon for sub-50ms tool calls, configurable cache refresh |
| **🛡️ Enterprise** | Circuit breaker (CLOSED/OPEN/HALF-OPEN), token-bucket rate limiter, TTL cache, atomic writes, log rotation (10MB → gzip), typed error classes |
| **⚙️ Configurable** | `radar.config.json` + `RADAR__*` env vars — strategy weights, timeframe weights, token whitelist, log level, data dir |
| **🔌 OpenClaw Plugin** | 8 agent tools returning structured JSON for agent reasoning |
| **📁 Data Directory** | Standardized to `~/.openclaw/data/crypto-radar/` — logs, rotation, cross-session persistence |

> **Requirements:** Node.js >= 22, OpenClaw (for plugin integration). No API keys required — uses public Binance REST API + RSS feeds + DeFiLlama (free).

---

## 🏗 Architecture & Data Flow

### System Context Diagram

```mermaid
graph TB
    subgraph "OpenClaw"
        A[Agent LLM] -->|tool calls| B[Plugin Bridge<br/>plugin/__init__.py]
    end

    subgraph "Crypto Radar CLI"
        B -->|spawn| C[CLI Entry<br/>dist/cli.js]
        C --> D[Radar Engine<br/>src/radar.ts]
        D --> E[Binance REST<br/>src/binance.ts]
        D --> F[Jupiter DEX<br/>src/jupiter.ts]
        D --> G[DeFiLlama<br/>src/onchain.ts]
        D --> H[RSS News<br/>src/news.ts]
        D --> I[CoinGecko<br/>src/coingecko.ts]
        D --> J[Signal Engine<br/>src/analysis/]
        J --> K[Momentum 40%]
        J --> L[Mean Reversion 20%]
        J --> M[Trend Following 40%]
        D --> N[Indicators<br/>src/indicators.ts]
        D --> O[Charts<br/>src/io/charts.ts]
        D --> P[Daemon<br/>src/daemon.ts]
    end

    subgraph "External APIs"
        E --> Q[Binance Exchange]
        F --> R[Jupiter Aggregator]
        G --> S[DeFiLlama]
        I --> T[CoinGecko]
    end

    subgraph "Output"
        D --> U[JSON / CSV / XLSX]
        D --> V[SQLite Export]
        D --> W[SVG Charts]
        D --> X[Terminal Tables]
    end
```

### Scan Pipeline — Data Flow

```mermaid
sequenceDiagram
    participant Agent as OpenClaw
    participant Plugin as Plugin Bridge
    participant CLI as CLI
    participant Binance as Binance API
    participant Jupiter as Jupiter DEX
    participant DefiLlama as DeFiLlama
    participant News as RSS Feeds

    Agent->>Plugin: crypto_radar_scan()
    Plugin->>CLI: node dist/cli.js scan --format json

    par Parallel Fetch
        CLI->>Binance: GET /ticker/24hr (39 pairs)
        CLI->>Jupiter: GET /price (Solana mints)
        CLI->>DefiLlama: GET /protocols (TVL/fees)
        CLI->>News: GET 11 RSS feeds (concurrency-4)
    end

    CLI->>CLI: Compute 10 indicators / token
    CLI->>CLI: Run 3 strategies / timeframe

    Note over CLI: 15m, 1h, 4h, 1d aggregation

    CLI-->>Plugin: JSON result
    Plugin-->>Agent: Structured response
    Agent->>Agent: Reason about signals
    Agent-->>User: Natural language response
```

### Signal Pipeline

```mermaid
flowchart LR
    A[Raw Ticker] --> B[Enrichment]
    B --> C[Technical Indicators]
    B --> D[News Scoring]
    B --> E[On-Chain Metrics]

    C --> F{Strategy Engine}
    D --> F
    E --> F

    F --> G[Momentum 40%]
    F --> H[Mean Reversion 20%]
    F --> I[Trend Following 40%]

    G --> J[Weighted Voting]
    H --> J
    I --> J

    J --> K[Composite Signal]
    K --> L{Confidence}
    L -->|>80%| M[Strong Buy/Sell]
    L -->|60-80%| N[Buy/Sell]
    L -->|<60%| O[Neutral]
```

### Project Structure

```
openclaw-crypto-radar/
├── src/
│   ├── cli.ts              # CLI entry (Commander.js)
│   ├── index.ts            # Public API exports
│   ├── types.ts            # Type definitions
│   ├── tokens.ts           # Token registry (39+ tokens)
│   ├── binance.ts          # Binance REST client (ticker + klines)
│   ├── coingecko.ts        # CoinGecko fallback price source
│   ├── indicators.ts       # 10 technical indicators (RSI, MACD, BB, ATR, MFI, OBV,
│   │                       #   Stochastic, Ichimoku, Williams %R, CMF, TSI)
│   ├── onchain.ts          # DeFiLlama integration (TVL, fees, prices)
│   ├── news.ts             # RSS news fetcher + relevance matcher
│   ├── signals.ts          # Composite signal scoring + on-chain boost
│   ├── output.ts           # Formatters (table, JSON, CSV, MD)
│   ├── xlsx-export.ts      # Excel export via exceljs
│   ├── radar.ts            # Main enrichment pipeline
│   ├── daemon.ts           # Warm daemon for sub-50ms tool calls
│   ├── core/               # Enterprise infrastructure
│   │   ├── config.ts       # Typed config (file + env + defaults)
│   │   ├── errors.ts       # 6 typed error classes
│   │   ├── cache.ts        # TTL-based in-memory cache
│   │   ├── rate-limiter.ts # Token-bucket rate limiter
│   │   ├── logger.ts       # Structured JSON logger (6 levels)
│   │   ├── circuit-breaker.ts # CLOSED/OPEN/HALF-OPEN states
│   │   └── log-rotation.ts # Rotate at 10MB, gzip, keep 5
│   ├── analysis/           # Strategy signal engine
│   │   ├── strategies.ts   # Strategy interface + types
│   │   ├── engine.ts       # Weighted voting engine + config overrides
│   │   ├── momentum.ts     # Momentum strategy (40%)
│   │   ├── mean-reversion.ts # Mean reversion (20%)
│   │   └── trend-following.ts # Trend following (40%)
│   ├── io/                 # Visual output
│   │   └── charts.ts       # ASCII sparklines + SVG charts (line, candlestick, dashboard)
│   └── monitor/            # System health
│       └── health.ts       # Health checks (API, data, system)
├── plugin/
│   ├── __init__.py         # OpenClaw plugin Python bridge
│   └── plugin.yaml         # Plugin metadata
├── data/                   # Log output directory
├── .github/workflows/      # CI pipeline (Node 20 & 22)
├── SPEC.md                 # Full specification
├── CHANGELOG.md            # Release history
├── CRYPTO-ENTERPRISE-AUDIT.md  # Enterprise audit
├── .env.example            # Environment config template
└── package.json
```

---

## 📦 Marketplace Installation

### From OpenClaw Marketplace (recommended)
```bash
openclaw plugins install crypto-radar
```

### From npm
```bash
npm install -g openclaw-crypto-radar
crypto-radar scan --filter SOL BTC --no-news
```

### One-liner (no npm/node required)
```bash
curl -fsSL https://raw.githubusercontent.com/ssdeanx/OpenClaw-Crypto-Radar/main/scripts/install.sh | bash
```

### From source
```bash
git clone https://github.com/ssdeanx/OpenClaw-Crypto-Radar.git
cd OpenClaw-Crypto-Radar
npm install && npm run build
ln -sf "$PWD" ~/.openclaw/plugins/crypto-radar
```

---

## 🚀 Quick Install

```bash
# Clone + install
git clone https://github.com/ssdeanx/OpenClaw-Crypto-Radar.git
cd OpenClaw-Crypto-Radar
npm install && npm run build

# Register as OpenClaw plugin
ln -sf "$PWD" ~/.openclaw/plugins/crypto-radar
# or: openclaw plugins install .

# Verify
openclaw plugins list | grep crypto-radar
openclaw tools list | grep crypto_radar

# Run your first scan
node dist/cli.js scan --filter SOL --no-news --format json
```

### Quick Start with Dynamic Scan

```bash
# Auto-detect top 

... (truncated)
integration

Comments

Sign in to leave a comment

Loading comments...