> ## 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 Chain, Base, Ethereum and Robinhood Chain 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, rh (Robinhood Chain).
</ParamField>

<ParamField query="type" type="string" required>
  Wallet category kol, smart or whale. Availability per chain. Solana has kol, smart, whale. BNB, Base and Robinhood Chain (rh) 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. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.