Skip to main content

Tokens API

Tracked-wallet activity around tokens: every trade on a given mint, a per-wallet roll-up for a mint, and a discovery view of tokens many wallets are holding at once.

All endpoints require your API key (Authorization: Bearer <API_KEY>) and cost heavier credits (these run wider scans).


GET /tokens/{mint}/swaps

Every tracked-wallet swap on a single mint, newest first.

Query parameters

NameTypeDefaultDescription
aggregateboolfalseIf true, return one roll-up row per wallet instead of raw swaps.
tracked_onlybooltrueRaw mode only: restrict to tracked wallets.

Raw response (aggregate=false)

{
"mint": "FSA7iqBeeENna2LUmZyqCYce7op2jBc9ztXLKdM6bonk",
"count": 18,
"items": [
{
"block_time": 1781450361,
"wallet": "W72",
"side": "sell",
"base_mint": "FSA7iqBeeENna2LUmZyqCYce7op2jBc9ztXLKdM6bonk",
"base_symbol": null,
"base_amount": "6280118271393",
"base_decimals": 6,
"quote_mint": "So11111111111111111111111111111111111111112",
"quote_amount": "9311208742",
"program": "FLASHX8DrLbgeR8FcfNV1F5krxYcYMUdBkrP1EPBtxB9",
"confidence": "delta_only",
"quote_mismatch": false
}
]
}
FieldMeaning
block_timeTrade time (display-salted by a few seconds).
walletOpaque alias.
sidebuy or sell.
base_amountRaw token amount (divide by 10 ^ base_decimals). Display-salted.
quote_mintThe quote coin (WSOL / USDC / USDT).
quote_amountRaw quote amount. For WSOL it's lamports (/ 1e9 for SOL). Salted.
confidencehigh or delta_only (how the swap was derived).
quote_mismatchtrue if no clean opposing quote leg was found.

Aggregated response (aggregate=true)

One row per wallet that traded the mint, with the position facts:

{
"mint": "FSA7iqBeeENna2LUmZyqCYce7op2jBc9ztXLKdM6bonk",
"tracked_wallets": 4,
"wallets": [
{
"wallet": "W221",
"alias": "W221",
"buys": 2,
"sells": 2,
"base_bought": "23606614317783",
"base_sold": "21460559039733",
"base_net": "2146055278050",
"sol_in": 8.69,
"sol_out": 5.63,
"pct_held": 0.0909,
"first_buy_time": 1781448342,
"last_trade_time": 1781448742,
"entry_mcap": 51230.0
}
]
}
FieldMeaning
base_bought/soldRaw tokens bought / sold.
base_netbase_bought − base_sold (what's still held).
sol_in / outSOL spent buying / received selling.
pct_heldbase_net / base_bought — fraction of the buy still held.
entry_mcapMarket cap (USD) snapshotted at the wallet's first buy.

GET /tokens/held

Tokens currently held by at least N tracked wallets — a quick way to see what smart money is collectively sitting on. 25 per page, ordered by how many wallets co-hold each token (highest first).

"Held" uses the same definition as wallet holdings: net buys − sells > 0.

Query parameters

NameTypeDefaultDescription
min_walletsint2Held by at least this many wallets (≥).
pageint1Page number (≥1).

Response

{
"min_wallets": 2,
"page": 1,
"page_size": 25,
"total": 2,
"has_more": false,
"items": [
{
"token": { "address": "FSA7iqBeeENna2LUmZyqCYce7op2jBc9ztXLKdM6bonk", "decimals": 6 },
"holders": { "wallet_count": 4, "wallets": ["W72", "W99", "W221", "W225"] },
"aggregate": { "tokens_held": 18452310.42, "sol_invested": 21.7 }
}
]
}
FieldMeaning
holders.wallet_countHow many tracked wallets currently hold the token.
holders.walletsTheir aliases.
aggregate.tokens_heldTotal still held across those wallets (display-salted).
aggregate.sol_investedTotal SOL those wallets spent buying it (display-salted).