> For the complete documentation index, see [llms.txt](https://cabalspy.gitbook.io/cabalspy-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cabalspy.gitbook.io/cabalspy-docs/token-activity/token-transactions.md).

# Token Transactions

Every on-chain buy and sell that tracked smart money, KOL and whale wallets made for a single token on Solana, BNB Chain, Base and Ethereum — newest first, with each wallet's profile and its balance (incl. all-time peaks) after the trade.

## Track KOL & Smart Money Token Transactions (Buys & Sells)

> Get every on-chain buy and sell that tracked smart money, KOL and whale wallets made for one token on Solana, BNB Chain, Base or Ethereum — newest first. Each transaction carries the wallet \`profile\` and \`holdings\_after\` (the wallet's balance for this token after the trade, including all-time peaks that survive a full sell-off), making it easy to follow smart-money entries and exits and to power copy-trading signals. Mint and token name are returned once in the top-level \`token\` block and are not repeated per transaction.\
> \
> \*\*Data source\*\* — the full transaction history from the database (no 30-day cap) merged with the newest live transactions, deduplicated by signature. Peaks are computed by chronological replay, so a wallet that already sold everything still shows \`token\_amount: 0\` together with a non-zero \`token\_amount\_peak\`. Historical USD values come straight from each transaction; very old transactions without a stored USD value stay \`null\`.\
> \
> \*\*Parameters / settings\*\*\
> \- \`blockchain\` (required) — one of: \`solana\`, \`bnb\`, \`base\`, \`eth\`\
> \- \`mint\` (required) — token mint / contract address\
> \- \`type\` (optional) — \`kol\`, \`smart\`, or \`whale\`; if omitted, all valid\
> &#x20; wallet types for the chain are merged\
> \
> \- \`limit\` (optional, default \`50\`) — maximum number of transactions returned\
> \- \`api\_key\` (optional if the Bearer header is used)<br>

```json
{"openapi":"3.0.3","info":{"title":"CabalSpy API — Token Transactions","version":"1.0.0"},"tags":[{"name":"Token Transactions","description":"Every on-chain buy and sell that tracked smart money, KOL and whale wallets made for a single token on Solana, BNB Chain, Base and Ethereum — newest first, with each wallet's profile and its balance (incl. all-time peaks) after the trade.\n"}],"servers":[{"url":"https://api.cabalspy.xyz"}],"security":[{"bearerAuth":[]},{"apiKeyQuery":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer YOUR_KEY"},"apiKeyQuery":{"type":"apiKey","in":"query","name":"api_key"}},"schemas":{"TokenTransactionsEnvelope":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"token":{"type":"object","description":"Token metadata (mint, name, blockchain, currency, supply, decimals)."},"transactions":{"type":"array","description":"Transactions newest first. Each item has tx_signature, transaction_type (buy/sell), value (native), value_usd (historical, nullable), currency, token_amount, price_per_token, price_per_token_usd, created_at, the wallet profile and holdings_after (balance + all-time peaks).\n","items":{"type":"object"}}}},"meta":{"type":"object"},"pagination":{"type":"object"}}},"ErrorEnvelope":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"docs":{"type":"string"}}}}}}},"paths":{"/v1/tokens/transactions":{"get":{"tags":["Token Transactions"],"summary":"Track KOL & Smart Money Token Transactions (Buys & Sells)","operationId":"getTokenTransactions","description":"Get every on-chain buy and sell that tracked smart money, KOL and whale wallets made for one token on Solana, BNB Chain, Base or Ethereum — newest first. Each transaction carries the wallet `profile` and `holdings_after` (the wallet's balance for this token after the trade, including all-time peaks that survive a full sell-off), making it easy to follow smart-money entries and exits and to power copy-trading signals. Mint and token name are returned once in the top-level `token` block and are not repeated per transaction.\n\n**Data source** — the full transaction history from the database (no 30-day cap) merged with the newest live transactions, deduplicated by signature. Peaks are computed by chronological replay, so a wallet that already sold everything still shows `token_amount: 0` together with a non-zero `token_amount_peak`. Historical USD values come straight from each transaction; very old transactions without a stored USD value stay `null`.\n\n**Parameters / settings**\n- `blockchain` (required) — one of: `solana`, `bnb`, `base`, `eth`\n- `mint` (required) — token mint / contract address\n- `type` (optional) — `kol`, `smart`, or `whale`; if omitted, all valid\n  wallet types for the chain are merged\n\n- `limit` (optional, default `50`) — maximum number of transactions returned\n- `api_key` (optional if the Bearer header is used)\n","parameters":[{"name":"blockchain","in":"query","required":true,"schema":{"type":"string","enum":["solana","bnb","base","eth"]}},{"name":"mint","in":"query","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["kol","smart","whale"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"minimum":1}},{"name":"api_key","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Token found — returns the token block and its transactions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenTransactionsEnvelope"}}}},"400":{"description":"Missing or invalid parameter (e.g. `mint` or `blockchain`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"Invalid or exhausted API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}
```
