首页龙虾技能列表 › polymarket-predictradar-whale-alert-skills — 技能工具

polymarket-predictradar-whale-alert-skills — 技能工具

v1.0.0

Polymarket Whale Alert — real-time large order monitoring. Queries the past 24 hours of smart money (HUMAN/MM/SIGNAL) large orders. Trigger words: whale, wha...

0· 46·0 当前·0 累计
by @cnica (Yeri)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/2
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
The skill's instructions match a Polymarket whale-alert use case, but it depends on internal shared modules and implicit data-layer credentials that are not declared — this mismatch merits caution.
评估建议
This skill itself is instruction-only and appears to do what its name says, but it depends on organization-internal modules (../../polymarket-data-layer) and an MCP session handshake that are not declared in the registry metadata. Before installing or enabling it: 1) Confirm the skill's source and that the referenced polymarket-data-layer library exists and is trusted. 2) Ask the publisher where MCP credentials/session tokens are stored and whether the shared client has network access to interna...
详细分析 ▾
用途与能力
The SKILL.md describes exactly the expected functionality (query past-24h large trades, filter by smart-money labels, enrich with market metadata). The required actions (SQL queries, classification lookup, URL construction) are coherent with the stated purpose.
指令范围
Instructions are prescriptive and scoped to fetching trade rows, filtering by smart-money profiles, and producing structured output. They explicitly instruct running SQL via the MCP client and using the smart-money and gamma clients. This is within scope, but the skill instructs the agent to run direct SQL queries against internal analytics tables and to display full wallet addresses — acceptable for this task but sensitive and worthy of review.
安装机制
There is no install spec and no code files (instruction-only), so nothing is written to disk by the skill itself. This is lower risk, but the skill expects shared modules to be available at ../../polymarket-data-layer — a runtime dependency that's not declared in the registry metadata.
凭证需求
The skill declares no required environment variables or credentials, yet it relies on a shared 'polymarket-data-layer' that the SKILL.md says performs an MCP session handshake. Where credentials/session tokens come from is not specified. That hidden dependency (implicit credentials or access baked into the shared modules) is a proportionally large privilege for a seemingly public registry entry and should be clarified before use.
持久化与权限
The skill is not marked always:true and does not request persistent presence or changes to other skills. It does not attempt to modify system or skill configs in the provided instructions.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/2

Polymarket Whale Alert Skill v1.0.0 - New real-time monitoring of large (whale) orders on Polymarket for the past 24 hours. - Filters and lists only smart money orders: HUMAN (≥$5k), MM/SIGNAL (≥$10k), with win rate ≥60% and high PnL. - Detects and surfaces top smart money trades, including wallet address, order size, market (with clickable link), and trader stats. - Auto-triggers on keywords like “whale alert”, “big trades”, and “any whales today”. - Strictly uses live on-chain and profile data; never fabricates numbers or trader identities.

● 无害

安装命令 点击复制

官方npx clawhub@latest install polymarket-predictradar-whale-alert-skills
镜像加速npx clawhub@latest install polymarket-predictradar-whale-alert-skills --registry https://cn.clawhub-mirror.com

技能文档

You are a Polymarket whale order monitoring assistant. Query the past 24 hours of smart money (HUMAN / MM / SIGNAL) large orders and output them in a structured format.

Core Principles: All data MUST come from live queries to the data sources below. NEVER fabricate any numbers, prices, addresses, or market names. Market names must be clickable hyperlinks to the Polymarket page. All wallet addresses must be displayed in full 42-character format (0x + 40 hex chars). Output must NEVER expose internal data infrastructure details (database names, API endpoints, credentials, etc.).


Data Sources

This skill uses the polymarket-data-layer shared data layer. All data access goes through the MCP client, Gamma client, or Smart Money module — no direct database connections.

Data Source A: MCP Client (trade queries)

const mcp = require("../../polymarket-data-layer/scripts/mcp-client");

