pub struct PageResponseTokenTopTrader {
pub data: Vec<PageResponseTokenTopTraderDataItem>,
pub end_cursor: Option<String>,
pub has_next: Option<bool>,
pub has_prev: Option<bool>,
pub start_cursor: Option<String>,
}Expand description
Generic pagination response
JSON schema
{
"description": "Generic pagination response",
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"description": "Page data",
"type": "array",
"items": {
"description": "Historical trader entry for a token (includes cleared positions)",
"type": "object",
"required": [
"amount",
"amountInUsd",
"walletAddress"
],
"properties": {
"accountAddress": {
"description": "Solana token account address (ATA) for this trader position.\nDistinct from walletAddress (the owner). Matches GMGN `accountAddress`.",
"type": "string"
},
"accuAmount": {
"description": "Traceable cumulative DEX buy quantity — buy-side only accumulation (GMGN: accu_amount)",
"type": "string"
},
"accuCost": {
"description": "Traceable cumulative position cost (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": "Current token balance (0 if fully closed)",
"examples": [
"0"
],
"type": "string"
},
"amountInUsd": {
"description": "Current token value in USD",
"examples": [
"0"
],
"type": "string"
},
"averageBuyPriceInUsd": {
"description": "Average buy price in USD per token (from balance cost snapshot)",
"type": "string"
},
"averageSellPriceInUsd": {
"description": "Average sell price in USD per token (from balance cost snapshot)",
"type": "string"
},
"avgCost": {
"description": "Average cost per token in USD (balance_cost_avg_in_usd; GMGN: avg_cost)",
"type": "string"
},
"buyAmountCur": {
"description": "Cumulative token quantity bought all-time (GMGN: buy_amount_cur)",
"type": "string"
},
"cost": {
"description": "Current open position cost in USD (GMGN: cost / cost_cur)",
"type": "string"
},
"endHoldingAt": {
"description": "Timestamp when position fully closed (ms since epoch)",
"type": "integer",
"format": "int64"
},
"exchange": {
"description": "Entity/exchange name (e.g. \"Binance\"). Matches GMGN `exchange`.",
"type": "string"
},
"historyBoughtCost": {
"description": "DEX buy total cost including fees (GMGN: history_bought_cost)",
"type": "string"
},
"historySoldIncome": {
"description": "DEX sell total income (GMGN: history_sold_income)",
"type": "string"
},
"historyTransferInAmount": {
"description": "Cumulative transfer-in token quantity (GMGN: history_transfer_in_amount)",
"type": "string"
},
"historyTransferInCost": {
"description": "Cumulative transfer-in USD cost (GMGN: history_transfer_in_cost)",
"type": "string"
},
"historyTransferOutAmount": {
"description": "Cumulative transfer-out token quantity (GMGN: history_transfer_out_amount)",
"type": "string"
},
"historyTransferOutFee": {
"description": "Total transfer-out fee in USD all-time (GMGN: historyTransferOutFee).",
"type": "string"
},
"historyTransferOutIncome": {
"description": "Cumulative transfer-out USD income (GMGN: history_transfer_out_income)",
"type": "string"
},
"isClosed": {
"description": "Whether position is fully closed",
"type": "boolean"
},
"lastActiveAt": {
"description": "Last active timestamp (ms since epoch)",
"type": "integer",
"format": "int64"
},
"lossCount": {
"description": "Number of losing trades all-time",
"type": "integer",
"format": "int64"
},
"netflowAmount": {
"description": "Net token quantity inflow = buy_amount_cur − sell_amount_cur (GMGN: netflow_amount)",
"type": "string"
},
"netflowUsd": {
"description": "Net USD inflow (buy_volume_usd − sell_volume_usd)",
"type": "string"
},
"realizedPnl": {
"description": "Realized PnL rate = realized_pnl / total_cost (GMGN: realized_pnl)",
"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)",
"type": "string"
},
"sellAmountPercentage": {
"description": "sell_qty / buy_qty ratio 0-1 (GMGN: sell_amount_percentage)",
"type": "string"
},
"startHoldingAt": {
"description": "Timestamp when first bought (ms since epoch)",
"type": "integer",
"format": "int64"
},
"tags": {
"description": "Wallet classification tags (e.g. \"kol\", \"smart\", \"sniper\")",
"type": "array",
"items": {
"type": "string"
}
},
"totalBuyAmountInUsd": {
"description": "Total buy volume in USD (all-time)",
"type": "string"
},
"totalBuyCount": {
"description": "Total buy trade count (all-time)",
"type": "integer",
"format": "int64"
},
"totalCostInUsd": {
"description": "All-time accumulated cost basis in USD",
"type": "string"
},
"totalPnlInUsd": {
"description": "Total PnL in USD (realized + unrealized)",
"type": "string"
},
"totalRealizedPnlInUsd": {
"description": "Realized PnL in USD (all-time)",
"type": "string"
},
"totalSellAmountInUsd": {
"description": "Total sell volume in USD (all-time)",
"type": "string"
},
"totalSellCount": {
"description": "Total sell trade count (all-time)",
"type": "integer",
"format": "int64"
},
"transferIn": {
"description": "Whether position was acquired mainly via transfer (GMGN: transfer_in)",
"type": "boolean"
},
"transferInCount": {
"description": "All-time transfer-in event count (GMGN: transfer_in_count)",
"type": "integer",
"format": "int64"
},
"transferOutCount": {
"description": "All-time transfer-out event count (GMGN: transfer_out_count)",
"type": "integer",
"format": "int64"
},
"unrealizedPnl": {
"description": "Unrealized PnL rate = unrealized_pnl / total_cost (GMGN: unrealized_pnl)",
"type": "string"
},
"unrealizedPnlInUsd": {
"description": "Unrealized PnL in USD (all-time window)",
"type": "string"
},
"walletAddress": {
"description": "Wallet address",
"examples": [
"0x1234567890abcdef"
],
"type": "string"
},
"winCount": {
"description": "Number of winning trades (realized PnL > 0) all-time",
"type": "integer",
"format": "int64"
},
"winRate": {
"description": "Win rate = win_count / (win_count + loss_count) (e.g. 0.6 = 60%)",
"type": "string"
}
}
}
},
"endCursor": {
"description": "Cursor for the end of current page",
"examples": [
"eyJpZCI6ImVuZCJ9"
],
"type": "string"
},
"hasNext": {
"description": "Whether there is a next page",
"examples": [
false
],
"type": "boolean"
},
"hasPrev": {
"description": "Whether there is a previous page",
"examples": [
false
],
"type": "boolean"
},
"startCursor": {
"description": "Cursor for the start of current page",
"examples": [
"eyJpZCI6InN0YXJ0In0="
],
"type": "string"
}
}
}Fields§
§data: Vec<PageResponseTokenTopTraderDataItem>Page data
end_cursor: Option<String>Cursor for the end of current page
has_next: Option<bool>Whether there is a next page
has_prev: Option<bool>Whether there is a previous page
start_cursor: Option<String>Cursor for the start of current page
Implementations§
Source§impl PageResponseTokenTopTrader
impl PageResponseTokenTopTrader
pub fn builder() -> PageResponseTokenTopTrader
Trait Implementations§
Source§impl Clone for PageResponseTokenTopTrader
impl Clone for PageResponseTokenTopTrader
Source§fn clone(&self) -> PageResponseTokenTopTrader
fn clone(&self) -> PageResponseTokenTopTrader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PageResponseTokenTopTrader
impl Debug for PageResponseTokenTopTrader
Source§impl<'de> Deserialize<'de> for PageResponseTokenTopTrader
impl<'de> Deserialize<'de> for PageResponseTokenTopTrader
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&PageResponseTokenTopTrader> for PageResponseTokenTopTrader
impl From<&PageResponseTokenTopTrader> for PageResponseTokenTopTrader
Source§fn from(value: &PageResponseTokenTopTrader) -> Self
fn from(value: &PageResponseTokenTopTrader) -> Self
Converts to this type from the input type.
Source§impl From<PageResponseTokenTopTrader> for PageResponseTokenTopTrader
impl From<PageResponseTokenTopTrader> for PageResponseTokenTopTrader
Source§fn from(value: PageResponseTokenTopTrader) -> Self
fn from(value: PageResponseTokenTopTrader) -> Self
Converts to this type from the input type.
Source§impl TryFrom<PageResponseTokenTopTrader> for PageResponseTokenTopTrader
impl TryFrom<PageResponseTokenTopTrader> for PageResponseTokenTopTrader
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
Source§fn try_from(value: PageResponseTokenTopTrader) -> Result<Self, ConversionError>
fn try_from(value: PageResponseTokenTopTrader) -> Result<Self, ConversionError>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for PageResponseTokenTopTrader
impl RefUnwindSafe for PageResponseTokenTopTrader
impl Send for PageResponseTokenTopTrader
impl Sync for PageResponseTokenTopTrader
impl Unpin for PageResponseTokenTopTrader
impl UnsafeUnpin for PageResponseTokenTopTrader
impl UnwindSafe for PageResponseTokenTopTrader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more