On-Chain API
On-chain intelligence endpoints sourced from Nansen (smart money, holders) and WhaleAlert (whale transactions, exchange flows).Base URL
Authentication
All endpoints require a JWT bearer token.Endpoints
Get smart-money sentiment
GET /api/v1/on-chain/smart-money/sentiment
Whether smart-money wallets are accumulating or distributing a given token, with net inflow/outflow figures.
Query Parameters:
symbol(string, required): Token symbol. Examples:ETH,UNI.chain(string, optional): Blockchain. Default:ethereum.
Screen smart-money tokens
GET /api/v1/on-chain/smart-money/screen
Screen for tokens with the highest smart-money activity across one or more chains.
Query Parameters:
chains(string, optional): Comma-separated chains. Default:ethereum.timeframe(string, optional): One of5m,1h,6h,24h,7d,30d. Default:24h.limit(integer, optional): Max results. Default:50.
Get token holders
GET /api/v1/on-chain/token-holders/{symbol}
Holder distribution for a token, including concentration of the top 10 holders.
Path Parameters:
symbol(string, required): Token symbol. Examples:ETH,UNI.
Get whale transactions
GET /api/v1/on-chain/whale-transactions
Recent large-value on-chain transactions, optionally filtered by symbol and minimum USD value.
Query Parameters:
symbol(string, optional): Filter by token symbol. Examples:btc,eth.min_value(integer, optional): Minimum USD value per transaction. Default:500000.hours_back(integer, optional): Lookback window in hours. Default:24.
Get exchange flows
GET /api/v1/on-chain/exchange-flows
Aggregated inflows/outflows across centralized exchanges, optionally filtered by token. Net positive = exchange inflows (often associated with sell pressure); net negative = outflows (often associated with accumulation/withdrawal).
Query Parameters:
symbol(string, optional): Filter by token symbol. Examples:btc,eth. Omit for all currencies.hours_back(integer, optional): Lookback hours. Default:24.
Get whale activity summary
GET /api/v1/on-chain/whale-activity/{symbol}
Aggregated whale activity for a single token over a lookback window.
Path Parameters:
symbol(string, required): Token symbol. Examples:btc,eth.
hours_back(integer, optional): Lookback hours. Default:24.
Smart-money depth endpoints
The next three endpoints expose the full Nansen Pro smart-money surface. All accept the same JSON body shape and forwardfilters + order_by straight through to the upstream Nansen API, so you get the entire Pro-plan capability (restrict by include_smart_money_labels, set value_usd min/max bounds, sort by any field).
Smart-money historical holdings
POST /api/v1/on-chain/smart-money/historical-holdings
Date-stamped snapshots of Smart Money token holdings across chains. Use this to track how aggregate Smart Money positions in a token evolve over time.
Body:
chains=["ethereum"], trailing 7-day date_range, no filters, no order_by, page=1, per_page=100.
Smart-money DEX trades
POST /api/v1/on-chain/smart-money/dex-trades
Live DEX trades by Smart Money wallets across chains. Filter to specific labels (e.g. Fund only) and sort by recency.
Body:
success, chains, filters, order_by, count, and a trades list. Each trade includes chain, block_timestamp, transaction_hash, trader_address, trader_address_label, token_bought_address, token_sold_address, value_usd, etc.
Smart-money perpetual-futures trades (Hyperliquid)
POST /api/v1/on-chain/smart-money/perp-trades
Perpetual-futures trades by Smart Money wallets on Hyperliquid. Hyperliquid-only at the upstream — no chain filter is accepted.
Body:
filters.action values: Buy - Add Long, Sell - Reduce Long, Sell - Add Short, Buy - Reduce Short. Valid filters.type values: Market, Limit. Valid order_by.field values: block_timestamp, token_amount, price_usd, value_usd.
Python (via SDK)
success, venue="hyperliquid", filters, order_by, count, and a trades list.
Token-scoped depth endpoints
For when you want the full picture on a single token instead of broad smart-money reads. Both endpoints resolvesymbol to an on-chain contract address via CoinGecko, so pass either the CoinGecko ID (uniswap) or a ticker.
Token DEX trades
POST /api/v1/on-chain/token/{symbol}/dex-trades
DEX trades for a single token across all participants in a date window.
Path: {symbol} — CoinGecko ID preferred (uniswap), or a ticker (UNI).
Body:
success, symbol, chain, contract_address, date_range, filters, order_by, count, and a trades list.
Token flows
POST /api/v1/on-chain/token/{symbol}/flows
Per-wallet-category flow aggregation (smart-money, whales, exchanges, fresh wallets, public figures) for a single token in a date window.
Note: Nansen does not support stablecoins on this endpoint. Calls with stablecoin symbols return 404 RESOURCE_NOT_FOUND.
Body: same shape as /token/{symbol}/dex-trades above.
Python (via SDK)
success, symbol, chain, contract_address, date_range, filters, order_by, count, and a flows list. Each row includes date, price_usd, token_amount, value_usd, holders_count, total_inflows_count, total_outflows_count, plus per-category aggregations.
Error Codes
| Code | HTTP Status | Description |
|---|---|---|
MISSING_FIELD | 400 | Required parameter missing (e.g. symbol on smart-money sentiment) |
INVALID_FIELD | 400 | Invalid value for a constrained field (e.g. unsupported timeframe on flow-intelligence) |
AUTH_REQUIRED | 401 | Missing or invalid bearer token |
RESOURCE_NOT_FOUND | 404 | Token symbol not tracked by upstream provider, or stablecoin on /token/{symbol}/flows |
INTERNAL_ERROR | 500 | Upstream provider (Nansen / WhaleAlert) error |