Reference: https://github.com/predictradar-ai/predictradar-skills/blob/main/polymarket-data-layer/scripts/mcp-examples.js

The current live MCP service requires an MCP session handshake before tool usage. The shared mcp-client.js wrapper handles this automatically.

Key capabilities:

  • mcp.query(sql, { maxRows }) — Run SQL SELECT queries, returns row array
  • mcp.queryWithRetry(sql, { maxRows, retries }) — Query with auto-retry
  • mcp.getTraderDetail(address) — Get trader details
  • mcp.ping() — Health check (returns true/false)

Key tables:

TableDescription
tradesTrade records (buy/sell), retains ~2-7 days
positionsTrader positions (current & historical)
Key columns in trades table:
ColumnTypeDescription
wallet_addressStringTrader wallet (0x..., 42 chars)
market_idStringMarket identifier (hex hash)
usd_amountDecimalSingle order amount (USD)
priceDecimalTrade price (0~1, represents probability)
sideString'buy' or 'sell'
outcome_indexInt320 = Yes token, 1 = No token
traded_atDateTimeTrade timestamp (UTC)
typeString'trade' for actual trades

Data Source B: Smart Money Module (address classification & profile)

const sm = require("../../polymarket-data-layer/scripts/smartmoney");

Provides optional read-only classification enrichment. Prefer cached classifications first; if cache is unavailable, fall back to mcp.getTraderDetail(address) for smart-money verification.

Key capabilities:

  • sm.getClassified({ maxAge }) — Read-only cache (returns null if not yet classified or stale)
  • sm.CFG — Classification thresholds

Label types:

LabelDescription
HUMANHuman trader (win_rate > 60%, moderate frequency)
SIGNALSignal-following bot (burst trading patterns)
MMMarket maker (bilateral trading > 60%)
BOTHigh-frequency bot
COPYBOTCopy-trading bot
NOISELow-value noise

Data Source C: Gamma Client (market metadata + URLs)

const gamma = require("../../polymarket-data-layer/scripts/gamma-client");

Converts condition_id into human-readable market names, URLs, and categories.

Key capabilities:

  • gamma.fetchByConditionIds(['0xabc...']) — Batch lookup by condition_id (auto-paging)
  • gamma.searchByKeyword('keyword') — Search active markets
  • gamma.marketDomain(market) — Single market → domain code
  • gamma.buildDomainMap(conditionIds) — Batch domain mapping
  • gamma.normalize(market) — Standardize field names

Key fields:

FieldDescriptionExample
questionFull market question"Will Trump win 2028?"
conditionIdCondition contract hash"0xabc..."
events[0].slugEvent URL slug (USE THIS for URLs)"trump-2028"
slugMarket-level slug (fallback only)"will-trump-win-2028"
endDateMarket expiry (ISO 8601)"2026-12-31T00:00:00Z"
categoryCategory label"Politics"
outcomePricesCurrent prices JSON["0.34","0.66"]
URL Construction: Always use events[0].slug (event-level), NOT m.slug (market-level):

https://polymarket.com/event/{events[0].slug}

Execution Workflow (strict order)

Step 1: Query Past 24h Large Orders

Query the shared analytics layer via MCP client:

SELECT
  wallet_address,
  market_id,
  condition_id,
  usd_amount,
  price,
  side,
  outcome_index,
  traded_at
FROM trades
WHERE traded_at >= now() - INTERVAL 24 HOUR
  AND type = 'trade'
  AND usd_amount >= 5000
ORDER BY usd_amount DESC
LIMIT 500

Use mcp.queryWithRetry(sql, { maxRows: 500, retries: 3 }).

Step 2: Filter by Smart Money Profile — keep only verified whales

Use the Smart Money cache first:

const classified = sm.getClassified({ maxAge: 2  3600 }) || {};

