nansen-cli 1.16.1 → 1.18.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.
- package/CHANGELOG.md +53 -0
- package/package.json +2 -1
- package/skills/nansen-alerts/SKILL.md +137 -0
- package/skills/nansen-alpha-discovery/SKILL.md +43 -0
- package/skills/nansen-batch-wallet/SKILL.md +26 -0
- package/skills/nansen-cross-chain-flow/SKILL.md +27 -0
- package/skills/nansen-dca-watch/SKILL.md +38 -0
- package/skills/nansen-defi-exposure/SKILL.md +37 -0
- package/skills/nansen-exit-signal/SKILL.md +39 -0
- package/skills/nansen-fund-watch/SKILL.md +35 -0
- package/skills/nansen-holder-quality/SKILL.md +38 -0
- package/skills/nansen-perp-scan/SKILL.md +32 -0
- package/skills/nansen-perp-trader/SKILL.md +39 -0
- package/skills/nansen-pm-deep-dive/SKILL.md +50 -0
- package/skills/nansen-pm-insider-scan/SKILL.md +62 -0
- package/skills/nansen-polymarket-trader/SKILL.md +43 -0
- package/skills/nansen-portfolio-history/SKILL.md +36 -0
- package/skills/nansen-prediction-market/SKILL.md +47 -0
- package/skills/nansen-profiler/SKILL.md +98 -0
- package/skills/nansen-search/SKILL.md +34 -0
- package/skills/nansen-sm-trend/SKILL.md +30 -0
- package/skills/nansen-smart-money/SKILL.md +71 -0
- package/skills/nansen-token/SKILL.md +90 -0
- package/skills/nansen-token-discovery/SKILL.md +54 -0
- package/skills/nansen-token-forensics/SKILL.md +40 -0
- package/skills/nansen-trade/SKILL.md +100 -0
- package/skills/nansen-wallet/SKILL.md +140 -0
- package/skills/nansen-wallet-analysis/SKILL.md +45 -0
- package/skills/nansen-wallet-attribution/REFERENCE.md +43 -0
- package/skills/nansen-wallet-attribution/SKILL.md +46 -0
- package/skills/nansen-wallet-migration/SKILL.md +183 -0
- package/skills/nansen-web-fetch/SKILL.md +50 -0
- package/skills/nansen-web-search/SKILL.md +39 -0
- package/src/api.js +144 -73
- package/src/cli.js +181 -14
- package/src/rpc-urls.js +29 -0
- package/src/schema.json +401 -1448
- package/src/telemetry.js +237 -0
- package/src/trading.js +26 -12
- package/src/transfer.js +1 -11
- package/src/update-check.js +2 -2
- package/src/wallet.js +2 -1
- package/src/x402.js +3 -2
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-pm-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
|
|
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-history
|
|
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-market
|
|
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,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-profiler
|
|
3
|
+
description: Wallet profiler — balance, PnL, labels, transactions, counterparties, related wallets, batch, trace, compare. Use when analysing a specific wallet address or comparing wallets.
|
|
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
|
+
# Wallet Profiler
|
|
20
|
+
|
|
21
|
+
All commands: `nansen research profiler <sub> [options]`
|
|
22
|
+
|
|
23
|
+
`--address` and `--chain` required for most commands.
|
|
24
|
+
|
|
25
|
+
## Balance & Identity
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
nansen research profiler balance --address <addr> --chain ethereum
|
|
29
|
+
nansen research profiler labels --address <addr> --chain ethereum
|
|
30
|
+
nansen research profiler search --query "Vitalik"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## PnL
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
nansen research profiler pnl --address <addr> --chain ethereum --days 30
|
|
37
|
+
nansen research profiler pnl-summary --address <addr> --chain ethereum
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Transactions & History
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
nansen research profiler transactions --address <addr> --chain ethereum --limit 20
|
|
44
|
+
nansen research profiler historical-balances --address <addr> --chain solana --days 30
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Relationships
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
nansen research profiler related-wallets --address <addr> --chain ethereum
|
|
51
|
+
nansen research profiler counterparties --address <addr> --chain ethereum --days 30
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Perps (no --chain)
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
nansen research profiler perp-positions --address <addr>
|
|
58
|
+
nansen research profiler perp-trades --address <addr> --days 7
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Batch, Trace & Compare
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Batch — profile multiple wallets at once
|
|
65
|
+
nansen research profiler batch \
|
|
66
|
+
--addresses "0xabc,0xdef" --chain ethereum \
|
|
67
|
+
--include labels,balance,pnl
|
|
68
|
+
|
|
69
|
+
# Trace — BFS multi-hop counterparty trace (makes N*width API calls)
|
|
70
|
+
nansen research profiler trace --address <addr> --chain ethereum --depth 2 --width 5
|
|
71
|
+
|
|
72
|
+
# Compare — shared counterparties and tokens between two wallets
|
|
73
|
+
nansen research profiler compare --addresses "0xabc,0xdef" --chain ethereum
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Flags
|
|
77
|
+
|
|
78
|
+
| Flag | Purpose |
|
|
79
|
+
|------|---------|
|
|
80
|
+
| `--address` | Wallet address (required) |
|
|
81
|
+
| `--chain` | Required except for perps and search |
|
|
82
|
+
| `--days` | Lookback period (default 30) |
|
|
83
|
+
| `--limit` | Number of results |
|
|
84
|
+
| `--include` | Batch fields: `labels,balance,pnl` |
|
|
85
|
+
| `--depth` | Trace depth 1-5 (default 2) |
|
|
86
|
+
| `--width` | Trace width — keep low to save credits |
|
|
87
|
+
| `--fields` | Select specific fields |
|
|
88
|
+
| `--table` | Human-readable table output |
|
|
89
|
+
| `--format csv` | CSV export |
|
|
90
|
+
|
|
91
|
+
## Notes
|
|
92
|
+
|
|
93
|
+
- `pnl-summary` has no pagination support (returns aggregate stats, not a list).
|
|
94
|
+
- `perp-positions` has no pagination support.
|
|
95
|
+
- `labels` has no pagination support — the API ignores `per_page` and always returns all labels for the address. `--limit` is not available for this sub-command.
|
|
96
|
+
- `transactions` caps at per_page=100 (API limit).
|
|
97
|
+
- `trace` makes many API calls — use `--width` conservatively.
|
|
98
|
+
- `batch` accepts `--file <path>` with one address per line as alternative to `--addresses`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-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,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-sm-trend
|
|
3
|
+
description: "Has SM been in this token for weeks, or did they just enter? Are they still buying?"
|
|
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=<address> CHAIN=ethereum
|
|
20
|
+
nansen research smart-money netflow --chain $CHAIN --limit 200
|
|
21
|
+
# → filter by token_address; net_flow_1h_usd, net_flow_24h_usd, net_flow_7d_usd, net_flow_30d_usd
|
|
22
|
+
nansen research token holders --token $TOKEN --chain $CHAIN --smart-money --limit 20
|
|
23
|
+
# → address_label, value_usd, balance_change_24h, balance_change_7d, balance_change_30d
|
|
24
|
+
nansen research token flow-intelligence --token $TOKEN --chain $CHAIN
|
|
25
|
+
# → smart_trader_net_flow_usd, whale_net_flow_usd, fund_net_flow_usd, fresh_wallets_net_flow_usd
|
|
26
|
+
nansen research token dex-trades --token $TOKEN --chain $CHAIN --limit 50
|
|
27
|
+
# → block_timestamp, action, trader_address_label — find oldest SM-labeled BUY
|
|
28
|
+
```
|
|
29
|
+
1h/24h+ & 7d/30d+ = sustained accumulation. 24h+ & 7d− = fresh entry.
|
|
30
|
+
24h− & 7d+ = reducing. All negative = distribution.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-smart-money
|
|
3
|
+
description: Smart money tracking — netflow, trades, holdings, perp trades. Use when finding what smart money wallets are buying/selling or tracking whale 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
|
+
# Smart Money
|
|
20
|
+
|
|
21
|
+
All commands: `nansen research smart-money <sub> [options]`
|
|
22
|
+
|
|
23
|
+
## Subcommands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Netflow — what tokens are smart money accumulating?
|
|
27
|
+
nansen research smart-money netflow --chain solana --limit 10
|
|
28
|
+
|
|
29
|
+
# DEX trades — real-time spot trades by smart money
|
|
30
|
+
nansen research smart-money dex-trades --chain solana --labels "Smart Trader" --limit 20
|
|
31
|
+
|
|
32
|
+
# Holdings — aggregated SM portfolio
|
|
33
|
+
nansen research smart-money holdings --chain solana --limit 10
|
|
34
|
+
|
|
35
|
+
# Perp trades — Hyperliquid only (no --chain needed)
|
|
36
|
+
nansen research smart-money perp-trades --limit 10
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Labels
|
|
40
|
+
|
|
41
|
+
Filter by smart money category with `--labels`:
|
|
42
|
+
|
|
43
|
+
| Label | Use case |
|
|
44
|
+
|-------|----------|
|
|
45
|
+
| `Fund` | Crypto funds |
|
|
46
|
+
| `Smart Trader` | All-time top performers |
|
|
47
|
+
| `30D Smart Trader` | Hot hands — top 30 days |
|
|
48
|
+
| `90D Smart Trader` | Top 90 days |
|
|
49
|
+
| `180D Smart Trader` | Top 180 days |
|
|
50
|
+
| `Smart HL Perps Trader` | Top Hyperliquid perp traders |
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
nansen research smart-money netflow --chain solana --labels "Fund" --limit 10
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Flags
|
|
57
|
+
|
|
58
|
+
| Flag | Purpose |
|
|
59
|
+
|------|---------|
|
|
60
|
+
| `--chain` | Required for netflow/dex-trades/holdings |
|
|
61
|
+
| `--labels` | Filter by SM label (quote multi-word values) |
|
|
62
|
+
| `--limit` | Number of results |
|
|
63
|
+
| `--sort` | Sort field:direction (e.g. `value_usd:desc`) |
|
|
64
|
+
| `--fields` | Select specific fields |
|
|
65
|
+
| `--table` | Human-readable table output |
|
|
66
|
+
| `--format csv` | CSV export |
|
|
67
|
+
|
|
68
|
+
## Notes
|
|
69
|
+
|
|
70
|
+
- `perp-trades` is Hyperliquid-only. No `--chain` flag.
|
|
71
|
+
- For a time-series view of SM positions: `nansen research smart-money historical-holdings --chain <chain> --days 30`
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-token
|
|
3
|
+
description: Token deep dive — info, OHLCV, holders, flows, flow intelligence, who bought/sold, DEX trades, PnL, perp trades, perp positions, perp PnL leaderboard. Use when researching a specific token in depth.
|
|
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
|
+
# Token Deep Dive
|
|
20
|
+
|
|
21
|
+
All commands: `nansen research token <sub> [options]`
|
|
22
|
+
|
|
23
|
+
`--chain` required for spot endpoints. Use `--token <address>` for token-specific endpoints.
|
|
24
|
+
|
|
25
|
+
## Info & Price
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
nansen research token info --token <addr> --chain solana
|
|
29
|
+
nansen research token ohlcv --token <addr> --chain solana --timeframe 1h
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Timeframes: `1m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `1d`, `1w`, `1M`
|
|
33
|
+
|
|
34
|
+
## Holders
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
nansen research token holders --token <addr> --chain solana
|
|
38
|
+
nansen research token holders --token <addr> --chain solana --smart-money
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Flows
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
nansen research token flows --token <addr> --chain solana --days 7
|
|
45
|
+
nansen research token flow-intelligence --token <addr> --chain solana
|
|
46
|
+
nansen research token who-bought-sold --token <addr> --chain solana
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`flow-intelligence` breaks down by label: whales, smart traders, exchanges, fresh wallets, public figures.
|
|
50
|
+
|
|
51
|
+
## DEX Trades
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
nansen research token dex-trades --token <addr> --chain solana --limit 20
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## PnL
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
nansen research token pnl --token <addr> --chain solana --sort total_pnl_usd:desc
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Perps (no --chain)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
nansen research token perp-trades --symbol ETH --days 7
|
|
67
|
+
nansen research token perp-positions --symbol BTC
|
|
68
|
+
nansen research token perp-pnl-leaderboard --symbol SOL
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Flags
|
|
72
|
+
|
|
73
|
+
| Flag | Purpose |
|
|
74
|
+
|------|---------|
|
|
75
|
+
| `--chain` | Required for spot endpoints (ethereum, solana, base, etc.) |
|
|
76
|
+
| `--token` | Token address (alias: `--token-address`) |
|
|
77
|
+
| `--symbol` | Token symbol for perp endpoints (e.g. BTC) |
|
|
78
|
+
| `--timeframe` | OHLCV interval |
|
|
79
|
+
| `--smart-money` | Filter to SM wallets only (holders) |
|
|
80
|
+
| `--days` | Lookback period (default 30) |
|
|
81
|
+
| `--sort` | Sort field:direction (e.g. `total_pnl_usd:desc`) |
|
|
82
|
+
| `--fields` | Select specific fields |
|
|
83
|
+
| `--table` | Human-readable table output |
|
|
84
|
+
| `--format csv` | CSV export |
|
|
85
|
+
|
|
86
|
+
## Notes
|
|
87
|
+
|
|
88
|
+
- Perp endpoints use `--symbol` (e.g. BTC), not `--token`.
|
|
89
|
+
- `holders --smart-money` returns UNSUPPORTED_FILTER for tokens without SM tracking.
|
|
90
|
+
- `flow-intelligence` may return all-zero flows for illiquid tokens.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-token-discovery
|
|
3
|
+
description: "Discover trending tokens — screener, SM holdings, Nansen indicators, and flow intelligence for promising finds. Use when scanning for new tokens or screening what's hot."
|
|
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
|
+
# Token Discovery
|
|
20
|
+
|
|
21
|
+
**Answers:** "What tokens are trending and worth a deeper look?"
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
CHAIN=solana
|
|
25
|
+
|
|
26
|
+
# Screen top tokens by volume
|
|
27
|
+
nansen research token screener --chain $CHAIN --timeframe 24h --limit 20
|
|
28
|
+
# → token_symbol, price_usd, price_change, volume, buy_volume, market_cap_usd, fdv, liquidity, token_age_days
|
|
29
|
+
|
|
30
|
+
# Smart money only
|
|
31
|
+
nansen research token screener --chain $CHAIN --timeframe 24h --smart-money --limit 20
|
|
32
|
+
|
|
33
|
+
# Search within screener results (client-side filter)
|
|
34
|
+
nansen research token screener --chain $CHAIN --search "bonk"
|
|
35
|
+
|
|
36
|
+
# Smart money holdings — what SM wallets are holding
|
|
37
|
+
nansen research smart-money holdings --chain $CHAIN --labels "Smart Trader" --limit 20
|
|
38
|
+
# → token_symbol, value_usd, holders_count, balance_24h_percent_change, share_of_holdings_percent
|
|
39
|
+
|
|
40
|
+
# Nansen indicators for a specific token
|
|
41
|
+
TOKEN=<address>
|
|
42
|
+
nansen research token indicators --token $TOKEN --chain $CHAIN
|
|
43
|
+
# → risk_indicators, reward_indicators (each with score, signal, signal_percentile)
|
|
44
|
+
|
|
45
|
+
# Flow intelligence — only use for promising tokens from screener/indicators above
|
|
46
|
+
nansen research token flow-intelligence --token $TOKEN --chain $CHAIN
|
|
47
|
+
# → net_flow_usd per label: smart_trader, whale, exchange, fresh_wallets, public_figure
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Screener timeframes: `5m`, `10m`, `1h`, `6h`, `24h`, `7d`, `30d`
|
|
51
|
+
|
|
52
|
+
Indicators: score is "bullish"/"bearish"/"neutral". signal_percentile > 70 = historically significant. Some tokens return empty indicators — not an error.
|
|
53
|
+
|
|
54
|
+
Flow intelligence is credit-heavy. Use it to confirm SM conviction on tokens that already look promising from screener + indicators, not as a first pass on every token.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-token-forensics
|
|
3
|
+
description: "Where is this token moving and why? Large transfers, flow trends over time, and breakdown by wallet label."
|
|
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
|
+
# Token Forensics
|
|
20
|
+
|
|
21
|
+
**Answers:** "Where is this token moving? Who is sending it and where?"
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
TOKEN=<address> CHAIN=ethereum
|
|
25
|
+
# Examples: UNI on ethereum (0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984)
|
|
26
|
+
# BONK on solana (DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263)
|
|
27
|
+
# Note: token flows does NOT support stablecoins (USDC, USDT, etc.) — use non-stablecoin tokens
|
|
28
|
+
|
|
29
|
+
nansen research token transfers --token $TOKEN --chain $CHAIN --days 7 --limit 20
|
|
30
|
+
# → from_address_label, to_address_label, transfer_amount, transfer_value_usd
|
|
31
|
+
|
|
32
|
+
nansen research token flows --token $TOKEN --chain $CHAIN --days 7 --limit 20
|
|
33
|
+
# → date, price_usd, holders_count, total_inflows_count, total_outflows_count
|
|
34
|
+
# ⚠ Returns HTTP 422 for stablecoins — skip this command if TOKEN is a stablecoin
|
|
35
|
+
|
|
36
|
+
nansen research token flow-intelligence --token $TOKEN --chain $CHAIN
|
|
37
|
+
# → net_flow_usd per label: smart_trader, whale, exchange, fresh_wallets, public_figure
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Rising exchange_net_flow + large transfers to exchange addresses = potential sell pressure. Fresh wallet inflows may signal new interest or wash trading.
|