Authentication
Browser login requests nansen:api for API-key-equivalent account API permissions; existing OAuth/MCP nansen:read semantics and separate wallet authorization are unchanged.
Before any research command or loop, require an explicitly selected API key or saved browser session. Run nansen auth status first. Its cached/unverified metadata does not prove credential validity or unlocked storage. Cached access-token expiry alone does not mean the session is unusable: the CLI normally renews a selected session automatically during an already-authorized research task, without another consent request or a separate account check. Stop on anonymous selection, invalid authentication state, blocked or uncertain renewal/cleanup, or an actual authentication failure, including rejected or expired refresh authority. Follow the CLI error guidance; use the free nansen account check when troubleshooting calls for it. Do not unset a failed key, erase a session or switch to anonymous access to retry.
Use nansen login for fresh browser approval when server admission and the supported platform cohort are enabled, or configure a conventional API key. NANSEN_API_KEY overrides the saved session. OpenClaw's optional primaryEnv mapping preserves configured API-key injection; it is not a required-key gate or proof of authentication. Normal credits and entitlements apply. Login does not purchase credits. Browser rollout acceptance is still pending.
Anonymous x402 is a separate paid workflow: without a selected credential, the CLI can automatically spend funds from its configured wallet on a supported 402 challenge, once per call, including calls in loops. Do not run this research workflow anonymously. Anonymous payment requires separate explicit user intent and payment setup; it is never a fallback for failed authentication.
Wallet Profiler
All commands: nansen research profiler <sub> [options]
--address and --chain required for most commands.
Balance & Identity
nansen research profiler balance --address <addr> --chain ethereum
nansen research profiler labels --address <addr> --chain ethereum
nansen research profiler search --query "Vitalik"
PnL
nansen research profiler pnl --address <addr> --chain ethereum --days 30
nansen research profiler pnl-summary --address <addr> --chain ethereum
Transactions & History
nansen research profiler transactions --address <addr> --chain ethereum --limit 20
nansen research profiler historical-balances --address <addr> --chain solana --days 30
Relationships
nansen research profiler related-wallets --address <addr> --chain ethereum
nansen research profiler counterparties --address <addr> --chain ethereum --days 30
# Counterparties for up to 10 wallets in one call (max --days 90).
# Results are not aggregated — every row carries the wallet_address it belongs to.
# One ecosystem per request: EVM and Solana addresses cannot be mixed; `all` auto-detects it.
# --chain also takes any single chain the profiler serves, EVM or not: arbitrum, arc,
# avalanche, base, bitcoin, bnb (`bsc` is accepted too), ethereum, hyperevm, injective,
# iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, sei,
# solana, sonic, starknet, sui, ton, tron.
# Rows come back as contiguous per-wallet blocks ordered by wallet address, so a small page
# holds one wallet only — raise --limit and page with --page N to reach later wallets.
nansen research profiler counterparties-batch --addresses "0xabc,0xdef" --days 30 --limit 50
Perps (no --chain)
nansen research profiler perp-positions --address <addr>
nansen research profiler perp-trades --address <addr> --days 7
Batch, Trace & Compare
# Batch — profile multiple wallets at once
nansen research profiler batch \
--addresses "0xabc,0xdef" --chain ethereum \
--include labels,balance,pnl
# Trace — BFS multi-hop counterparty trace (makes N*width API calls)
nansen research profiler trace --address <addr> --chain ethereum --depth 2 --width 5
# Compare — shared counterparties and tokens between two wallets
nansen research profiler compare --addresses "0xabc,0xdef" --chain ethereum
Flags
| Flag | Purpose |
|---|---|
--address | Wallet address (required) |
--chain | Required except for perps and search |
--days | Lookback period (default 30) |
--limit | Number of results |
--addresses | Comma-separated wallets for batch, compare, counterparties-batch |
--include | Batch fields: labels,balance,pnl |
--depth | Trace depth 1-5 (default 2) |
--width | Trace width — keep low to save credits |
--fields | Select specific fields |
--table | Human-readable table output |
--format csv | CSV export |
Notes
pnl-summaryhas no pagination support (returns aggregate stats, not a list).perp-positionshas no pagination support.labelssupports pagination —--limit/--pageare honoured and the response is{pagination: {page, per_page, is_last_page}, data[]: {label, category, kind[]}}.transactionscaps at per_page=100 (API limit).tracemakes many API calls — use--widthconservatively.batchaccepts--file <path>with one address per line as alternative to--addresses.