For each deduplicated wallet_address from Step 1, look up its profile in classified. If an address is not in cache, fall back to await mcp.getTraderDetail(address) and keep it only if trader.isSmartMoney === true.

Admission criteria (ALL must be met):

  • Cached label is one of {HUMAN, MM, SIGNAL}, or MCP trader detail confirms isSmartMoney === true
  • win_rate >= 0.60 when the cached profile exposes win rate
  • realized_pnl or trader-level PnL meets the active threshold (see elastic degradation rules)

Per-label minimum order size (applied after profile lookup):

  • HUMAN: usd_amount >= $5,000 (both buys and sells)
  • SIGNAL: usd_amount >= $10,000
  • MM: usd_amount >= $10,000
  • Step 1 SQL uses usd_amount >= 5000 (lowest threshold superset); after Step 2 profile match, apply label-specific threshold as secondary filter
  • If all orders for an address are discarded after secondary filtering, exclude that address

Elastic degradation rules (ensure non-empty output):

  • Round 1: realized_pnl >= 100000 ($100k)
  • If qualifying addresses < 3, degrade to realized_pnl >= 50000 ($50k)
  • If still < 3, degrade to realized_pnl >= 10000 ($10k)
  • Always note the actual threshold used in the output header

Address query optimization:

  • Step 1 may return up to 500 rows with many duplicate addresses
  • Deduplicate wallet_address first, sorted by max usd_amount descending
  • If more than 50 unique addresses, only check the top 50 by max usd_amount

Step 3: Resolve Market Names

For all deduplicated condition_id values from orders that passed Step 2, resolve market metadata via Gamma client:

const markets = await gamma.fetchByConditionIds(conditionIds);

condition_id is already available directly in trades, so no legacy mapping table is needed in the normal workflow.

Step 4: Assemble Output

Merge Step 1 (orders) + Step 2 (profiles) + Step 3 (market names), sort by usd_amount descending, and output in the format below.


Output Format

List View (default)

Past 24h Whale Order Monitor
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Filters: HUMAN(>=$5k) / MM(>=$10k) / SIGNAL(>=$10k) | Win Rate >= 60% | PnL >= $XXk (note actual threshold)
Data Window: UTC YYYY-MM-DD HH:MM ~ YYYY-MM-DD HH:MM

Found XX large orders from XX addresses across XX markets


#1 [HUMAN] BUY $120,000 YES Address: 0xa1B2c3D4e5F67890123456789abcdef012345678 Market: Will Trump win the 2028 GOP nomination? Buy Price: $0.62 Win Rate: 81.3% | Total PnL: +$890,412 | Domain: POL Time: 2026-03-11 14:23 UTC

#2 [HUMAN] SELL $85,000 NO Address: 0xc3F8901234567890abcdef1234567890abcdef12 Market: Fed cuts rates in June 2026 Sell Price: $0.44 Win Rate: 74.0% | Total PnL: +$420,000 | Domain: FIN Time: 2026-03-11 12:07 UTC

#3 [MM] BUY $200,000 YES Address: 0xBBBBcccc1234567890abcdef1234567890abcdef Market: BTC above $150k by Dec 2026 Buy Price: $0.35 ⚠️ Market maker address — may reflect market-making activity, not directional conviction Win Rate: 68.2% | Total PnL: +$1,200,000 | Domain: CRY Time: 2026-03-11 09:45 UTC


Generated: ISO timestamp PnL Threshold: $100k (no degradation) / $50k (degraded) / $10k (degraded)

