pub struct TokenHolder {Show 64 fields
pub account_address: Option<String>,
pub accu_amount: Option<String>,
pub accu_cost: Option<String>,
pub addr_type: Option<i64>,
pub address_label: Option<String>,
pub amount: String,
pub amount_in_native: Option<String>,
pub amount_in_usd: String,
pub avg_buy_price_usd: Option<String>,
pub avg_cost_usd: Option<String>,
pub avg_sell_price_usd: Option<String>,
pub buy_amount_cur: Option<String>,
pub buy_volume_native: Option<String>,
pub buy_volume_usd: Option<String>,
pub created_at: Option<i64>,
pub end_holding_at: Option<i64>,
pub exchange: Option<String>,
pub first_buy_time: Option<i64>,
pub history_bought_cost: Option<String>,
pub history_bought_fee: Option<String>,
pub history_sold_fee: Option<String>,
pub history_sold_income: Option<String>,
pub history_transfer_in_amount: Option<String>,
pub history_transfer_in_cost: Option<String>,
pub history_transfer_out_amount: Option<String>,
pub history_transfer_out_fee: Option<String>,
pub history_transfer_out_income: Option<String>,
pub is_closed: Option<bool>,
pub is_new: Option<bool>,
pub is_transfer_in: Option<bool>,
pub last_active_at: Option<i64>,
pub last_block: Option<i64>,
pub loss_count: Option<i64>,
pub maker_token_tags: Vec<String>,
pub native_balance: Option<String>,
pub netflow_amount: Option<String>,
pub netflow_amount_usd: Option<String>,
pub netflow_usd: Option<String>,
pub percentage: String,
pub position_cost_usd: Option<String>,
pub realized_pnl_ratio: Option<String>,
pub realized_profit: Option<String>,
pub roi: Option<String>,
pub sell_amount_cur: Option<String>,
pub sell_amount_percentage: Option<String>,
pub sell_volume_native: Option<String>,
pub sell_volume_usd: Option<String>,
pub start_holding_at: Option<i64>,
pub tags: Vec<String>,
pub token_transfer_in: Option<Value>,
pub token_transfer_out: Option<Value>,
pub total_buy_count: Option<i64>,
pub total_cost_usd: Option<String>,
pub total_profit: Option<String>,
pub total_sell_count: Option<i64>,
pub transfer_in_amount7d: Option<String>,
pub transfer_in_count: Option<i64>,
pub transfer_out_amount7d: Option<String>,
pub transfer_out_count: Option<i64>,
pub unrealized_pnl_ratio: Option<String>,
pub unrealized_profit: Option<String>,
pub wallet_address: String,
pub wallet_tag_v2: Option<String>,
pub win_count: Option<i64>,
}Expand description
Token holder
JSON schema
{
"description": "Token holder",
"type": "object",
"required": [
"amount",
"amountInUsd",
"percentage",
"walletAddress"
],
"properties": {
"accountAddress": {
"description": "Solana token account address (ATA) for this holder position.\nDistinct from walletAddress (the owner). Matches GMGN `accountAddress`.",
"type": "string"
},
"accuAmount": {
"description": "Traceable cumulative DEX buy quantity — buy-side only (GMGN: accu_amount)",
"type": "string"
},
"accuCost": {
"description": "Traceable position accumulated cost, USD (GMGN: accu_cost)",
"type": "string"
},
"addrType": {
"description": "Address type from dexes_dwd.address_labels (1=CEX, 2=MM, 3=VC, 4=KOL …). Matches GMGN `addr_type`.",
"type": "integer",
"format": "int64"
},
"addressLabel": {
"description": "Specific address label (e.g. \"Binance Hot Wallet 1\"). Matches GMGN `name`.",
"type": "string"
},
"amount": {
"description": "ENTITY.TOKEN_HOLDER.AMOUNT",
"examples": [
"1000000000000000000"
],
"type": "string"
},
"amountInNative": {
"description": "Holder's token position value denominated in the chain's native coin (SOL/BNB/ETH).\nComputed as `price_in_native × amount` using real-time Redis price;\nfalls back to OpenSearch `post_balance_in_native` snapshot when price is unavailable.",
"type": "string"
},
"amountInUsd": {
"description": "ENTITY.TOKEN_HOLDER.AMOUNT_IN_USD",
"examples": [
"1000000000000000000"
],
"type": "string"
},
"avgBuyPriceUsd": {
"description": "Average buy price in USD per token (all-time)",
"type": "string"
},
"avgCostUsd": {
"description": "Average cost per token in USD (current position cost basis)",
"type": "string"
},
"avgSellPriceUsd": {
"description": "Average sell price in USD per token (all-time)",
"type": "string"
},
"buyAmountCur": {
"description": "Cumulative token quantity bought, all-time (GMGN: buy_amount_cur / history_bought_amount)",
"type": "string"
},
"buyVolumeNative": {
"description": "All-time total buy volume in native token",
"type": "string"
},
"buyVolumeUsd": {
"description": "All-time total buy volume in USD",
"type": "string"
},
"createdAt": {
"description": "Unix timestamp (seconds) when this wallet first appeared on-chain (GMGN: created_at).",
"type": "integer",
"format": "int64"
},
"endHoldingAt": {
"description": "Timestamp when holder fully closed position (ms since epoch)",
"type": "integer",
"format": "int64"
},
"exchange": {
"description": "Entity/exchange name (e.g. \"Binance\"). Matches GMGN `exchange`.",
"type": "string"
},
"firstBuyTime": {
"description": "Timestamp of first token purchase (ms since epoch)",
"type": "integer",
"format": "int64"
},
"historyBoughtCost": {
"description": "Total DEX buy cost including fees, USD (GMGN: history_bought_cost)",
"type": "string"
},
"historyBoughtFee": {
"description": "Total DEX buy fees, USD (GMGN: history_bought_fee)",
"type": "string"
},
"historySoldFee": {
"description": "Total DEX sell fees, USD (GMGN: history_sold_fee)",
"type": "string"
},
"historySoldIncome": {
"description": "Total DEX sell income, USD (GMGN: history_sold_income)",
"type": "string"
},
"historyTransferInAmount": {
"description": "Cumulative transfer-in token qty (GMGN: history_transfer_in_amount)",
"type": "string"
},
"historyTransferInCost": {
"description": "Transfer-in USD cost basis (GMGN: history_transfer_in_cost)",
"type": "string"
},
"historyTransferOutAmount": {
"description": "Cumulative transfer-out token qty (GMGN: history_transfer_out_amount)",
"type": "string"
},
"historyTransferOutFee": {
"description": "Total transfer-out fee in USD all-time (GMGN: historyTransferOutFee).",
"type": "string"
},
"historyTransferOutIncome": {
"description": "Transfer-out USD income (GMGN: history_transfer_out_income)",
"type": "string"
},
"isClosed": {
"description": "Whether the token position is fully closed (balance = 0)",
"type": "boolean"
},
"isNew": {
"description": "Whether the wallet is newly created (GMGN: is_new).",
"type": "boolean"
},
"isTransferIn": {
"description": "Position acquired purely via transfers, no DEX buy (GMGN: transfer_in)",
"type": "boolean"
},
"lastActiveAt": {
"description": "Last active timestamp (ms since epoch)",
"type": "integer",
"format": "int64"
},
"lastBlock": {
"description": "Last processed block height for this holder position (GMGN: last_block).",
"type": "integer",
"format": "int64"
},
"lossCount": {
"description": "Number of losing trades (PnL < 0)",
"type": "integer",
"format": "int64"
},
"makerTokenTags": {
"description": "Per-token position/behaviour tags derived at query time.\nPossible values: \"top_holder\" (rank ≤ 10, first page only),\n\"whale\" (holding > $10,000 USD), \"diamond_hands\" (held > 30 days).",
"type": "array",
"items": {
"type": "string"
}
},
"nativeBalance": {
"description": "Native chain token balance in lamports (SOL) or wei (EVM), as decimal string.\nFetched from RPC with a 10-second Redis cache.",
"type": "string"
},
"netflowAmount": {
"description": "Net token quantity flow: buys − sells (GMGN: netflow_amount)",
"type": "string"
},
"netflowAmountUsd": {
"description": "Net USD flow: buy_usd − sell_usd (from OS netflow_usd)",
"type": "string"
},
"netflowUsd": {
"description": "Net USD inflow (buy_volume_usd − sell_volume_usd); positive = net buyer",
"type": "string"
},
"percentage": {
"description": "ENTITY.TOKEN_HOLDER.PERCENTAGE",
"examples": [
"100"
],
"type": "string"
},
"positionCostUsd": {
"description": "Current open position cost in USD",
"type": "string"
},
"realizedPnlRatio": {
"description": "Realized PnL / total_cost ratio (GMGN: realized_pnl)",
"type": "string"
},
"realizedProfit": {
"description": "Realized PnL in USD (all-time)",
"type": "string"
},
"roi": {
"description": "Return on investment = total_pnl / total_cost_all (e.g. 0.25 = 25%)",
"type": "string"
},
"sellAmountCur": {
"description": "Cumulative token quantity sold, all-time (GMGN: sell_amount_cur / history_sold_amount)",
"type": "string"
},
"sellAmountPercentage": {
"description": "Sell quantity / buy quantity, capped 0–1 (GMGN: sell_amount_percentage)",
"type": "string"
},
"sellVolumeNative": {
"description": "All-time total sell volume in native token",
"type": "string"
},
"sellVolumeUsd": {
"description": "All-time total sell volume in USD",
"type": "string"
},
"startHoldingAt": {
"description": "Timestamp when holder first acquired the token (ms since epoch)",
"type": "integer",
"format": "int64"
},
"tags": {
"description": "Trader classification tags (e.g. \"kol\", \"smart\", \"sniper\")",
"type": "array",
"items": {
"type": "string"
}
},
"tokenTransferIn": {
"description": "Most recent token transfer-in for this holder on this token (GMGN: token_transfer_in).\nContains: amount, amountInUsd, txSignature, from, ts."
},
"tokenTransferOut": {
"description": "Most recent token transfer-out for this holder on this token (GMGN: token_transfer_out).\nContains: amount, amountInUsd, txSignature, to, ts."
},
"totalBuyCount": {
"description": "All-time total buy trade count",
"type": "integer",
"format": "int64"
},
"totalCostUsd": {
"description": "All-time accumulated cost basis in USD (total_cost_all from pnl-sync)",
"type": "string"
},
"totalProfit": {
"description": "Total PnL in USD (realized + unrealized)",
"type": "string"
},
"totalSellCount": {
"description": "All-time total sell trade count",
"type": "integer",
"format": "int64"
},
"transferInAmount7d": {
"description": "Inbound transfer volume in native token over last 7 days",
"type": "string"
},
"transferInCount": {
"description": "Number of token transfer-in events (GMGN: transfer_in_count)",
"type": "integer",
"format": "int64"
},
"transferOutAmount7d": {
"description": "Outbound transfer volume in native token over last 7 days",
"type": "string"
},
"transferOutCount": {
"description": "Number of token transfer-out events (GMGN: transfer_out_count)",
"type": "integer",
"format": "int64"
},
"unrealizedPnlRatio": {
"description": "Unrealized PnL / total_cost ratio (GMGN: unrealized_pnl)",
"type": "string"
},
"unrealizedProfit": {
"description": "Unrealized PnL in USD (current position)",
"type": "string"
},
"walletAddress": {
"description": "ENTITY.TOKEN_HOLDER.WALLET_ADDRESS",
"examples": [
"0x1234567890abcdef"
],
"type": "string"
},
"walletTagV2": {
"description": "Global rank tag on this token when sorted by balance (e.g. \"TOP1\", \"TOP2\").\nOnly present on the first page of a balance-sorted query (no cursor).",
"type": "string"
},
"winCount": {
"description": "Number of winning trades (PnL > 0)",
"type": "integer",
"format": "int64"
}
}
}Fields§
§account_address: Option<String>Solana token account address (ATA) for this holder position.
Distinct from walletAddress (the owner). Matches GMGN accountAddress.
accu_amount: Option<String>Traceable cumulative DEX buy quantity — buy-side only (GMGN: accu_amount)
accu_cost: Option<String>Traceable position accumulated cost, USD (GMGN: accu_cost)
addr_type: Option<i64>Address type from dexes_dwd.address_labels (1=CEX, 2=MM, 3=VC, 4=KOL …). Matches GMGN addr_type.
address_label: Option<String>Specific address label (e.g. “Binance Hot Wallet 1”). Matches GMGN name.
amount: StringENTITY.TOKEN_HOLDER.AMOUNT
amount_in_native: Option<String>Holder’s token position value denominated in the chain’s native coin (SOL/BNB/ETH).
Computed as price_in_native × amount using real-time Redis price;
falls back to OpenSearch post_balance_in_native snapshot when price is unavailable.
amount_in_usd: StringENTITY.TOKEN_HOLDER.AMOUNT_IN_USD
avg_buy_price_usd: Option<String>Average buy price in USD per token (all-time)
avg_cost_usd: Option<String>Average cost per token in USD (current position cost basis)
avg_sell_price_usd: Option<String>Average sell price in USD per token (all-time)
buy_amount_cur: Option<String>Cumulative token quantity bought, all-time (GMGN: buy_amount_cur / history_bought_amount)
buy_volume_native: Option<String>All-time total buy volume in native token
buy_volume_usd: Option<String>All-time total buy volume in USD
created_at: Option<i64>Unix timestamp (seconds) when this wallet first appeared on-chain (GMGN: created_at).
end_holding_at: Option<i64>Timestamp when holder fully closed position (ms since epoch)
exchange: Option<String>Entity/exchange name (e.g. “Binance”). Matches GMGN exchange.
first_buy_time: Option<i64>Timestamp of first token purchase (ms since epoch)
history_bought_cost: Option<String>Total DEX buy cost including fees, USD (GMGN: history_bought_cost)
history_bought_fee: Option<String>Total DEX buy fees, USD (GMGN: history_bought_fee)
history_sold_fee: Option<String>Total DEX sell fees, USD (GMGN: history_sold_fee)
history_sold_income: Option<String>Total DEX sell income, USD (GMGN: history_sold_income)
history_transfer_in_amount: Option<String>Cumulative transfer-in token qty (GMGN: history_transfer_in_amount)
history_transfer_in_cost: Option<String>Transfer-in USD cost basis (GMGN: history_transfer_in_cost)
history_transfer_out_amount: Option<String>Cumulative transfer-out token qty (GMGN: history_transfer_out_amount)
history_transfer_out_fee: Option<String>Total transfer-out fee in USD all-time (GMGN: historyTransferOutFee).
history_transfer_out_income: Option<String>Transfer-out USD income (GMGN: history_transfer_out_income)
is_closed: Option<bool>Whether the token position is fully closed (balance = 0)
is_new: Option<bool>Whether the wallet is newly created (GMGN: is_new).
is_transfer_in: Option<bool>Position acquired purely via transfers, no DEX buy (GMGN: transfer_in)
last_active_at: Option<i64>Last active timestamp (ms since epoch)
last_block: Option<i64>Last processed block height for this holder position (GMGN: last_block).
loss_count: Option<i64>Number of losing trades (PnL < 0)
Per-token position/behaviour tags derived at query time. Possible values: “top_holder” (rank ≤ 10, first page only), “whale” (holding > $10,000 USD), “diamond_hands” (held > 30 days).
native_balance: Option<String>Native chain token balance in lamports (SOL) or wei (EVM), as decimal string. Fetched from RPC with a 10-second Redis cache.
netflow_amount: Option<String>Net token quantity flow: buys − sells (GMGN: netflow_amount)
netflow_amount_usd: Option<String>Net USD flow: buy_usd − sell_usd (from OS netflow_usd)
netflow_usd: Option<String>Net USD inflow (buy_volume_usd − sell_volume_usd); positive = net buyer
percentage: StringENTITY.TOKEN_HOLDER.PERCENTAGE
position_cost_usd: Option<String>Current open position cost in USD
realized_pnl_ratio: Option<String>Realized PnL / total_cost ratio (GMGN: realized_pnl)
realized_profit: Option<String>Realized PnL in USD (all-time)
roi: Option<String>Return on investment = total_pnl / total_cost_all (e.g. 0.25 = 25%)
sell_amount_cur: Option<String>Cumulative token quantity sold, all-time (GMGN: sell_amount_cur / history_sold_amount)
sell_amount_percentage: Option<String>Sell quantity / buy quantity, capped 0–1 (GMGN: sell_amount_percentage)
sell_volume_native: Option<String>All-time total sell volume in native token
sell_volume_usd: Option<String>All-time total sell volume in USD
start_holding_at: Option<i64>Timestamp when holder first acquired the token (ms since epoch)
Trader classification tags (e.g. “kol”, “smart”, “sniper”)
token_transfer_in: Option<Value>Most recent token transfer-in for this holder on this token (GMGN: token_transfer_in). Contains: amount, amountInUsd, txSignature, from, ts.
token_transfer_out: Option<Value>Most recent token transfer-out for this holder on this token (GMGN: token_transfer_out). Contains: amount, amountInUsd, txSignature, to, ts.
total_buy_count: Option<i64>All-time total buy trade count
total_cost_usd: Option<String>All-time accumulated cost basis in USD (total_cost_all from pnl-sync)
total_profit: Option<String>Total PnL in USD (realized + unrealized)
total_sell_count: Option<i64>All-time total sell trade count
transfer_in_amount7d: Option<String>Inbound transfer volume in native token over last 7 days
transfer_in_count: Option<i64>Number of token transfer-in events (GMGN: transfer_in_count)
transfer_out_amount7d: Option<String>Outbound transfer volume in native token over last 7 days
transfer_out_count: Option<i64>Number of token transfer-out events (GMGN: transfer_out_count)
unrealized_pnl_ratio: Option<String>Unrealized PnL / total_cost ratio (GMGN: unrealized_pnl)
unrealized_profit: Option<String>Unrealized PnL in USD (current position)
wallet_address: StringENTITY.TOKEN_HOLDER.WALLET_ADDRESS
wallet_tag_v2: Option<String>Global rank tag on this token when sorted by balance (e.g. “TOP1”, “TOP2”). Only present on the first page of a balance-sorted query (no cursor).
win_count: Option<i64>Number of winning trades (PnL > 0)
Implementations§
Source§impl TokenHolder
impl TokenHolder
pub fn builder() -> TokenHolder
Trait Implementations§
Source§impl Clone for TokenHolder
impl Clone for TokenHolder
Source§fn clone(&self) -> TokenHolder
fn clone(&self) -> TokenHolder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more