🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Nansen Polymarket Insider Scan

by @nansen-devops

Scan a resolved Polymarket market for wallets exhibiting suspicious trading patterns: fresh funding, single-market focus, extreme ROI, late entry at high pri...

Versionv0.1.0
Downloads435
Installs1
TERMINAL
clawhub install nansen-polymarket-insider-scan

πŸ“– About This Skill


name: nansen-polymarket-insider-scan description: "Scan a resolved Polymarket market for wallets exhibiting suspicious trading patterns: fresh funding, single-market focus, extreme ROI, late entry at high prices." metadata: openclaw: requires: env: - NANSEN_API_KEY bins: - nansen primaryEnv: NANSEN_API_KEY install: - kind: node package: nansen-cli bins: [nansen] allowed-tools: Bash(nansen:*)

PM Suspicious Wallet Scanner

Answers: "Are there wallets with suspicious trading patterns in this Polymarket market?"

# 1. Find the resolved market
nansen research prediction-market market-screener --query "" --status closed --limit 5

β†’ market_id, question, volume, last_trade_price

2. Get top winners (positive PnL) β€” paginate if needed, keep per_page <= 10

MID= nansen research prediction-market pnl-by-market --market-id $MID --limit 10

β†’ address (proxy), owner_address (wallet), side_held, net_buy_cost_usd, total_pnl_usd

3. For each top winner, run these three calls (use proxy address for PM, owner for profiler):

PROXY= nansen research prediction-market trades-by-address --address $PROXY --limit 100

β†’ market_id, market_question, side, price, size, usdc_value, taker_action, timestamp

OWNER= nansen research profiler historical-balances --address $OWNER --chain polygon --days 365 --sort block_timestamp:asc --limit 100

β†’ block_timestamp, value_usd, token_symbol β€” first non-zero value_usd = wallet funding date

nansen research profiler labels --address $OWNER --chain polygon

β†’ label, category

For each winner, compute ROI = total_pnl_usd / net_buy_cost_usd * 100 (skip ROI flags if net_buy_cost_usd <= 0), then score (0–13). Within each tier group, apply only the highest matching flag:

| Flag | Pts | Trigger | |---|---|---| | NEW_WALLET | 3 | First funded within 7 days of now | | YOUNG_WALLET | 1 | First funded 8–28 days ago (skip if NEW_WALLET fires) | | SINGLE_MARKET | 3 | trades-by-address shows only 1 distinct market_id | | FEW_MARKETS | 1 | 2–3 distinct market_ids (skip if SINGLE_MARKET fires) | | EXTREME_ROI | 3 | ROI >= 500% | | HIGH_ROI | 2 | ROI 200–499% (skip if EXTREME_ROI fires) | | LATE_ENTRY | 2 | Any trade on this market at price >= 0.80 | | LARGE_POSITION | 2 | net_buy_cost_usd >= $10k | | KNOWN_ENTITY | -2 | Has Nansen labels |

Flagged at score >= 3. High risk at >= 7. High-confidence suspicious pattern: NEW_WALLET + SINGLE_MARKET + EXTREME_ROI (score 9+).

If owner_address is invalid (e.g. "0x"), use the proxy address for profiler calls too. If historical-balances returns no records with value_usd > 0, the wallet may predate the 365-day window β€” treat wallet age as unknown and skip NEW_WALLET / YOUNG_WALLET flags. Pause ~1.5s between wallets to avoid rate limits. Skip wallets that error and continue scanning.