Nansen Profiler — Wallet Intelligence
Profile any wallet: balances, labels, PnL, transactions, and counterparties.
When This Skill Activates
- "Who is this wallet?" / "What does 0x... hold?"
- "Show PnL for this address"
- "Transaction history" / "Related wallets" / "Counterparties"
- "Search for entity" / "Find wallet by name"
Command Routing
| User Intent |
Command |
Key Options |
Status |
| Token holdings |
profiler balance |
--address (req), --chain, --entity |
✅ |
| Wallet labels |
profiler labels |
--address (req), --chain |
✅ |
| Transactions |
profiler transactions |
--address (req), --chain, --date (req), --limit |
⚠️ needs --date |
| Historical balances |
profiler historical-balances |
--address (req), --chain, --days |
✅ |
| Counterparties |
profiler counterparties |
--address (req), --chain, --days |
✅ |
| Related wallets |
profiler related-wallets |
--address (req), --chain, --limit |
✅ |
| PnL summary |
profiler pnl-summary |
--address (req), --chain, --days |
✅ |
| Perp trades |
profiler perp-trades |
--address (req), --days, --limit |
✅ |
| Perp positions |
profiler perp-positions |
--address (req) |
✅ |
| Entity search |
profiler search |
--query (req), --limit |
✅ |
| Batch profile |
profiler batch |
--addresses or --file (req), --chain, --include |
✅ |
| Counterparty trace |
profiler trace |
--address (req), --chain, --depth, --width |
⚠️ See note |
| Compare wallets |
profiler compare |
--addresses (req), --chain, --days |
✅ |
| PnL (per-token) |
profiler pnl |
--address (req), --chain, --date (req) |
⚠️ CLI broken, use curl |
⚠️ Known Issues
profiler pnl — The CLI calls the old endpoint path (pnl-and-trade-performance) which returns 404. The correct API endpoint /api/v1/profiler/address/pnl works via curl. Requires date range. Use profiler pnl-summary for aggregate PnL, or curl for per-token PnL.
profiler trace (counterparty trace) — Will not work for high-volume addresses if you search longer timeframes. Use --depth 2 and short timeframes for large wallets.
profiler transactions requires --date '{"from": "YYYY-MM-DD", "to": "YYYY-MM-DD"}' — the --days option alone does NOT work.
Response Field Notes
profiler labels returns: label, category, definition, fullname, smEarnedDate (not label_type/label_subtype as schema suggests)
profiler historical-balances returns: block_timestamp, chain, token_address, token_amount, token_symbol, value_usd (not date/balance/balance_usd)
profiler pnl-summary returns top-level fields: top5_tokens, traded_token_count, traded_times, realized_pnl_usd, realized_pnl_percent, win_rate
Examples
# Search for an entity by name
nansen profiler search --query "Vitalik"
nansen profiler search --query "Binance"
# Who is this wallet?
nansen profiler labels --address 0x... --table
nansen profiler balance --address 0x... --sort value_usd:desc --limit 20 --table
# Historical balances
nansen profiler historical-balances --address 0x... --chain ethereum --days 30 --table
# Counterparties
nansen profiler counterparties --address 0x... --chain ethereum --table
# Related wallets
nansen profiler related-wallets --address 0x... --chain ethereum --limit 10 --table
# PnL summary
nansen profiler pnl-summary --address 0x... --chain ethereum --days 30
# Transactions (--date is required!)
nansen profiler transactions --address 0x... --chain ethereum --date '{"from": "2026-01-01", "to": "2026-02-15"}' --limit 20 --table
# Perp positions
nansen profiler perp-positions --address 0x...
# Batch profile multiple wallets
nansen profiler batch --addresses "0xabc...,0xdef..." --chain ethereum --include labels,balance
# Counterparty trace (BFS) — use low depth for high-volume wallets
nansen profiler trace --address 0x... --chain ethereum --depth 2 --width 10
# Per-token PnL (CLI broken, use curl)
curl -s -X POST 'https://api.nansen.ai/api/v1/profiler/address/pnl' \
-H "apiKey: $NANSEN_API_KEY" -H 'Content-Type: application/json' \
-d '{"address":"0x...","chain":"ethereum","date":{"from":"2026-01-01","to":"2026-02-17"}}'
# Compare two wallets
nansen profiler compare --addresses "0xabc...,0xdef..." --chain ethereum
Investigation Workflow
- Search → find entity 2. Labels → identity 3. Balance → current holdings 4. Historical Balances → trends 5. Counterparties → interactions 6. Trace → network mapping
Ticker Resolution
If user gives a ticker instead of address:
nansen token screener --chain solana --sort volume:desc
# Filter output by token_symbol to find the address
# Note: --search flag does NOT filter results
References
- Command parameters:
references/commands.md (profiler section)
- Example response:
references/examples/profiler-balance.json
- Cached schema:
references/schema.json
Attribution
📊 Data by Nansen
1---2name: nansen-profiler3description: Profile any wallet or entity on-chain via Nansen CLI. Look up balances, labels, transactions, PnL, related wallets, and counterparties.4---56# Nansen Profiler — Wallet Intelligence78Profile any wallet: balances, labels, PnL, transactions, and counterparties.910## When This Skill Activates1112- "Who is this wallet?" / "What does 0x... hold?"13- "Show PnL for this address"14- "Transaction history" / "Related wallets" / "Counterparties"15- "Search for entity" / "Find wallet by name"1617## Command Routing1819| User Intent | Command | Key Options | Status |20|------------|---------|-------------|--------|21| Token holdings | `profiler balance` | `--address` (req), `--chain`, `--entity` | ✅ |22| Wallet labels | `profiler labels` | `--address` (req), `--chain` | ✅ |23| Transactions | `profiler transactions` | `--address` (req), `--chain`, `--date` (req), `--limit` | ⚠️ needs `--date` |24| Historical balances | `profiler historical-balances` | `--address` (req), `--chain`, `--days` | ✅ |25| Counterparties | `profiler counterparties` | `--address` (req), `--chain`, `--days` | ✅ |26| Related wallets | `profiler related-wallets` | `--address` (req), `--chain`, `--limit` | ✅ |27| PnL summary | `profiler pnl-summary` | `--address` (req), `--chain`, `--days` | ✅ |28| Perp trades | `profiler perp-trades` | `--address` (req), `--days`, `--limit` | ✅ |29| Perp positions | `profiler perp-positions` | `--address` (req) | ✅ |30| Entity search | `profiler search` | `--query` (req), `--limit` | ✅ |31| Batch profile | `profiler batch` | `--addresses` or `--file` (req), `--chain`, `--include` | ✅ |32| Counterparty trace | `profiler trace` | `--address` (req), `--chain`, `--depth`, `--width` | ⚠️ See note |33| Compare wallets | `profiler compare` | `--addresses` (req), `--chain`, `--days` | ✅ |34| PnL (per-token) | `profiler pnl` | `--address` (req), `--chain`, `--date` (req) | ⚠️ CLI broken, use curl |3536### ⚠️ Known Issues3738- **`profiler pnl`** — The CLI calls the old endpoint path (`pnl-and-trade-performance`) which returns 404. The correct API endpoint `/api/v1/profiler/address/pnl` works via curl. Requires `date` range. Use `profiler pnl-summary` for aggregate PnL, or curl for per-token PnL.39- **`profiler trace`** (counterparty trace) — Will not work for high-volume addresses if you search longer timeframes. Use `--depth 2` and short timeframes for large wallets.40- **`profiler transactions`** requires `--date '{"from": "YYYY-MM-DD", "to": "YYYY-MM-DD"}'` — the `--days` option alone does NOT work.4142### Response Field Notes4344- **`profiler labels`** returns: `label`, `category`, `definition`, `fullname`, `smEarnedDate` (not `label_type`/`label_subtype` as schema suggests)45- **`profiler historical-balances`** returns: `block_timestamp`, `chain`, `token_address`, `token_amount`, `token_symbol`, `value_usd` (not `date`/`balance`/`balance_usd`)46- **`profiler pnl-summary`** returns top-level fields: `top5_tokens`, `traded_token_count`, `traded_times`, `realized_pnl_usd`, `realized_pnl_percent`, `win_rate`4748## Examples4950```bash51# Search for an entity by name52nansen profiler search --query "Vitalik"53nansen profiler search --query "Binance"5455# Who is this wallet?56nansen profiler labels --address 0x... --table57nansen profiler balance --address 0x... --sort value_usd:desc --limit 20 --table5859# Historical balances60nansen profiler historical-balances --address 0x... --chain ethereum --days 30 --table6162# Counterparties63nansen profiler counterparties --address 0x... --chain ethereum --table6465# Related wallets66nansen profiler related-wallets --address 0x... --chain ethereum --limit 10 --table6768# PnL summary69nansen profiler pnl-summary --address 0x... --chain ethereum --days 307071# Transactions (--date is required!)72nansen profiler transactions --address 0x... --chain ethereum --date '{"from": "2026-01-01", "to": "2026-02-15"}' --limit 20 --table7374# Perp positions75nansen profiler perp-positions --address 0x...7677# Batch profile multiple wallets78nansen profiler batch --addresses "0xabc...,0xdef..." --chain ethereum --include labels,balance7980# Counterparty trace (BFS) — use low depth for high-volume wallets81nansen profiler trace --address 0x... --chain ethereum --depth 2 --width 108283# Per-token PnL (CLI broken, use curl)84curl -s -X POST 'https://api.nansen.ai/api/v1/profiler/address/pnl' \85 -H "apiKey: $NANSEN_API_KEY" -H 'Content-Type: application/json' \86 -d '{"address":"0x...","chain":"ethereum","date":{"from":"2026-01-01","to":"2026-02-17"}}'8788# Compare two wallets89nansen profiler compare --addresses "0xabc...,0xdef..." --chain ethereum90```9192## Investigation Workflow93941. **Search** → find entity 2. **Labels** → identity 3. **Balance** → current holdings 4. **Historical Balances** → trends 5. **Counterparties** → interactions 6. **Trace** → network mapping9596## Ticker Resolution9798If user gives a ticker instead of address:99```bash100nansen token screener --chain solana --sort volume:desc101# Filter output by token_symbol to find the address102# Note: --search flag does NOT filter results103```104105## References106107- Command parameters: `references/commands.md` (profiler section)108- Example response: `references/examples/profiler-balance.json`109- Cached schema: `references/schema.json`110111## Attribution112113> 📊 Data by [Nansen](https://nansen.ai)