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

# Consultar primeros compradores y bundlers en Solana

> Consulta primeros compradores, posiciones y PnL de tokens Solana, además de actividad de snipers, bundlers e insiders.

Usa los primeros compradores para revisar el lanzamiento y los datos de bundlers para examinar sus posiciones. Los tiempos y las etiquetas ayudan a filtrar, pero no demuestran intención.

## First Buyers

The [first-buyers endpoint](/es/data-api/pnl-v2/token/get-token-first-buyers) returns buyers in chronological order, with positions, PnL, and available identity labels.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://data.solanatracker.io/v2/pnl/tokens/{token}/first-buyers?limit=50" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const token = "38PgzpJYu2HkiYvV8qePFakB8tuobPdGm2FFEn7Dpump";

  const res = await fetch(
    `https://data.solanatracker.io/v2/pnl/tokens/${token}/first-buyers?limit=50`,
    { headers: { "x-api-key": "YOUR_API_KEY" } }
  );
  const { traders } = await res.json();

  traders.forEach((t, i) => {
    console.log(`#${i + 1} ${t.wallet} — first trade ${new Date(t.timing.firstTrade).toISOString()}`);
    console.log(`Token PnL: $${t.pnl.token.total.toFixed(2)}, balance: ${t.position.balance}`);
  });
  ```
</CodeGroup>

## Find Snipers Who Already Sold

Compare current balance with realized PnL to find first buyers who have already closed a position.

```javascript theme={null}
const token = "38PgzpJYu2HkiYvV8qePFakB8tuobPdGm2FFEn7Dpump";

const res = await fetch(
  `https://data.solanatracker.io/v2/pnl/tokens/${token}/first-buyers?limit=50`,
  { headers: { "x-api-key": "YOUR_API_KEY" } }
);
const { traders } = await res.json();

// Find snipers who already sold
const sold = traders.filter(t => t.position.balance === 0 && t.pnl.token.realized > 0);

console.log(`${sold.length} early buyers already sold at a profit`);
sold.forEach(t => {
  const holdMins = (t.timing.lastTrade - t.timing.firstTrade) / 60000;
  console.log(`  ${t.wallet}: +$${t.pnl.token.realized.toFixed(2)}, held ${holdMins.toFixed(0)} minutes`);
});
```

### What to Look For

| Signal | What it means |
| - | - |
| Balance = 0, profit > 0 | Early buyer who bought fast and already sold |
| Hold time \< 5 minutes | Likely automated or MEV-style behavior |
| Multiple first-buyer appearances | Same wallet sniping many launches |
| Large buy size relative to pool | Whale entry that moved the price |

## Bundler Detection

The [bundlers endpoint](/es/data-api/tokens/get-token-bundlers) identifies wallets involved in bundled transactions on a token.

```bash theme={null}
curl "https://data.solanatracker.io/tokens/{token}/bundlers" \
  -H "x-api-key: YOUR_API_KEY"
```

Bundle labels describe detected transaction activity. Inspect the associated balances and trades before interpreting that activity.

* Launch sniping (buy in the same block as liquidity add)
* Sandwich attacks
* Coordinated wallet clusters

## Chart-Based Detection

Use the chart endpoints to compare how detected wallet groups changed their holdings over time.

### Sniper Activity Chart

The [snipers chart](/es/data-api/chart/get-snipers-chart-data) shows sniper activity over time for a token.

```bash theme={null}
curl "https://data.solanatracker.io/snipers/chart/{token}" \
  -H "x-api-key: YOUR_API_KEY"
```

### Bundler Activity Chart

The [bundlers chart](/es/data-api/chart/get-bundlers-chart-data) tracks bundled transaction activity over time.

```bash theme={null}
curl "https://data.solanatracker.io/bundlers/chart/{token}" \
  -H "x-api-key: YOUR_API_KEY"
```

### Insider Activity Chart

The [insiders chart](/es/data-api/chart/get-insiders-chart-data) shows insider wallet activity patterns.

```bash theme={null}
curl "https://data.solanatracker.io/insiders/chart/{token}" \
  -H "x-api-key: YOUR_API_KEY"
```

## Example: Full Sniper Report

Build a quick sniper report for any token:

```javascript theme={null}
const token = "38PgzpJYu2HkiYvV8qePFakB8tuobPdGm2FFEn7Dpump";
const headers = { "x-api-key": "YOUR_API_KEY" };

// 1. Get first buyers with PnL data
const { traders } = await fetch(
  `https://data.solanatracker.io/v2/pnl/tokens/${token}/first-buyers?limit=50`,
  { headers }
).then(r => r.json());

// 2. Get bundler data
const bundlers = await fetch(
  `https://data.solanatracker.io/tokens/${token}/bundlers`,
  { headers }
).then(r => r.json());

// 3. Analyze
const snipers = traders.filter(t => {
  const holdMins = (t.timing.lastTrade - t.timing.firstTrade) / 60000;
  return holdMins < 10 && t.pnl.token.realized > 0;
});

const bundlerWallets = new Set(bundlers.wallets.map(b => b.wallet));
const sniperBundlers = snipers.filter(s => bundlerWallets.has(s.wallet));

console.log(`First 50 buyers: ${traders.length}`);
console.log(`Quick-flip snipers (< 10 min hold, profitable): ${snipers.length}`);
console.log(`Bundler wallets: ${bundlers.wallets.length}`);
console.log(`Snipers who also bundled: ${sniperBundlers.length}`);
```

<CardGroup cols={2}>
  <Card title="Resumen del token" href="/es/guides/token-research">
    Full token lookup: stats, holders, trades, and events.
  </Card>

  <Card title="Traders del token" href="/es/guides/pnl-v2/token-intelligence">
    All traders on a token with PnL, sorting, and filtering.
  </Card>

  <Card title="Riesgo en vivo" href="/es/guides/datastream-safety">
    Track snipers, bundlers, and insiders in real time via WebSocket.
  </Card>

  <Card title="Lanzamientos de tokens" href="/es/guides/datastream-tokens">
    Spot new tokens before the crowd and filter by graduation status.
  </Card>
</CardGroup>


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