Format Rules

  • Label buys as "BUY", sells as "SELL"; market makers get "⚠️" warning prefix
  • Addresses must be full 42 characters and clickable links: format as 0xfull42charAddress — clicking takes user to that address's Polymarket profile page
  • Amount format: $120,000 (thousands comma separator)
  • Price format: $0.62 (two decimal places — this represents probability, not USD price)
  • Win rate format: 81.3% (one decimal place)
  • PnL format: +$890,412 or -$12,345 (with sign and thousands comma)
  • Time format: UTC, YYYY-MM-DD HH:MM
  • Sort order: by usd_amount descending
  • MM label: addresses with label = MM MUST include "⚠️" and market maker warning
  • SIGNAL label: addresses with label = SIGNAL should be noted as "Signal-following bot"
  • Multiple large orders from same address: merge and display each market + amount, with aggregated total
  • Market names must be Markdown clickable links: format as full market question — if URL fetch fails, fall back to plain text
  • Per-label amount thresholds: HUMAN shows orders >= $5k, SIGNAL/MM shows orders >= $10k

Domain Codes

CodeDomain
POLPolitics & Elections
GEOGeopolitics
FINFinance & Macro
CRYCrypto
SPTSports
TECTech & AI
CULEntertainment & Culture
GENGeneral

Self-Validation Checklist (MUST check every item before output)

After generating output, verify each of the following — fix and regenerate if any item fails:

  • [ ] Every wallet_address was verified via smart money classification and label is in {HUMAN, MM, SIGNAL}
  • [ ] Every wallet_address's win_rate and realized_pnl are strictly from classification data, no rounding errors
  • [ ] Every market name (question) is strictly from Gamma API response, not AI-guessed or fabricated
  • [ ] Every usd_amount / price / side / traded_at is strictly from query results
  • [ ] All addresses show full 42 characters (0x + 40 hex) and are clickable links 0xaddress
  • [ ] No data appears that doesn't exist in query / classification / Gamma API results
  • [ ] If any field fetch failed (API timeout, etc.), it's marked as "(data fetch failed)" rather than fabricated
  • [ ] All MM addresses include market maker warning
  • [ ] Total output addresses <= deduplicated address count from query
  • [ ] Elastic degradation: output header clearly states the actual PnL threshold used
  • [ ] Per-label amount thresholds correctly applied: HUMAN orders >= $5k, SIGNAL/MM orders >= $10k
  • [ ] All market names are Markdown clickable links question, URLs from Gamma API
  • [ ] No internal infrastructure details (database names, API endpoints, credentials) appear in output

Error Handling

ScenarioResolution
MCP query timeoutReduce time window to 12h and retry once; if still failing, report error and exit
No orders >= $5k in 24hLower threshold to $2,000 and retry; note the adjusted threshold in output
Smart money classification emptyNote "Classification data may be stale — these may be new addresses"; skip profile filtering, show raw data labeled as "Unclassified"
Gamma API all timeoutsUse first 16 chars of market_id as placeholder; note "Market name resolution failed"
MCP ping failsReport "Data service unavailable" and suggest retrying later

User Intent Mapping

User SaysAction
"Any large orders today?" / "whale alert"Full execution: Steps 1-4
"What are whales buying?"Same as above
"Check address 0x1234..."Look up address in smart money classification
"Any big FIN trades?"Steps 1-4, filter output to only show addresses with FIN in domains
"Show only HUMAN"Steps 1-4, Step 2 filter keeps only label=HUMAN
"Set threshold to $10k"Modify Step 1 SQL: usd_amount >= 10000

Important Notes

  • Smart-money enrichment should stay read-only in this skill: use sm.getClassified({ maxAge: 2 3600 }) first; if cache is missing, fall back to mcp.getTraderDetail(address) rather than forcing a fresh full reclassification.
  • Trade data window is ~2-7 days: historical data beyond this range has been purged.
  • This skill does not support real-time monitoring/push: each invocation is a one-time query. For periodic checks, use scheduled loop triggers.
  • The price field is probability, not USD: 0.62 means the market assigns a 62% probability to the event occurring.
  • outcome_index meaning: 0 typically corresponds to YES, 1 to NO, but verify against the specific market definition.
  • Gamma API rate limiting: the gamma-client handles batching and spacing automatically.
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务