nansen-cli 1.17.0 → 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 +29 -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 +76 -3
- package/src/cli.js +176 -14
- package/src/schema.json +164 -1
- package/src/telemetry.js +237 -0
- package/src/update-check.js +2 -2
|
@@ -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.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nansen-trade
|
|
3
|
+
description: Execute DEX swaps on Solana or Base. Use when buying or selling a token, getting a swap quote, or executing a trade.
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
requires:
|
|
7
|
+
env:
|
|
8
|
+
- NANSEN_API_KEY
|
|
9
|
+
- NANSEN_WALLET_PASSWORD
|
|
10
|
+
bins:
|
|
11
|
+
- nansen
|
|
12
|
+
primaryEnv: NANSEN_API_KEY
|
|
13
|
+
install:
|
|
14
|
+
- kind: node
|
|
15
|
+
package: nansen-cli
|
|
16
|
+
bins: [nansen]
|
|
17
|
+
allowed-tools: Bash(nansen:*)
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Trade
|
|
21
|
+
|
|
22
|
+
Two-step flow: quote then execute. **Trades are irreversible once on-chain.**
|
|
23
|
+
|
|
24
|
+
**Prerequisite:** You need a wallet first. Run `nansen wallet create` before trading.
|
|
25
|
+
|
|
26
|
+
## Quote
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
nansen trade quote \
|
|
30
|
+
--chain solana \
|
|
31
|
+
--from SOL \
|
|
32
|
+
--to USDC \
|
|
33
|
+
--amount 1000000000
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Symbols resolve automatically: `SOL`, `ETH`, `USDC`, `USDT`, `WETH`. Raw addresses also work.
|
|
37
|
+
|
|
38
|
+
## Execute
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
nansen trade execute --quote <quote-id>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Agent pattern
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Pipe quote ID directly into execute
|
|
48
|
+
quote_id=$(nansen trade quote --chain solana --from SOL --to USDC --amount 1000000000 2>&1 | grep "Quote ID:" | awk '{print $NF}')
|
|
49
|
+
nansen trade execute --quote "$quote_id"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Common Token Addresses
|
|
53
|
+
|
|
54
|
+
| Token | Chain | Address |
|
|
55
|
+
|-------|-------|---------|
|
|
56
|
+
| SOL | Solana | `So11111111111111111111111111111111111111112` |
|
|
57
|
+
| USDC | Solana | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` |
|
|
58
|
+
| ETH | Base | `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` |
|
|
59
|
+
| USDC | Base | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` |
|
|
60
|
+
|
|
61
|
+
## Amounts are in base units
|
|
62
|
+
|
|
63
|
+
| Token | Decimals | 1 token = |
|
|
64
|
+
|-------|----------|-----------|
|
|
65
|
+
| SOL | 9 | `1000000000` |
|
|
66
|
+
| ETH | 18 | `1000000000000000000` |
|
|
67
|
+
| USDC | 6 | `1000000` |
|
|
68
|
+
|
|
69
|
+
## Flags
|
|
70
|
+
|
|
71
|
+
| Flag | Purpose |
|
|
72
|
+
|------|---------|
|
|
73
|
+
| `--chain` | `solana` or `base` |
|
|
74
|
+
| `--from` | Source token (symbol or address) |
|
|
75
|
+
| `--to` | Destination token (symbol or address) |
|
|
76
|
+
| `--amount` | Amount in base units (integer) |
|
|
77
|
+
| `--wallet` | Wallet name (default: default wallet) |
|
|
78
|
+
| `--slippage` | Slippage tolerance as decimal (e.g. 0.03) |
|
|
79
|
+
| `--quote` | Quote ID for execute |
|
|
80
|
+
| `--no-simulate` | Skip pre-broadcast simulation |
|
|
81
|
+
|
|
82
|
+
## Environment Variables
|
|
83
|
+
|
|
84
|
+
| Var | Purpose |
|
|
85
|
+
|-----|---------|
|
|
86
|
+
| `NANSEN_WALLET_PASSWORD` | **Required for `trade execute`.** Wallet encryption password — persisted in `~/.nansen/.env`. Source before executing: `source ~/.nansen/.env && nansen trade execute ...` |
|
|
87
|
+
| `NANSEN_API_KEY` | API key (also set via `nansen login`) |
|
|
88
|
+
|
|
89
|
+
> **Agents:** Never hold a wallet password only in session memory. If `NANSEN_WALLET_PASSWORD` is not in `~/.nansen/.env`, follow the setup flow in the nansen-wallet skill Password Policy to generate and persist one before proceeding.
|
|
90
|
+
|
|
91
|
+
## Notes
|
|
92
|
+
|
|
93
|
+
- Quotes expire after ~1 hour. If execute fails, get a fresh quote.
|
|
94
|
+
- A wallet is required even for quotes (the API builds sender-specific transactions).
|
|
95
|
+
- ERC-20 swaps may require an approval step — execute handles this automatically.
|
|
96
|
+
|
|
97
|
+
## Source
|
|
98
|
+
|
|
99
|
+
- npm: https://www.npmjs.com/package/nansen-cli
|
|
100
|
+
- GitHub: https://github.com/nansen-ai/nansen-cli
|