nansen-cli 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/package.json +5 -3
  3. package/skills/nansen-dca-tracker/SKILL.md +38 -0
  4. package/skills/nansen-defi-positions/SKILL.md +37 -0
  5. package/skills/nansen-exit-signals/SKILL.md +39 -0
  6. package/skills/nansen-fund-tracker/SKILL.md +35 -0
  7. package/skills/nansen-general-search/SKILL.md +34 -0
  8. package/skills/nansen-holder-analysis/SKILL.md +38 -0
  9. package/skills/nansen-perp-screener/SKILL.md +32 -0
  10. package/skills/nansen-perp-trader-profile/SKILL.md +39 -0
  11. package/skills/nansen-polymarket-deep-dive/SKILL.md +50 -0
  12. package/skills/nansen-polymarket-insider-scan/SKILL.md +62 -0
  13. package/skills/nansen-polymarket-trader-profile/SKILL.md +43 -0
  14. package/skills/nansen-portfolio-tracker/SKILL.md +36 -0
  15. package/skills/nansen-prediction-markets/SKILL.md +47 -0
  16. package/skills/nansen-sm-cross-chain-flows/SKILL.md +27 -0
  17. package/skills/nansen-smart-alerts/SKILL.md +137 -0
  18. package/skills/nansen-smart-money-alpha/SKILL.md +43 -0
  19. package/skills/nansen-smart-money-tracker/SKILL.md +71 -0
  20. package/skills/nansen-smart-money-trend/SKILL.md +30 -0
  21. package/skills/nansen-token-research/SKILL.md +90 -0
  22. package/skills/nansen-token-screener/SKILL.md +54 -0
  23. package/skills/nansen-token-transfer-analysis/SKILL.md +40 -0
  24. package/skills/nansen-trading/SKILL.md +100 -0
  25. package/skills/nansen-wallet-batch/SKILL.md +26 -0
  26. package/skills/nansen-wallet-clustering/REFERENCE.md +43 -0
  27. package/skills/nansen-wallet-clustering/SKILL.md +46 -0
  28. package/skills/nansen-wallet-deep-dive/SKILL.md +45 -0
  29. package/skills/nansen-wallet-keychain-migration/SKILL.md +183 -0
  30. package/skills/nansen-wallet-manager/SKILL.md +140 -0
  31. package/skills/nansen-wallet-profiler/SKILL.md +98 -0
  32. package/skills/nansen-web-fetcher/SKILL.md +50 -0
  33. package/skills/nansen-web-searcher/SKILL.md +39 -0
  34. package/src/api.js +76 -3
  35. package/src/cli.js +176 -14
  36. package/src/commands/alerts.js +717 -0
  37. package/src/schema.json +164 -1
  38. package/src/telemetry.js +237 -0
  39. package/src/update-check.js +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.19.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#306](https://github.com/nansen-ai/nansen-cli/pull/306) [`f685eb8`](https://github.com/nansen-ai/nansen-cli/commit/f685eb8b87d2915a7a94e8c1a3d92f84e4802e4a) Thanks [@0xlaveen](https://github.com/0xlaveen)! - Rename 30 skills for clarity and clawhub slug uniqueness. Abbreviations expanded (`pm` → `polymarket`, `sm` prefix added where relevant), ambiguous names made specific (`nansen-wallet` → `nansen-wallet-manager`, `nansen-profiler` → `nansen-wallet-profiler`, `nansen-search` → `nansen-general-search`, `nansen-trade` → `nansen-trading`, etc.).
