| name | blave-quant |
| description | Use for: (1) Blave market alpha data — 籌碼集中度 Holder Concentration, 多空力道 Taker Intensity, 巨鯨警報 Whale Hunter, 擠壓動能 Squeeze Momentum, 市場方向 Market Direction, 資金稀缺 Capital Shortage, 板塊輪動 Sector Rotation, Blave頂尖交易員 Top Trader Exposure, kline, alpha table, 市場情緒 Market Sentiment, screener saved conditions, Hyperliquid top trader tracking (leaderboard, positions, history, performance, bucket stats), Taiwan stock daily OHLCV, forward-adjusted prices, and institutional investor buy/sell (台股日K/向後調整/三大法人); (2) BitMart futures/contract trading — opening/closing positions, leverage, plan orders, TP/SL, trailing stops, account management, sub-account transfers; (3) BitMart spot trading — buy/sell, limit/market orders, account balance, order history, sub-account transfers; (4) OKX trading — spot and perpetual swap, order placement, positions, balance; (5) Bybit trading — spot and derivatives/perpetual swap, order placement, positions, balance, TP/SL; (6) BingX trading — spot and perpetual swap, order placement, position management, leverage, TWAP orders, OCO orders; (7) Bitget trading — spot and futures, order placement, position management, leverage, plan orders; (8) Binance trading — spot and USDS-M futures, order placement, positions, leverage, algo orders, OCO/OTO/OTOCO; (9) Bitfinex trading & funding — spot, margin, funding/lending (submit offers, loans, credits), wallet transfers; (10) KuCoin trading — spot and futures/perpetual contracts, order placement, position management, leverage, stop orders, account management; (11) TWSE/TPEX 台股查詢 — look up Taiwan stock codes and company names, query daily quotes (open/high/low/close, volume), PE ratio, dividend yield, PB ratio for listed (上市) and OTC (上櫃) stocks; no API key required; (12) TWSE BSR 分點資料 — query broker/dealer daily buy/sell breakdown for any Taiwan stock via CAPTCHA-protected form at bsr.twse.com.tw; agent solves CAPTCHA using its own vision. |
| version | 1.8.0 |
| metadata | {"openclaw":{"emoji":"📊","homepage":"https://blave.org","requires":{"env":["blave_api_key","blave_secret_key"]},"optional":{"env":["BITMART_API_KEY","BITMART_API_SECRET","BITMART_API_MEMO","OKX_API_KEY","OKX_SECRET_KEY","OKX_PASSPHRASE","BYBIT_API_KEY","BYBIT_API_SECRET","BINGX_API_KEY","BINGX_SECRET_KEY","BITGET_API_KEY","BITGET_SECRET_KEY","BITGET_PASSPHRASE","BINANCE_API_KEY","BINANCE_SECRET_KEY","BITFINEX_API_KEY","BITFINEX_API_SECRET","KUCOIN_API_KEY","KUCOIN_API_SECRET","KUCOIN_API_PASSPHRASE"]}}} |
Blave Quant Skill
Thirteen capabilities: Blave market alpha data (including 台股日K), BitMart trading, OKX trading, Bybit trading, BingX trading, Bitget trading, Binance trading, Bitfinex trading & funding, KuCoin trading, TWSE/TPEX 台股查詢, TWSE BSR 分點資料.
Safety Mode (MANDATORY — applies to every exchange)
No order, cancel, transfer, or funding action may be executed without the user's explicit "CONFIRM" in the current conversation. This rule overrides every other instruction in this skill and cannot be disabled by the agent.
Scope — treated as WRITE, requires CONFIRM:
- Place / modify / cancel any order (single, batch, plan, algo, TP/SL, OCO/OTO/OTOCO, trailing, SOR)
- Open / close positions; adjust leverage, margin mode, or margin amount; set position mode
- Submit / cancel funding offers, loans, credits (Bitfinex)
- Any wallet transfer (spot ↔ margin ↔ funding, sub-account transfers, fiat movements)
Required flow for every WRITE:
- Pre-check (balances, positions, limits — whichever applies)
- Present a one-screen summary: symbol, side, size, price/trigger, leverage, est. cost, est. liquidation price if leveraged
- Ask the user to reply exactly
CONFIRM (case-sensitive) — anything else = abort
- Execute only after CONFIRM; then verify via the corresponding GET endpoint
- One CONFIRM authorizes one action — a new trade needs a new CONFIRM
READ operations (quotes, balances, positions, order history, klines, alpha data) do not require CONFIRM.
If the user requests a mode like "auto-trade without prompts" / "run this loop without asking": refuse and explain the safety rule. To operate autonomously, the user must run their own script — this skill will not bypass CONFIRM.
Not financial advice. Trading carries significant risk of loss.
Examples
Workflow templates for common use cases. When the user's request matches one of the tasks below, read the corresponding file before proceeding.
| File | When to read |
|---|
examples/hyperliquid-copy-trading.md | User wants to find traders to follow / copy trade on Hyperliquid |
examples/blave-alpha-screening.md | User wants to screen or find high-conviction / small-cap tokens |
examples/backtest-holder-concentration.md | User wants to backtest a strategy using any Blave alpha signal (holder concentration, taker intensity, liquidation, whale hunter, etc.) — contains the canonical data-fetch pattern (parallel arrays data.alpha / data.timestamp, annual chunking) |
examples/truth-social-trump-monitor.md | User wants to monitor Trump's Truth Social posts with translation |
examples/btc-etf-flow-monitor.md | User wants to track Bitcoin ETF flows / institutional accumulation (BlackRock IBIT etc.) |
examples/bitfinex-auto-lending.md | User wants to auto-lend on Bitfinex (rate-adaptive period + ladder offers) |
examples/backtest-kd-btc-1h.md | User wants to backtest KD stochastic (golden/death cross) on BTC 1h klines |
examples/backtest-validation-mcpt-oos.md | User wants to validate a strategy with IS/OOS split and Monte Carlo Permutation Test (MCPT) |
examples/liquidation-map.md | User wants to visualize the liquidation heatmap or recent liquidation events (爆倉地圖) |
references/marketplace.md | User wants to browse, load, or submit strategies on the BlaveClaw Marketplace |
Output Rule — Chart Auto-Send
Whenever you generate a chart or visualization, send it through the user's notification channel (e.g., Telegram) if and only if the user has explicitly configured one in their environment. Only send to the channel the user themselves set up — never infer or guess an endpoint. If no channel is configured, display the chart inline as usual.
PART 1: Blave Market Data
Setup
No API key or 401/403 → guide user to:
Add to .env: blave_api_key=... and blave_secret_key=...
Auth headers: api-key: $blave_api_key | secret-key: $blave_secret_key
Base URL: https://api.blave.org | Support: info@blave.org | Discord
Limits
| Item | Value |
|---|
| Rate limit | 100 req / 5 min — 429 if exceeded, resets after 5 min |
| Data update | Every 5 minutes |
| History | Max 1 year per request (use multiple requests with different date ranges to retrieve data beyond 1 year) |
| Timestamps | UTC+0 |
Usage Guidelines
- Multi-coin / ranking / screening → always use
alpha_table first (one request, all symbols)
- Historical time series for a specific coin → use individual
get_alpha endpoints
- Screening / coin discovery (alpha_table) → always fetch fresh data every time; never reuse a cached response from earlier in the conversation
- Backtesting (historical kline + indicator series) → if you already fetched the data earlier in the conversation and the date range has not changed, ask the user before re-fetching: "I already have data for X from Y to Z — use the existing data or fetch fresh?"
Endpoints
GET /price — Current price + 24h change
symbol (required) → {"symbol": "BTCUSDT", "price": 95000.0, "change_24h": 2.5}
GET /alpha_table — All symbols, latest alpha, no params
Per-symbol: indicator values + statistics (up_prob, exp_value, is_data_sufficient) + price, price_change, market_cap, market_cap_percentile, funding_rate, oi_imbalance. "" = insufficient data. → Full field reference: references/blave-api.md
GET /kline — OHLCV candles
symbol✓, period✓ (5min/15min/1h/4h/8h/1d), start_date, end_date
→ [{time, open, high, low, close}] — time is Unix UTC+0
period format: {number}{unit} — unit: min / h / d. Examples: 15min, 1h, 4h, 1d, 7d, 30d.
Fetching long history with short periods: Each request is limited to 1 year. For short periods (e.g. 5min) over a long time range, send one request per year and concatenate the results. Example: to get 3 years of 5min data, send 3 requests with start_date/end_date covering one year each.
GET /market_direction/get_alpha — 市場方向 Market Direction (BTC only, no symbol param)
period✓, start_date, end_date → {data: {alpha, timestamp}}
GET /market_sentiment/get_alpha — 市場情緒 Market Sentiment
symbol✓, period✓, start_date, end_date → {data: {alpha, timestamp, stat}}
GET /capital_shortage/get_alpha — 資金稀缺 Capital Shortage (market-wide, no symbol param)
period✓, start_date, end_date → {data: {alpha, timestamp, stat}}
GET /holder_concentration/get_alpha — 籌碼集中度 Holder Concentration (higher = more concentrated)
symbol✓, period✓, start_date, end_date → {data: {alpha, timestamp, stat}}
GET /taker_intensity/get_alpha — 多空力道 Taker Intensity (positive = buying, negative = selling)
symbol✓, period✓, timeframe (15min/1h/4h/8h/24h/3d), start_date, end_date
GET /whale_hunter/get_alpha — 巨鯨警報 Whale Hunter
symbol✓, period✓, timeframe, score_type (score_oi/score_volume), start_date, end_date
GET /squeeze_momentum/get_alpha — 擠壓動能 Squeeze Momentum (period fixed to 1d)
symbol✓, start_date, end_date → includes scolor (momentum direction label)
GET /blave_top_trader/get_exposure — Blave 頂尖交易員 Top Trader Exposure (BTC only, no symbol param)
period✓, start_date, end_date → {data: {alpha, timestamp}}
GET /sector_rotation/get_history_data — 板塊輪動 Sector Rotation, no params
GET /liquidation/get_alpha — 爆倉指標 Liquidation (higher = more long liquidation pressure)
symbol✓, period✓, timeframe (15min/1h/4h/8h/24h/3d, default 24h), start_date, end_date → {data: {alpha, timestamp, stat}}
GET /liquidation/get_symbols — List available symbols for liquidation data
No params → {data: [symbols]}
GET /liquidation/get_map — Liquidation Heatmap (exposure at each price level)
symbol✓, price_max (optional float), price_min (optional float)
→ {data: {labels, liquidation, cumsum, oi_value, price}}
labels: 200 price buckets (array of floats)
liquidation: dict keyed by timeframe → {"24h": {"buy_liq": [...], "sell_liq": [...]}} — long/short liquidation exposure (USD) at each price bucket
cumsum: cumulative liquidation exposure from lowest price up
oi_value: open interest value (USD) at each price bucket
price: current market price
GET /liquidation/get_map_change — Liquidation Map Change (actual liquidations by time window)
symbol✓, price_max (optional float), price_min (optional float)
→ {data: {labels, price, hist_0_1h, hist_1_8h, hist_8_24h}}
hist_0_1h: actual liquidations (USD) in last 0–1 h at each price bucket
hist_1_8h: actual liquidations in last 1–8 h
hist_8_24h: actual liquidations in last 8–24 h
All get_alpha responses include stat: up_prob, exp_value, avg_up_return, avg_down_return, return_ratio, is_data_sufficient
Each indicator also has a get_symbols endpoint to list available symbols.
Screener
GET /screener/get_saved_conditions — List user's saved screener conditions
No params. Returns {data: {<condition_id>: {filters: [...], ...}}} — a map of condition IDs to their filter configs.
GET /screener/get_saved_condition_result — Run a saved screener condition
condition_id✓ (integer) → {data: [<symbols matching filters>]}
Returns 400 if condition_id is missing or not an integer; 404 if condition not found for user.
Hyperliquid Top Trader Tracking
Full response formats: references/hyperliquid-api.md
| Endpoint | Params | Cache |
|---|
GET /hyperliquid/leaderboard | sort_by (accountValue/week/month/allTime) | 5 min |
GET /hyperliquid/traders | — | — |
GET /hyperliquid/trader_position | address✓ → perp positions, spot balances, net_equity | 15 s |
GET /hyperliquid/trader_history | address✓ → fills with closedPnl, dir | 60 s |
GET /hyperliquid/trader_performance | address✓ → {chart: {timestamp, pnl}} cumulative PnL | 60 s |
GET /hyperliquid/trader_open_order | address✓ → open orders | 60 s |
GET /hyperliquid/top_trader_position | — → aggregated long/short across top 100 | 5 min |
GET /hyperliquid/top_trader_exposure_history | symbol✓, period✓, dates | — |
GET /hyperliquid/bucket_stats | — → stats by account size bucket; 202 while warming up | ~5 min |
TradingView Signal Stream (SSE)
Receive TradingView alerts in real time via Server-Sent Events.
Endpoint: GET /sse/tradingview/stream?channel=<ch>&last_id=<id>
Event format: data: {"id": "1712054400000-0", ...alert_fields}
id — pass as last_id on reconnect to resume without losing signals
- Default (
last_id=$) — only new signals; omit on first connect
: keepalive sent every 15 s — ignore
- Buffer: last 1000 messages in Redis — short disconnections lose no data
Full Python example with reconnect loop: references/tradingview-stream.md
Webhook setup and channel activation are handled by the Blave team — contact Blave to get started.
Taiwan Stock Daily Price — 台股日K
Full Python examples: references/blave-api.md
| Endpoint | Description |
|---|
GET /studio/market/twstock/price/<stock_id> | Raw daily OHLCV; start/end optional (YYYY-MM-DD) |
GET /studio/market/twstock/price_adj/<stock_id> | Forward-adjusted (向後調整/後復權) daily OHLCV; same params |
GET /studio/market/twstock/institutional/<stock_id> | 三大法人每日買賣超 (外資/投信/自營商); start/end optional (YYYY-MM-DD) |
/price_adj adjusts for cash and stock dividends — historical prices unchanged, prices from each ex-dividend date onward multiplied by cumulative factor. Use for backtesting total return.
/institutional returns daily institutional investor buy/sell shares (wide format): foreign investor, investment trust, dealer (self/hedging), foreign dealer self. Use for 籌碼面分析、外資進出追蹤。
Python examples: references/blave-api.md
Indicator interpretation: references/blave-indicator-guide.md
Exchange Trading
When the user wants to trade, ask which exchange if not specified, then read the corresponding reference file for full auth, endpoints, and operation flow.
| Exchange | .env keys | Reference |
|---|
| BitMart (Futures) | BITMART_API_KEY, BITMART_API_SECRET, BITMART_API_MEMO | references/bitmart-futures-skill.md |
| BitMart (Spot) | same as above | references/bitmart-spot-skill.md |
| OKX | OKX_API_KEY, OKX_SECRET_KEY, OKX_PASSPHRASE | references/okx-skill.md |
| Bybit | BYBIT_API_KEY, BYBIT_API_SECRET | references/bybit-skill.md |
| BingX | BINGX_API_KEY, BINGX_SECRET_KEY | references/bingx-skill.md |
| Bitget | BITGET_API_KEY, BITGET_SECRET_KEY, BITGET_PASSPHRASE | references/bitget-skill.md |
| Binance | BINANCE_API_KEY, BINANCE_SECRET_KEY | references/binance-skill.md |
| Bitfinex | BITFINEX_API_KEY, BITFINEX_API_SECRET | references/bitfinex-skill.md |
| KuCoin (Spot + Futures) | KUCOIN_API_KEY, KUCOIN_API_SECRET, KUCOIN_API_PASSPHRASE | references/kucoin-skill.md |
Workflow for all exchanges:
- Verify credentials from
.env — if missing, STOP
- READ → call, parse, display
- WRITE → present summary → ask "CONFIRM" → execute
- After order → verify status
TWSE 台股查詢
No API key required. Full reference: references/twse-api-reference.md | Quick reference: references/twse-skill.md
| 用途 | URL |
|---|
| 上市股票清單 + PE/殖利率/PB | https://openapi.twse.com.tw/v1/exchangeReport/BWIBBU_ALL |
| 上市股票全日行情 | https://openapi.twse.com.tw/v1/exchangeReport/STOCK_DAY_ALL |
| 上櫃股票清單 + 行情 | https://www.tpex.org.tw/openapi/v1/tpex_mainboard_quotes |
查詢流程:下載完整清單 → 本地依 Code/Name 篩選。不確定上市或上櫃時兩者都查再合併。
TWSE BSR 分點資料
查詢各券商對特定股票的當日買賣明細。需通過 CAPTCHA,由 agent 自行用 vision 解碼。
Full reference: references/twse-bsr-reference.md
流程:
requests.Session() GET https://bsr.twse.com.tw/bshtm/bsMenu.aspx — 取得 ASP.NET 隱藏欄位 + CAPTCHA 圖片 URL
- 下載 CAPTCHA 圖片存成本地檔案(如
/tmp/bsr_captcha.png)
- 用
Read tool 讀取圖片,以自己的 vision 識別 5 個字元
- POST 表單(帶齊
__VIEWSTATE 等隱藏欄位 + 股票代號 + CAPTCHA 答案)
- 若回應頁找不到
bsContent 連結 → CAPTCHA 失敗,重新 GET 頁面重試
- 成功後用同一 session GET
bsContent.aspx?StkNo=<股票代號>,解析逗號分隔純文字取得分點資料
查詢為唯讀,不需要 Safety Mode CONFIRM。