blave-quant

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); (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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "blave-quant" with this command: npx skills add blave-tw/blave-quant-skill/blave-tw-blave-quant-skill-blave-quant

Blave Quant Skill

Eight capabilities: Blave market alpha data, BitMart trading, OKX trading, Bybit trading, BingX trading, Bitget trading, Binance trading, Bitfinex trading & funding.

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:

  1. Pre-check (balances, positions, limits — whichever applies)
  2. Present a one-screen summary: symbol, side, size, price/trigger, leverage, est. cost, est. liquidation price if leveraged
  3. Ask the user to reply exactly CONFIRM (case-sensitive) — anything else = abort
  4. Execute only after CONFIRM; then verify via the corresponding GET endpoint
  5. 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.

FileWhen to read
examples/hyperliquid-copy-trading.mdUser wants to find traders to follow / copy trade on Hyperliquid
examples/blave-alpha-screening.mdUser wants to screen or find high-conviction / small-cap tokens
examples/backtest-holder-concentration.mdUser wants to backtest a strategy using Blave alpha signals
examples/truth-social-trump-monitor.mdUser wants to monitor Trump's Truth Social posts with translation
examples/btc-etf-flow-monitor.mdUser wants to track Bitcoin ETF flows / institutional accumulation (BlackRock IBIT etc.)
examples/bitfinex-auto-lending.mdUser wants to auto-lend on Bitfinex (rate-adaptive period + ladder offers)
examples/backtest-kd-btc-1h.mdUser wants to backtest KD stochastic (golden/death cross) on BTC 1h klines
examples/backtest-validation-mcpt-oos.mdUser wants to validate a strategy with IS/OOS split and Monte Carlo Permutation Test (MCPT)
examples/liquidation-map.mdUser wants to visualize the liquidation heatmap or recent liquidation events (爆倉地圖)

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

ItemValue
Rate limit100 req / 5 min — 429 if exceeded, resets after 5 min
Data updateEvery 5 minutes
HistoryMax 1 year per request (use multiple requests with different date ranges to retrieve data beyond 1 year)
TimestampsUTC+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

EndpointParamsCache
GET /hyperliquid/leaderboardsort_by (accountValue/week/month/allTime)5 min
GET /hyperliquid/traders
GET /hyperliquid/trader_positionaddress✓ → perp positions, spot balances, net_equity15 s
GET /hyperliquid/trader_historyaddress✓ → fills with closedPnl, dir60 s
GET /hyperliquid/trader_performanceaddress✓ → {chart: {timestamp, pnl}} cumulative PnL60 s
GET /hyperliquid/trader_open_orderaddress✓ → open orders60 s
GET /hyperliquid/top_trader_position— → aggregated long/short across top 1005 min
GET /hyperliquid/top_trader_exposure_historysymbol✓, 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.


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 keysReference
BitMart (Futures)BITMART_API_KEY, BITMART_API_SECRET, BITMART_API_MEMOreferences/bitmart-futures-skill.md
BitMart (Spot)same as abovereferences/bitmart-spot-skill.md
OKXOKX_API_KEY, OKX_SECRET_KEY, OKX_PASSPHRASEreferences/okx-skill.md
BybitBYBIT_API_KEY, BYBIT_API_SECRETreferences/bybit-skill.md
BingXBINGX_API_KEY, BINGX_SECRET_KEYreferences/bingx-skill.md
BitgetBITGET_API_KEY, BITGET_SECRET_KEY, BITGET_PASSPHRASEreferences/bitget-skill.md
BinanceBINANCE_API_KEY, BINANCE_SECRET_KEYreferences/binance-skill.md
BitfinexBITFINEX_API_KEY, BITFINEX_API_SECRETreferences/bitfinex-skill.md

Workflow for all exchanges:

  1. Verify credentials from .env — if missing, STOP
  2. READ → call, parse, display
  3. WRITE → present summary → ask "CONFIRM" → execute
  4. After order → verify status

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

tcm-constitution-recognition-analysis

Determines nine TCM constitution types including Yin deficiency, Yang deficiency, Qi deficiency, phlegm-dampness, and blood stasis through facial features and physical signs, and provides personalized health preservation and conditioning suggestions. | 中医体质识别分析技能,通过面部特征与体征判别阴虚、阳虚、气虚、痰湿、血瘀等九种中医体质类型,给出个性化养生调理建议

Archived SourceRecently Updated
Web3

0xarchive

Query historical crypto market data from 0xArchive across Hyperliquid, Lighter.xyz, and HIP-3. Covers orderbooks, trades, candles, funding rates, open interest, liquidations, and data quality. Use when the user asks about crypto market data, orderbooks, trades, funding rates, or historical prices on Hyperliquid, Lighter.xyz, or HIP-3.

Archived SourceRecently Updated
Web3

E2E Test Recorder

# Screen Recorder Demo Skill ## 概述 基于 Puppeteer 的自动化端到端测试录制 Skill,支持录制浏览器操作并生成演示视频/GIF。 ## 功能特性 ### 核心功能 - 🎥 **浏览器操作录制**:录制网页操作过程 - 🎯 **智能区域录制**:支持全屏或指定区域录制 - 🔄 **格式转换**:支持 MP4、GIF、WebM 格式 - ⚡ **自动化测试集成**:与测试框架无缝集成 ### 高级功能 - 📊 **性能监控**:录制时显示FPS和文件大小 - 🎨 **视频编辑**:添加水印、字幕、片头片尾 - 🔧 **配置灵活**:支持多种录制参数配置 - 📱 **跨平台**:支持 Windows、macOS、Linux ## 安装要求 ### 系统要求 - Node.js 16+ - npm 或 yarn - Chrome/Chromium 浏览器 ### 依赖安装 ```bash npm install puppeteer puppeteer-screen-recorder ffmpeg-static # 或 yarn add puppeteer puppeteer-screen-recorder ffmpeg-static ``` ## 快速开始 ### 1. 基础录制 ```javascript const { ScreenRecorder } = require('./scripts/record-browser'); const recorder = new ScreenRecorder({ outputPath: './recordings/demo.mp4', fps: 30, quality: 80 }); await recorder.startRecording('https://your-app.com'); // 执行操作... await recorder.stopRecording(); ``` ### 2. 端到端测试录制 ```javascript const { recordE2ETest } = require('./scripts/record-test'); await recordE2ETest({ url: 'http://localhost:3000', testSteps: [ { action: 'click', selector: '#login-btn' }, { action: 'type', selector: '#username', text: 'testuser' }, { action: 'type', selector: '#password', text: 'password123' }, { action: 'click', selector: '#submit-btn' } ], output: './recordings/login-test.mp4' }); ``` ## API 文档 ### ScreenRecorder 类 #### 构造函数 ```javascript new ScreenRecorder(options) ``` **options**: - `outputPath` (string): 输出文件路径 - `fps` (number): 帧率,默认 30 - `quality` (number): 视频质量 0-100,默认 80 - `aspectRatio` (string): 宽高比,如 '16:9' - `codec` (string): 视频编码器,默认 'libx264' #### 方法 - `startRecording(url, options)`: 开始录制 - `stopRecording()`: 停止录制 - `pauseRecording()`: 暂停录制 - `resumeRecording()`: 恢复录制 - `addAnnotation(text, position)`: 添加标注 - `addWatermark(imagePath, position)`: 添加水印 ### 工具函数 #### recordE2ETest(config) 录制端到端测试过程 **config**: - `url` (string): 测试页面URL - `testSteps` (Array): 测试步骤数组 - `output` (string): 输出文件路径 - `headless` (boolean): 是否无头模式,默认 false #### convertVideo(input, output, options) 视频格式转换 #### mergeVideos(videos, output) 合并多个视频文件 ## 配置示例 ### 基础配置 ```json { "recorder": { "fps": 30, "quality": 80, "outputDir": "./recordings", "defaultFormat": "mp4" }, "browser": { "headless": false, "viewport": { "width": 1920, "height": 1080 }, "slowMo": 50 }, "annotations": { "enabled": true, "fontSize": 24, "fontColor": "#ffffff", "backgroundColor": "#00000080" } } ``` ### 测试配置 ```json { "testSuites": { "login": { "url": "http://localhost:3000/login", "steps": "scripts/test-steps/login.json", "output": "recordings/login-test.mp4" }, "dashboard": { "url": "http://localhost:3000/dashboard", "steps": "scripts/test-steps/dashboard.json", "output": "recordings/dashboard-test.mp4" } } } ``` ## 与测试框架集成 ### Jest 集成 ```javascript // jest.config.js module.exports = { setupFilesAfterEnv: ['./jest.setup.js'], reporters: [ 'default', ['./scripts/jest-video-reporter', { outputDir: './test-recordings' }] ] }; ``` ### Playwright 集成 ```javascript // playwright.config.js const { defineConfig } = require('@playwright/test'); module.exports = defineConfig({ use: { video: 'on', screenshot: 'on', }, reporter: [ ['html', { outputFolder: 'playwright-report' }], ['./scripts/playwright-video-reporter', { format: 'gif' }] ] }); ``` ## 目录结构 ``` e2e-test/ ├── SKILL.md # 技能文档 ├── package.json # 项目配置 ├── scripts/ │ ├── record-browser.js # 浏览器录制核心 │ ├── record-test.js # 测试录制 │ ├── record-screen.js # 屏幕录制 │ ├── convert-format.js # 格式转换 │ ├── add-annotations.js # 添加标注 │ └── utils.js # 工具函数 ├── configs/ │ ├── default.json # 默认配置 │ ├── test.json # 测试配置 │ └── production.json # 生产配置 ├── templates/ │ ├── demo-template.js # 演示模板 │ └── test-template.js # 测试模板 ├── examples/ │ ├── basic-recording.js # 基础录制示例 │ ├── e2e-test.js # 端到端测试示例 │ └── api-test.js # API测试示例 └── recordings/ # 录制文件输出目录 ``` ## 使用示例 ### 示例 1:录制登录流程 ```javascript const { recordE2ETest } = require('./scripts/record-test'); await recordE2ETest({ url: 'http://localhost:3000', testName: '用户登录测试', steps: [ { description: '访问登录页面', action: 'goto', url: '/login' }, { description: '输入用户名', action: 'type', selector: '#username', text: 'test@example.com' }, { description: '输入密码', action: 'type', selector: '#password', text: 'password123' }, { description: '点击登录按钮', action: 'click', selector: 'button[type="submit"]' }, { description: '验证登录成功', action: 'waitFor', selector: '.dashboard', timeout: 5000 } ], output: 'recordings/login-demo.mp4', annotations: true }); ``` ### 示例 2:录制API测试 ```javascript const { recordAPITest } = require('./scripts/record-test'); await recordAPITest({ apiUrl: 'http://localhost:8000/api', tests: [ { name: '健康检查API', endpoint: '/health', method: 'GET', expectedStatus: 200 }, { name: '用户注册API', endpoint: '/auth/register', method: 'POST', data: { username: 'testuser', email: 'test@example.com', password: 'Password123!' }, expectedStatus: 201 } ], output: 'recordings/api-test.gif' }); ``` ## 故障排除 ### 常见问题 #### 1. 录制失败 - **问题**: 无法启动浏览器 - **解决**: 确保已安装 Chrome/Chromium,或设置 `executablePath` #### 2. 视频质量差 - **问题**: 视频模糊或卡顿 - **解决**: 调整 `fps` 和 `quality` 参数,确保网络稳定 #### 3. 文件过大 - **问题**: 录制文件太大 - **解决**: 降低 `fps`、`quality`,或使用 `convertVideo` 压缩 #### 4. 内存不足 - **问题**: 录制过程中内存占用过高 - **解决**: 减少录制时长,或增加系统内存 ### 调试模式 ```javascript const recorder = new ScreenRecorder({ debug: true, // 启用调试模式 logLevel: 'verbose' }); ``` ## 性能优化建议 ### 录制优化 1. **降低帧率**: 非必要情况下使用 15-24 FPS 2. **调整分辨率**: 根据需求调整录制区域大小 3. **使用硬件加速**: 启用 GPU 加速录制 ### 文件优化 1. **格式选择**: MP4 适合长视频,GIF 适合短视频 2. **压缩设置**: 使用合适的压缩参数 3. **分段录制**: 长时间录制可分段保存 ## 许可证 MIT License ## 更新日志 ### v1.0.0 (2026-04-11) - 初始版本发布 - 支持基础浏览器录制 - 支持 MP4/GIF 格式输出 - 提供端到端测试录制功能 ## 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 联系支持 - 问题反馈: [GitHub Issues](https://github.com/your-org/e2e-test/issues) - 文档: [项目 Wiki](https://github.com/your-org/e2e-test/wiki) - 邮件: support@example.com

Archived SourceRecently Updated
Web3

hap-mongodb-slowlog-analysis

Analyze MongoDB 4.4.x slow logs from pasted slow-log text, uploaded log files, or mongodb.log content and produce practical query optimization advice, index recommendations, evidence-backed reasoning, and ready-to-run Mongo shell index commands. The skill is AI-first and should analyze logs directly in conversation without relying on local PowerShell by default. It should also be able to group repeated entries by namespace, deduplicate repeated query shapes, and summarize repeated patterns before giving advice. Only treat DOCX or PDF export as optional conversion steps that may require local tooling. Prefer Chinese output by default, but support English when requested. Treat ctime as already indexed and never recommend a new index on it. Treat status as a low-cardinality field with only 1 and 9, where 1 means active/in-use, and do not include status in recommended index definitions.

Archived SourceRecently Updated