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

# Get Top Wallets

Get a paginated list of top wallets on Hyperliquid with cohort labels from HyperTracker. Supports sorting by PnL, equity, leverage, open value, or unrealized PnL. Filterable by cohort. Ideal for: whale tracking, copy trading research, leaderboard analysis.

Catalog action Blockchain Data

Get a paginated list of top wallets on Hyperliquid with cohort labels from HyperTracker. Supports sorting by PnL, equity, leverage, open value, or unrealized PnL. Filterable by cohort. Ideal for: whale tracking, copy trading research, leaderboard analysis.


## At a Glance

| Field | Value |
| --- | --- |
| Action ID | `hypertracker-get-top-wallets` |
| Category | Blockchain Data |
| Connector | Not required |
| Requires gas | No |
| Funds movement | None declared |
| Tags | `hypertracker`, `hyperliquid`, `wallets`, `whale`, `leaderboard`, `read` |

## Payload Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `apiKey` | `string` | No | HyperTracker API key \(falls back to HYPERTRACKER_API_KEY env var\) |
| `sortBy` | `string` | No | Field to sort wallets by. Defaults to perpPnl. |
| `cohort` | `string` | No | Filter by cohort name. Size cohorts: shrimp, fish, dolphin, apex predator, small whale, whale, tidal whale, leviathan. PnL cohorts: money printer, smart money, consistent grinder, humble earner, exit liquidity, semi-rekt, full rekt, giga-rekt. |
| `hasOpenPositions` | `boolean` | No | When true, only return wallets with open positions. |
| `limit` | `number` | No | Number of wallets to return. Default 10, max 50. |
| `offset` | `number` | No | Pagination offset \(number of records to skip\). |

## Result Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `totalCount` | `number` | Yes | Total number of wallets matching the query |
| `wallets` | `array` | Yes | List of top wallets sorted by the requested field |

## Examples

**Workflow node**

```json
{
  "type": "hypertracker-get-top-wallets",
  "payload": {
    "apiKey": "configured-in-b3os",
    "sortBy": "perpPnl",
    "cohort": "example-cohort",
    "hasOpenPositions": true,
    "limit": 1
  },
  "children": []
}
```
  **Test with API**

```bash
curl -X POST "https://api.b3os.org/v1/actions/hypertracker-get-top-wallets/test" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "inputs": {
    "apiKey": "configured-in-b3os",
    "sortBy": "perpPnl",
    "cohort": "example-cohort",
    "hasOpenPositions": true,
    "limit": 1
  }
}'
```

**Use expressions for dynamic values**

Payload fields can use workflow expressions such as `{{$trigger.body.amount}}`, `{{$nodes.fetch.result.price}}`, and `{{$props.asset}}` when the value should come from a trigger, prior node, or reusable workflow prop.