> ## 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.

# List

> Fetch all tracked KOL, Smart Money and Whale wallets on Solana, BNB, Base and ETH with name, avatar, socials and copytrade link.

Return every wallet CabalSpy tracks for a given chain and wallet type. Each entry carries the public profile (display name, avatar, Twitter/Telegram and the copytrade link) so you can label wallets across your terminal.

This is the starting point of most integrations: fetch the list once, cache the profiles, then resolve those addresses against the token and transaction endpoints.

<Tip>
  Without a limit you get all wallets in a single response. For paged loading, set limit and walk through pages using the next\_cursor from the previous response. Addresses are sorted alphabetically, so pagination stays deterministic.
</Tip>

## Query Parameters

<ParamField query="blockchain" type="string" required>
  Chain of the wallets. 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="limit" type="integer">
  Maximum number of wallets per page. Omit to return all wallets in one response.
</ParamField>

<ParamField query="cursor" type="string">
  Cursor for the next page, the pagination.next\_cursor value from the previous response. Empty means from the start.
</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/wallets?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/wallets", params=params)

  for w in r.json()["data"]["wallets"]:
      print(w["name"] or w["wallet_address"], "->", w["twitter"])
  ```

  ```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/wallets?${p}`);
  const { data } = await res.json();
  data.wallets.forEach(w => console.log(w.name || w.wallet_address, "->", w.twitter));
  ```
</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="currency" type="string">
      Native currency of the chain (SOL, BNB, ETH).
    </ResponseField>

    <ResponseField name="wallets" type="array">
      <Expandable title="wallet">
        <ResponseField name="wallet_address" type="string">
          Wallet address.
        </ResponseField>

        <ResponseField name="name" type="string">
          Display name (may be empty).
        </ResponseField>

        <ResponseField name="image_url" type="string">
          Avatar URL.
        </ResponseField>

        <ResponseField name="twitter" type="string">
          Twitter or X link.
        </ResponseField>

        <ResponseField name="telegram" type="string">
          Telegram link.
        </ResponseField>

        <ResponseField name="copytrade_link" type="string">
          Copytrade link.
        </ResponseField>

        <ResponseField name="blockchain" type="string">
          Chain of the wallet.
        </ResponseField>

        <ResponseField name="type" type="string">
          Wallet type.
        </ResponseField>

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

    <ResponseField name="pagination" type="object">
      <Expandable title="pagination">
        <ResponseField name="total" type="integer">
          Total number of wallets.
        </ResponseField>

        <ResponseField name="limit" type="integer">
          Requested limit (null means all).
        </ResponseField>

        <ResponseField name="next_cursor" type="string">
          Cursor for the next page (null means end).
        </ResponseField>

        <ResponseField name="has_more" type="boolean">
          Whether more pages follow.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "blockchain": "solana",
      "type": "kol",
      "currency": "SOL",
      "pagination": {
        "total": 342,
        "limit": 50,
        "next_cursor": "8CvFWU1Hfmy7HkS7eWG2x8EMtQxAzCr7KcukKwspGFwB",
        "has_more": true
      },
      "wallets": [
        {
          "wallet_address": "7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW",
          "name": "Maze",
          "image_url": "https://cabalspy.xyz/images/7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW.png",
          "twitter": "https://x.com/MazeCCC",
          "telegram": "",
          "copytrade_link": "https://t.me/WizGandalfBot?start=r-U7TSHAWUWN-7j7AA",
          "blockchain": "solana",
          "type": "kol",
          "currency": "SOL"
        }
      ]
    },
    "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 the combination does not exist (for example eth with whale). |
| 401    | unauthorized       | API key missing.                                                                            |
| 403    | forbidden          | API key invalid or credits exhausted.                                                       |
| 429    | rate\_limited      | Rate limit exceeded.                                                                        |
