Repository navigation
Profiler
The Profiler service provides wallet-level intelligence: current token balances and DEX trade history for a specific address.
Access it via client.Profiler.
AddressCurrentBalance returns the current token balances for a wallet address or named entity.
Endpoint: POST /api/v1/profiler/address/current-balance
type ProfilerAddressBalancesRequest struct {
Address string `json:"address,omitempty"`
EntityName string `json:"entity_name,omitempty"`
Chain Chain `json:"chain"`
HideSpamToken *bool `json:"hide_spam_token,omitempty"`
Filters *ProfilerAddressBalancesFilters `json:"filters,omitempty"`
Pagination *PaginationRequest `json:"pagination,omitempty"`
OrderBy []SortOrder `json:"order_by,omitempty"`
}You can look up a wallet either by its Address (a raw hex address) or by its EntityName (a Nansen-labelled entity name). Provide one or the other.
Filters (ProfilerAddressBalancesFilters):
| Field | Type | Description |
|---|---|---|
ValueUSD |
*NumericRangeFilter |
Filter by token value in USD. |
PriceUSD |
*NumericRangeFilter |
Filter by token price in USD. |
TokenAmount |
*IntegerRangeFilter |
Filter by token amount held. |
TokenSymbol |
interface{} |
Filter by token symbol or list of symbols. |
TokenAddress |
interface{} |
Filter by token address or list of addresses. |
TokenName |
interface{} |
Filter by token name. |
Sort fields (ProfilerAddressBalancesSortField):
value_usd, token_symbol
resp, err := client.Profiler.AddressCurrentBalance(ctx, &nansen.ProfilerAddressBalancesRequest{
Address: "0x0000000000000000000000000000000000000000",
Chain: nansen.ChainEthereum,
HideSpamToken: nansen.BoolPtr(true),
Pagination: &nansen.PaginationRequest{
Page: nansen.IntPtr(1),
PerPage: nansen.IntPtr(20),
},
OrderBy: []nansen.SortOrder{
{Field: string(nansen.BalanceSortValueUSD), Direction: nansen.SortDesc},
},
})Each item in resp.Data is a ProfilerBalance:
| Field | Type | Description |
|---|---|---|
Chain |
string |
Blockchain the token is on. |
Address |
string |
Wallet address. |
TokenAddress |
string |
Token contract address. |
TokenSymbol |
string |
Token ticker symbol. |
TokenName |
*string |
Token name. |
TokenAmount |
*float64 |
Amount of tokens held. |
PriceUsd |
*float64 |
Current token price in USD. |
ValueUsd |
*float64 |
Total value of the holding in USD. |
AddressDEXTrades returns DEX trade history for a wallet address on a specific chain within a date range.
Endpoint: POST /api/v1/profiler/dex-trades
type ProfilerDexTradeRequest struct {
Address string `json:"address"`
Chain Chain `json:"chain"`
Date DateRange `json:"date"`
Filters *ProfilerDexTradeFilters `json:"filters,omitempty"`
Pagination *PaginationRequest `json:"pagination,omitempty"`
OrderBy []SortOrder `json:"order_by,omitempty"`
}Sort fields (ProfilerDexTradeSortField):
chain, block_timestamp, transaction_hash, token_bought_amount, token_sold_amount, token_bought_symbol, token_sold_symbol, token_bought_age_days, token_sold_age_days, token_bought_market_cap, token_sold_market_cap, token_bought_fdv, token_sold_fdv, trade_value_usd
resp, err := client.Profiler.AddressDEXTrades(ctx, &nansen.ProfilerDexTradeRequest{
Address: "0x0000000000000000000000000000000000000000",
Chain: nansen.ChainEthereum,
Date: nansen.DateRange{
From: time.Now().AddDate(0, 0, -7).Format(time.RFC3339),
To: time.Now().Format(time.RFC3339),
},
Pagination: &nansen.PaginationRequest{
Page: nansen.IntPtr(1),
PerPage: nansen.IntPtr(10),
},
OrderBy: []nansen.SortOrder{
{Field: string(nansen.ProfilerDexSortTradeValueUSD), Direction: nansen.SortDesc},
},
})