> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cabalspy.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Latest

> The most recent transactions of tracked wallets on a chain and wallet type, newest first, each with trader profile and position after the trade.

The live trade feed. Returns the most recent transactions of tracked wallets for a chain and wallet type, newest first. Each entry carries the token, the trade value, the trader profile and the holder position right after the trade.

Use it to power a global live tape across all tracked wallets, or narrow it to a single token with the mint filter to get that token feed.

<Tip>
  Optionally filter by a single token with mint. When you pass mint, the response also includes a token block. This is a live event feed, so entries do not carry unrealized PnL, but each includes holdings\_after.
</Tip>

## Query Parameters

<ParamField query="blockchain" type="string" required>
  Chain. One of solana, bnb, base, eth.
</ParamField>

<ParamField query="type" type="string" required>
  Wallet category kol, smart or whale. Availability per chain. Solana has kol, smart, whale. BNB and Base have kol, smart. ETH has kol.
</ParamField>

<ParamField query="mint" type="string">
  Optional token mint to filter the feed to a single token. Adds a token block.
</ParamField>

<ParamField query="limit" type="integer">
  Maximum number of transactions to return.
</ParamField>

<ParamField query="api_key" type="string" required>
  Your API key. Alternatively pass it as an Authorization Bearer header.
</ParamField>

## Usage Example

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.cabalspy.xyz/v1/transactions/latest?blockchain=solana&type=kol&limit=50&api_key=YOUR_KEY"
  ```

  ```python Python theme={null}
  import requests

  params = {"blockchain": "solana", "type": "kol", "limit": 50, "api_key": "YOUR_KEY"}
  r = requests.get("https://api.cabalspy.xyz/v1/transactions/latest", params=params)

  for tx in r.json()["data"]["transactions"]:
      print(tx["created_at"], tx["transaction_type"], tx["profile"]["name"], tx["token_name"], tx["value"])
  ```

  ```javascript JavaScript theme={null}
  const p = new URLSearchParams({
    blockchain: "solana", type: "kol", limit: "50", api_key: "YOUR_KEY",
  });
  const res = await fetch(`https://api.cabalspy.xyz/v1/transactions/latest?${p}`);
  const { data } = await res.json();
  data.transactions.forEach(tx => console.log(tx.created_at, tx.transaction_type, tx.value));
  ```
</CodeGroup>

## Response

<ResponseField name="success" type="boolean">
  True on success.
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="data">
    <ResponseField name="blockchain" type="string">
      Requested chain.
    </ResponseField>

    <ResponseField name="type" type="string">
      Requested wallet type.
    </ResponseField>

    <ResponseField name="mode" type="string">
      latest.
    </ResponseField>

    <ResponseField name="currency" type="string">
      Native currency.
    </ResponseField>

    <ResponseField name="count" type="integer">
      Number of transactions returned.
    </ResponseField>

    <ResponseField name="token" type="object">
      Only present when mint is passed. Token block with mint, token\_name, blockchain, currency, token\_supply, token\_decimals.
    </ResponseField>

    <ResponseField name="transactions" type="array">
      <Expandable title="transaction, newest first">
        <ResponseField name="tx_signature" type="string">
          Transaction signature.
        </ResponseField>

        <ResponseField name="mint" type="string">
          Token mint.
        </ResponseField>

        <ResponseField name="token_name" type="string">
          Token name or symbol.
        </ResponseField>

        <ResponseField name="token_supply" type="number">
          Total supply.
        </ResponseField>

        <ResponseField name="token_decimals" type="integer">
          Token decimals.
        </ResponseField>

        <ResponseField name="transaction_type" type="string">
          buy or sell.
        </ResponseField>

        <ResponseField name="value" type="number">
          Trade value (native).
        </ResponseField>

        <ResponseField name="value_usd" type="number">
          Trade value in USD.
        </ResponseField>

        <ResponseField name="currency" type="string">
          Native currency.
        </ResponseField>

        <ResponseField name="token_amount" type="number">
          Number of tokens in the trade.
        </ResponseField>

        <ResponseField name="price_per_token" type="number">
          Price per token (native).
        </ResponseField>

        <ResponseField name="price_per_token_usd" type="number">
          Price per token in USD.
        </ResponseField>

        <ResponseField name="created_at" type="string">
          Timestamp of the trade.
        </ResponseField>

        <ResponseField name="profile" type="object">
          Wallet profile of the trader.
        </ResponseField>

        <ResponseField name="holdings_after" type="object">
          Holder position after this trade (token\_amount, token\_amount\_peak, supply\_pct, supply\_pct\_peak, bag\_pct, still\_holding).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="pagination" type="object">
      Standard pagination object (limit, total, has\_more, next\_cursor).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "blockchain": "solana",
      "type": "kol",
      "mode": "latest",
      "currency": "SOL",
      "count": 1,
      "transactions": [
        {
          "tx_signature": "5xr8abc...",
          "mint": "3Pkrq4MmLvDXyn1fa3sz5MekKRkZkc1iLDcz5AzWpump",
          "token_name": "invisibull",
          "token_supply": 1000000000,
          "token_decimals": 6,
          "transaction_type": "buy",
          "value": 1.66,
          "value_usd": 137.44,
          "currency": "SOL",
          "token_amount": 22113972.03,
          "price_per_token": 7.5e-8,
          "price_per_token_usd": 6.2e-6,
          "created_at": "2026-07-04 16:25:34",
          "profile": {
            "name": "Maze",
            "image_url": "https://cabalspy.xyz/images/7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW.png",
            "twitter": "https://x.com/MazeCCC",
            "telegram": "",
            "blockchain": "solana",
            "currency": "SOL",
            "type": "kol"
          },
          "holdings_after": {
            "token_amount": 22113972.03,
            "token_amount_peak": 22113972.03,
            "supply_pct": 2.211397,
            "supply_pct_peak": 2.211397,
            "bag_pct": 100.0,
            "still_holding": true
          }
        }
      ]
    },
    "pagination": {
      "limit": 50,
      "total": 1,
      "has_more": false,
      "next_cursor": null
    },
    "meta": {
      "request_id": "req_5162c7cf7f87",
      "cached": false,
      "cache_age_seconds": 0,
      "version": "1.0.0",
      "timestamp": "2026-07-06T11:01:57Z"
    }
  }
  ```
</ResponseExample>

## Errors

| Status | Code               | Meaning                                |
| ------ | ------------------ | -------------------------------------- |
| 400    | invalid\_parameter | blockchain or type missing or invalid. |
| 401    | unauthorized       | API key missing.                       |
| 403    | forbidden          | API key invalid or credits exhausted.  |
| 429    | rate\_limited      | Rate limit exceeded.                   |
