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

# KOL Bundle

> Detect coordinated bundles where a KOL and side wallets buy a token together, with a confidence score and proof. Endpoints, chains, first steps.

Detect bundles, the coordinated groups where a KOL and a set of side wallets buy a token together. It surfaces hidden coordination that is almost impossible to spot by hand, with a confidence score and the proof behind each detection.

## What it shows

The KOL at the center of a bundle, the side wallets that entered alongside it, and how confident the detection is. For anyone building alpha tools, this turns a wall of anonymous coordinated buys into a clear, labeled event you can alert on or display.

## Blockchains

Solana only.

## Endpoints

Get bundles live as they are detected, or as a snapshot over REST.

<CardGroup cols={2}>
  <Card title="WSS bundle stream" href="https://docs.cabalspy.xyz/bundle-1">
    Live bundle detections, each with the KOL, side wallets, confidence and proof.
  </Card>

  <Card title="Bundle REST API" href="https://docs.cabalspy.xyz/bundle">
    A snapshot of the current bundles for a token.
  </Card>
</CardGroup>

## First steps

<Steps>
  <Step title="Get an API key">
    Register at [apidashboard.cabalspy.xyz](https://apidashboard.cabalspy.xyz) and create a key.
  </Step>

  <Step title="Pick a Solana token">
    You need the token mint. Bundle detection is Solana only.
  </Step>

  <Step title="Subscribe or call">
    Open the bundle stream for live detections, or call the bundle REST API for a snapshot.
  </Step>
</Steps>

```javascript Subscribe theme={null}
const ws = new WebSocket("wss://stream.cabalspy.xyz?apiKey=YOUR_KEY");
ws.onopen = () => ws.send(JSON.stringify({
  op: "subscribe", stream: "bundle", token: "YOUR_MINT", mode: "full",
}));
```

## Build it

<Card title="Cookbook, Holder Table (Advanced)" href="https://docs.cabalspy.xyz/realtime-holder-table">
  Bundle detection is merged into the live holder table here.
</Card>