8
+
9
+ ### Patch Changes
10
+
11
+ - [#308](https://github.com/nansen-ai/nansen-cli/pull/308) [`569d7d4`](https://github.com/nansen-ai/nansen-cli/commit/569d7d43e428732d3c10b4e57368cb12ef0086c3) Thanks [@kome12](https://github.com/kome12)! - fix: include src subdirectories in npm package
12
+
13
+ The `files` field in package.json used `src/*.js` which only matched files directly in `src/`, causing `src/commands/` to be missing from the 1.18.0 publish. Changed to `src/**/*.js` to include all subdirectories recursively, and added `!src/__tests__/**` to exclude test files from the package.
14
+
15
+ ## 1.18.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [#265](https://github.com/nansen-ai/nansen-cli/pull/265) [`c3de691`](https://github.com/nansen-ai/nansen-cli/commit/c3de6914dcdd29f54d027f0cc415c23dd646c003) Thanks [@TimNooren](https://github.com/TimNooren)! - Add `nansen alerts` command for managing smart alerts (list, create, update, toggle, delete).
20
+
21
+ Supports three alert types: `sm-token-flows`, `common-token-transfer`, and `smart-contract-call`.
22
+ Named flags (`--inflow-1h-min`, `--chains`, `--telegram`, etc.) let you build alerts without raw JSON;
23
+ a `--data` escape hatch is available for full config overrides.
24
+
25
+ Also adds a `nansen-alerts` skill for agent integration.
26
+
27
+ - [#295](https://github.com/nansen-ai/nansen-cli/pull/295) [`3ddcbde`](https://github.com/nansen-ai/nansen-cli/commit/3ddcbdec50d55e4477cd3f53c5064126dbd8580a) Thanks [@kome12](https://github.com/kome12)! - feat: add `nansen web search` and `nansen web fetch` commands (ECINT-6393)
28
+
29
+ - `nansen web search <query> [query...]` — search the web for one or more queries in parallel via `/api/v1/search/web-search`
30
+ - `nansen web fetch <url> [url...] --question <q>` — fetch and analyze URL content with AI via `/api/v1/search/web-fetch`
31
+
32
+ ### Patch Changes
33
+
34
+ - [#293](https://github.com/nansen-ai/nansen-cli/pull/293) [`bcd95a8`](https://github.com/nansen-ai/nansen-cli/commit/bcd95a88942e96018337ae6b7de9f2abdbdc3464) Thanks [@TimNooren](https://github.com/TimNooren)! - Add default values for all required alert data fields to match backend schema
35
+
36
+ - [#265](https://github.com/nansen-ai/nansen-cli/pull/265) [`c3de691`](https://github.com/nansen-ai/nansen-cli/commit/c3de6914dcdd29f54d027f0cc415c23dd646c003) Thanks [@TimNooren](https://github.com/TimNooren)! - Fix `alerts list` filtering (`--type`, `--enabled`, `--disabled`, `--chain`, `--token-address`, `--limit`, `--offset`).
37
+
38
+ Filters were sent as query params but silently ignored by the API. Now applied client-side after fetching all alerts.
39
+
40
+ - [#301](https://github.com/nansen-ai/nansen-cli/pull/301) [`cda6796`](https://github.com/nansen-ai/nansen-cli/commit/cda6796642c588965111c53c583af2b21444d30b) Thanks [@kome12](https://github.com/kome12)! - fix: add missing openclaw metadata to 19 skills
41
+
42
+ - [#294](https://github.com/nansen-ai/nansen-cli/pull/294) [`8a1cc7b`](https://github.com/nansen-ai/nansen-cli/commit/8a1cc7bdfbd9597860384dfd40fd28705e5c947c) Thanks [@yodablocks](https://github.com/yodablocks)! - fix: include skills/ directory in published npm package
43
+
3
44
  ## 1.17.0
4
45
 
5
46
  ### Minor Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nansen-cli",
3
- "version": "1.17.0",
3
+ "version": "1.19.0",
4
4
  "description": "Command-line interface for Nansen API - designed for AI agents",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -8,8 +8,10 @@
8
8
  "nansen": "./src/index.js"
9
9
  },
10
10
  "files": [
11
- "src/*.js",
12
- "src/*.json",
11
+ "src/**/*.js",
12
+ "src/**/*.json",
13
+ "!src/__tests__/**",
14
+ "skills/**",
13
15
  "CHANGELOG.md"
14
16
  ],
15
17
  "scripts": {
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: nansen-dca-tracker
3
+ description: "What tokens are whales dollar-cost averaging into? Jupiter DCA strategies by smart money and target token fundamentals."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # DCA Watch
20
+
21
+ **Answers:** "What tokens are whales dollar-cost averaging into on Solana?"
22
+
23
+ ```bash
24
+ nansen research smart-money dcas --limit 20
25
+ # → trader_address, trader_address_label, input/output_token_symbol, deposit_value_usd, dca_status, dca_created_at
26
+
27
+ # For each top DCA target, check token fundamentals
28
+ TARGET=<output_token_address>
29
+ nansen research token info --token $TARGET --chain solana
30
+ # → name, symbol, price, market_cap, token_details
31
+
32
+ nansen research token flow-intelligence --token $TARGET --chain solana
33
+ # → net_flow_usd per label: smart_trader, whale, exchange, fresh_wallets
34
+ ```
35
+
36
+ To see DCA strategies targeting a specific token: `nansen research token jup-dca --token $TARGET`
37
+
38
+ DCAs show long-term conviction — SM DCA targets with positive smart_trader_net_flow = high-confidence accumulation.
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: nansen-defi-positions
3
+ description: "What DeFi positions does a wallet hold? Protocol-by-protocol breakdown of assets, debts, and rewards across chains."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # DeFi Exposure
20
+
21
+ **Answers:** "What DeFi positions does this wallet have across protocols?"
22
+
23
+ ```bash
24
+ ADDR=<address>
25
+
26
+ nansen research portfolio defi --wallet $ADDR
27
+ # → protocol_name, chain, total_value_usd, total_assets_usd, total_debts_usd, total_rewards_usd, tokens
28
+
29
+ nansen research profiler balance --address $ADDR --chain ethereum
30
+ # → token_symbol, token_name, token_amount, value_usd per holding
31
+
32
+ nansen research profiler balance --address $ADDR --chain base
33
+ ```
34
+
35
+ Combine DeFi positions (lending, LPs, staking) with spot balances for a complete picture of on-chain exposure.
36
+
37
+ Note: portfolio defi may return empty for wallets with no tracked DeFi positions.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: nansen-exit-signals
3
+ description: "Is smart money exiting a token I hold? Net flow direction, seller breakdown by label, and recent SM trades."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Exit Signal
20
+
21
+ **Answers:** "Is smart money exiting a token I hold? Should I be worried?"
22
+
23
+ ```bash
24
+ TOKEN=<address> CHAIN=ethereum
25
+
26
+ nansen research token flow-intelligence --token $TOKEN --chain $CHAIN
27
+ # → net_flow_usd per label: smart_trader, whale, exchange, fresh_wallets (negative = selling)
28
+
29
+ nansen research token who-bought-sold --token $TOKEN --chain $CHAIN --limit 20
30
+ # → address, address_label, bought/sold_volume_usd, trade_volume_usd
31
+
32
+ nansen research smart-money netflow --chain $CHAIN --limit 10
33
+ # → token_symbol, net_flow_1h/24h/7d/30d_usd, trader_count
34
+
35
+ nansen research token dex-trades --token $TOKEN --chain $CHAIN --limit 20
36
+ # → block_timestamp, action (BUY/SELL), trader_address_label, estimated_value_usd
37
+ ```
38
+
39
+ Red flag: negative smart_trader_net_flow_usd + Smart Trader labels in who-bought-sold sellers = exit signal.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: nansen-fund-tracker
3
+ description: "What are crypto funds and VCs holding right now? Cross-chain fund portfolios and net accumulation signals."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Fund Watch
20
+
21
+ **Answers:** "What are crypto funds and VCs holding right now?"
22
+
23
+ ```bash
24
+ nansen research smart-money holdings --chain ethereum --labels "Fund" --limit 20
25
+ # → token_symbol, value_usd, holders_count, balance_24h_percent_change, share_of_holdings_percent
26
+
27
+ nansen research smart-money holdings --chain solana --labels "Fund" --limit 20
28
+
29
+ nansen research smart-money netflow --chain ethereum --labels "Fund" --limit 10
30
+ # → token_symbol, net_flow_1h/24h/7d/30d_usd, market_cap_usd, trader_count
31
+
32
+ nansen research smart-money netflow --chain solana --labels "Fund" --limit 10
33
+ ```
34
+
35
+ Cross-reference holdings with netflow to see directional conviction. Positive net_flow_24h = active accumulation.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: nansen-general-search
3
+ description: Search for tokens or entities by name. Use when you have a token name and need the full address, or want to find an entity.
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Search
20
+
21
+ ```bash
22
+ nansen research search "jupiter" --type token
23
+ nansen research search "Vitalik" --type entity --limit 5
24
+ nansen research search "bonk" --chain solana --fields address,name,symbol,chain
25
+ ```
26
+
27
+ | Flag | Purpose |
28
+ |------|---------|
29
+ | `--type` | `token` or `entity` |
30
+ | `--chain` | Filter by chain |
31
+ | `--limit` | Number of results (default 25, max 50) |
32
+ | `--fields` | Select specific output fields |
33
+
34
+ Case-insensitive. Does NOT match by address — use `profiler labels` for address lookup.
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: nansen-holder-analysis
3
+ description: "Is this token held by quality wallets or retail noise? SM holder ratio, flow breakdown by label, and recent buyer quality."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Holder Quality
20
+
21
+ **Answers:** "Is this token held by quality wallets or retail noise?"
22
+
23
+ ```bash
24
+ TOKEN=<address> CHAIN=ethereum
25
+
26
+ nansen research token holders --token $TOKEN --chain $CHAIN --smart-money --limit 20
27
+ # → address, address_label, value_usd, ownership_percentage, balance_change_24h/7d/30d
28
+
29
+ nansen research token flow-intelligence --token $TOKEN --chain $CHAIN
30
+ # → net_flow_usd and wallet_count per label: smart_trader, whale, exchange, fresh_wallets
31
+
32
+ nansen research token who-bought-sold --token $TOKEN --chain $CHAIN --limit 20
33
+ # → address, address_label, bought/sold_volume_usd, bought/sold_token_volume, trade_volume_usd
34
+ ```
35
+
36
+ Red flag: high fresh_wallets flow + low SM holders. Green flag: Fund/Smart Trader labels in top 20.
37
+
38
+ Note: holders endpoint does not support native/wrapped tokens. Use a specific token contract address.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: nansen-perp-screener
3
+ description: "What is the state of the Hyperliquid perp market? Top contracts by volume/OI, trader leaderboard, and SM perp activity."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Perp Market Scan
20
+
21
+ **Answers:** "What's the state of the Hyperliquid perp market right now?"
22
+
23
+ ```bash
24
+ nansen research perp screener --sort volume:desc --limit 20
25
+ # → token_symbol, volume, buy/sell_volume, buy_sell_pressure, open_interest, funding, mark_price
26
+
27
+ nansen research perp leaderboard --days 7 --limit 20
28
+ # → trader_address, trader_address_label, total_pnl, roi, account_value
29
+
30
+ nansen research smart-money perp-trades --limit 20
31
+ # → token_symbol, side, action (Open/Close), value_usd, price_usd, trader_address_label
32
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: nansen-perp-trader-profile
3
+ description: "Deep dive on a Hyperliquid perp trader. Identity, open positions, recent trades, and overall PnL."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Perp Trader
20
+
21
+ **Answers:** "What is this perp trader doing? What are their positions and track record?"
22
+
23
+ ```bash
24
+ ADDR=<address>
25
+
26
+ nansen research profiler labels --address $ADDR --chain ethereum
27
+ # → label, category (identity, SM labels)
28
+
29
+ nansen research profiler perp-positions --address $ADDR
30
+ # → asset_positions, margin_summary_account_value_usd, margin_summary_total_margin_used_usd
31
+
32
+ nansen research profiler perp-trades --address $ADDR --days 7 --limit 20
33
+ # → timestamp, token_symbol, side, action (Open/Close/Reduce), price, size, value_usd, closed_pnl, fee_usd
34
+
35
+ nansen research perp leaderboard --days 7 --limit 50
36
+ # → trader_address, total_pnl, roi, account_value (check if ADDR appears)
37
+ ```
38
+
39
+ Cross-reference perp-trades with perp-positions to see if the trader is scaling in/out. Leaderboard shows relative standing.
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: nansen-polymarket-deep-dive
3
+ description: "Deep dive on a Polymarket market — OHLCV, orderbook, top holders, positions, trades, and PnL leaderboard. Use when analysing a specific prediction market."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Prediction Market Deep Dive
20
+
21
+ **Answers:** "What's happening in this specific market? Who holds it, who's trading it?"
22
+
23
+ Use `market_id` from the screener (`nansen-prediction-market` skill).
24
+
25
+ ```bash
26
+ MID=<market_id>
27
+
28
+ nansen research pm ohlcv --market-id $MID --sort period_start:desc --limit 50
29
+ # → period_start, open, high, low, close, volume
30
+
31
+ nansen research pm orderbook --market-id $MID
32
+ # → bids[], asks[] with price and size
33
+
34
+ nansen research pm top-holders --market-id $MID --limit 20
35
+ # → address, side, position_size, avg_entry_price, current_price, unrealized_pnl_usd
36
+
37
+ nansen research pm position-detail --market-id $MID --limit 20
38
+ # → address, side, size, avg_entry_price, current_price, pnl
39
+
40
+ nansen research pm trades-by-market --market-id $MID --limit 20
41
+ # → timestamp, buyer, seller, taker_action, side, size, price, usdc_value
42
+
43
+ nansen research pm pnl-by-market --market-id $MID --limit 20
44
+ # → address, side_held, net_buy_cost_usd, unrealized_value_usd, total_pnl_usd
45
+ ```
46
+
47
+ Notes:
48
+ - `--market-id` is a numeric ID from the screener, not a slug.
49
+ - Works with any market ID regardless of status (active or closed/resolved).
50
+ - All addresses are Polygon (EVM).
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: nansen-polymarket-insider-scan
3
+ description: "Scan a resolved Polymarket market for wallets exhibiting suspicious trading patterns: fresh funding, single-market focus, extreme ROI, late entry at high prices."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # PM Suspicious Wallet Scanner
20
+
21
+ **Answers:** "Are there wallets with suspicious trading patterns in this Polymarket market?"
22
+
23
+ ```bash
24
+ # 1. Find the resolved market
25
+ nansen research prediction-market market-screener --query "<market name>" --status closed --limit 5
26
+ # → market_id, question, volume, last_trade_price
27
+
28
+ # 2. Get top winners (positive PnL) — paginate if needed, keep per_page <= 10
29
+ MID=<market_id>
30
+ nansen research prediction-market pnl-by-market --market-id $MID --limit 10
31
+ # → address (proxy), owner_address (wallet), side_held, net_buy_cost_usd, total_pnl_usd
32
+
33
+ # 3. For each top winner, run these three calls (use proxy address for PM, owner for profiler):
34
+ PROXY=<address_from_pnl>
35
+ nansen research prediction-market trades-by-address --address $PROXY --limit 100
36
+ # → market_id, market_question, side, price, size, usdc_value, taker_action, timestamp
37
+
38
+ OWNER=<owner_address_from_pnl>
39
+ nansen research profiler historical-balances --address $OWNER --chain polygon --days 365 --sort block_timestamp:asc --limit 100
40
+ # → block_timestamp, value_usd, token_symbol — first non-zero value_usd = wallet funding date
41
+
42
+ nansen research profiler labels --address $OWNER --chain polygon
43
+ # → label, category
44
+ ```
45
+
46
+ 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:
47
+
48
+ | Flag | Pts | Trigger |
49
+ |---|---|---|
50
+ | NEW_WALLET | 3 | First funded within 7 days of now |
51
+ | YOUNG_WALLET | 1 | First funded 8–28 days ago (skip if NEW_WALLET fires) |
52
+ | SINGLE_MARKET | 3 | trades-by-address shows only 1 distinct market_id |
53
+ | FEW_MARKETS | 1 | 2–3 distinct market_ids (skip if SINGLE_MARKET fires) |
54
+ | EXTREME_ROI | 3 | ROI >= 500% |
55
+ | HIGH_ROI | 2 | ROI 200–499% (skip if EXTREME_ROI fires) |
56
+ | LATE_ENTRY | 2 | Any trade on this market at price >= 0.80 |
57
+ | LARGE_POSITION | 2 | net_buy_cost_usd >= $10k |
58
+ | KNOWN_ENTITY | -2 | Has Nansen labels |
59
+
60
+ Flagged at score >= 3. High risk at >= 7. High-confidence suspicious pattern: NEW_WALLET + SINGLE_MARKET + EXTREME_ROI (score 9+).
61
+
62
+ 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.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: nansen-polymarket-trader-profile
3
+ description: "What is a Polymarket trader betting on? Trades by address, PnL breakdown, and market context. Use when analysing a specific Polymarket wallet."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Polymarket Wallet Activity
20
+
21
+ **Answers:** "What is this Polymarket trader betting on? Are they profitable?"
22
+
23
+ **Finding an active trader address:** Source from `trades-by-market` (guarantees trade history) rather than `top-holders` (position holders may have no recorded trades):
24
+
25
+ ```bash
26
+ # Step 1: find active traders from a market
27
+ nansen research pm trades-by-market --market-id <market_id> --limit 5
28
+ # → seller/buyer addresses with confirmed trade history — use one as ADDR below
29
+ ```
30
+
31
+ ```bash
32
+ ADDR=<polymarket_address>
33
+
34
+ nansen research pm trades-by-address --address $ADDR --limit 20
35
+ # → timestamp, market_question, event_title, taker_action, side, size, price, usdc_value
36
+
37
+ nansen research pm pnl-by-address --address $ADDR --limit 20
38
+ # → question, event_title, side_held, net_buy_cost_usd, unrealized_value_usd, total_pnl_usd, market_resolved
39
+ ```
40
+
41
+ Note: addresses sourced from `top-holders` may return empty trade history — use `trades-by-market` to find addresses with confirmed activity.
42
+
43
+ Look at PnL across resolved vs unresolved markets to gauge trader skill. Large positions in trending categories signal conviction.
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: nansen-portfolio-tracker
3
+ description: "How has a wallet's portfolio changed over time? Historical balances, current snapshot, and per-token PnL."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Portfolio History
20
+
21
+ **Answers:** "How has this wallet's portfolio evolved over the past month?"
22
+
23
+ ```bash
24
+ ADDR=<address> CHAIN=ethereum
25
+
26
+ nansen research profiler historical-balances --address $ADDR --chain $CHAIN --days 30 --limit 20
27
+ # → block_timestamp, token_symbol, token_amount, value_usd, chain
28
+
29
+ nansen research profiler balance --address $ADDR --chain $CHAIN
30
+ # → token_symbol, token_name, token_amount, price_usd, value_usd
31
+
32
+ nansen research profiler pnl --address $ADDR --chain $CHAIN --days 30 --limit 20
33
+ # → token_symbol, pnl_usd_realised, roi_percent_realised, bought_usd, sold_usd, holding_usd, nof_buys, nof_sells
34
+ ```
35
+
36
+ Compare historical-balances over time against current balance to see what was added/removed. PnL shows trade performance.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: nansen-prediction-markets
3
+ description: "Polymarket screeners — discover trending events, top markets by volume, and search for specific markets. Use when browsing what's happening on prediction markets."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+
19
+ # Prediction Market Screeners
20
+
21
+ All commands: `nansen research prediction-market <sub> [options]` (alias: `nansen research pm <sub>`)
22
+
23
+ No `--chain` flag needed — Polymarket runs on Polygon.
24
+
25
+ ```bash
26
+ # Top events (groups of related markets)
27
+ nansen research pm event-screener --sort-by volume_24hr --limit 20
28
+ # → event_title, market_count, total_volume, total_volume_24hr, total_liquidity, total_open_interest, tags
29
+
30
+ # Top markets by 24h volume
31
+ nansen research pm market-screener --sort-by volume_24hr --limit 20
32
+ # → market_id, question, best_bid, best_ask, volume_24hr, liquidity, open_interest, unique_traders_24h
33
+
34
+ # Search for specific markets
35
+ nansen research pm market-screener --query "bitcoin" --limit 10
36
+
37
+ # Find resolved/closed markets
38
+ nansen research pm market-screener --status closed --limit 10
39
+
40
+ # Browse categories
41
+ nansen research pm categories --pretty
42
+ # → category, active_markets, total_volume_24hr, total_open_interest
43
+ ```
44
+
45
+ Sort options: `volume_24hr`, `volume`, `volume_1wk`, `volume_1mo`, `liquidity`, `open_interest`, `unique_traders_24h`, `age_hours`
46
+
47
+ Screeners return active/open markets by default. Use `--status closed` for resolved markets.
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: nansen-sm-cross-chain-flows
3
+ description: "Is SM buying this token on one chain but selling on another? Detect capital rotation."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ env:
8
+ - NANSEN_API_KEY
9
+ bins:
10
+ - nansen
11
+ primaryEnv: NANSEN_API_KEY
12
+ install:
13
+ - kind: node
14
+ package: nansen-cli
15
+ bins: [nansen]
16
+ allowed-tools: Bash(nansen:*)
17
+ ---
18
+ ```bash
19
+ TOKEN_SYMBOL=<symbol e.g. "AAVE"> CHAINS=(ethereum solana base bnb)
20
+ for chain in "${CHAINS[@]}"; do
21
+ nansen research smart-money netflow --chain $chain --limit 200
22
+ # Filter by token_symbol; → net_flow_1h_usd, net_flow_24h_usd, net_flow_7d_usd, net_flow_30d_usd
23
+ done
24
+ ```
25
+ Absent from results = SM activity below threshold on that chain, not necessarily unsupported. Use --limit 200; --limit 100 silently drops mid-tier tokens.
26
+ ETH+ & SOL− = rotating from SOL→ETH. One chain positive only = chain-specific play.
27
+ 24h/7d divergence across chains is the rotation signal, not 1h.