# Top traders | API reference | Femtos

> The wallets that traded a token over the last 1h, 6h or 24h, ranked by PnL or volume, with average prices and realized / unrealized PnL. GET /v1/tokens/{address}/traders on Elysium and HyperEVM: parameters, response fields and a live call per layer.

- Base URL: `https://api.femtos.xyz/v1` (REST) · `wss://api.femtos.xyz/v1/ws` (WebSocket) · MCP: `https://api.femtos.xyz/mcp`
- Auth: `Authorization: Bearer $FEMTOS_KEY`. Free key: https://dashboard.femtos.xyz/signup (browser), or with
  no browser: `GET https://femtos.xyz/accounts/agent/challenge`, solve its proof of work, then `POST https://femtos.xyz/accounts/agent/signup`
  (https://femtos.xyz/agents.md#agent-onboarding)
- Decimals are exact strings, times Unix milliseconds, addresses lowercase `0x`
- Whole API in one file: https://femtos.xyz/agents.md · OpenAPI: https://api.femtos.xyz/v1/openapi.json · Index: https://femtos.xyz/llms.txt
- Page with live calls: https://femtos.xyz/reference/token-traders

## Top traders — GET `/v1/tokens/{address}/traders`

The wallets that traded a token over the last 1h, 6h or 24h, ranked by PnL or volume, with average prices and realized / unrealized PnL.

Layers: Elysium, HyperEVM. Not on HyperCore: HyperCore tokens trade on its order book, not in pools: the fills of a market are on trades, an account's PnL on the wallet page.
Page with live calls: https://femtos.xyz/reference/token-traders?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `address` | path | `<token>` (Elysium); `<evmToken>` (HyperEVM) | Token address |
| `layer` | query | `elysium` (Elysium); `hyperevm` (HyperEVM) | EVM layer |
| `window` | query | `24h`, `6h`, `1h` | Window ending at the indexed head: 1h, 6h or 24h |
| `sort` | query | `pnl`, `realized`, `volume` | pnl (total, highest first), realized (realized PnL) or volume (USD bought + sold) |
| `limit` | query | `20` | Traders |

Elysium:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/tokens/<token>/traders?layer=elysium&window=24h&sort=pnl&limit=20"
```

HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/tokens/<evmToken>/traders?layer=hyperevm&window=24h&sort=pnl&limit=20"
```

| Field | Type | Meaning |
|---|---|---|
| `traders[]` | object | Best first by `sort` (ties: address): {address, entity, label, labelKind, contract, buys, sells, bought, sold, buyUsd, sellUsd, avgBuyPriceUsd, …} |
| `traders[].pnlUsd` | decimal | realizedPnlUsd + unrealizedPnlUsd (realized alone when unrealized is null), USD |
| `traders[].realizedPnlUsd` | decimal | min(bought, sold) × (avgSellPriceUsd − avgBuyPriceUsd); 0 without buys or sells, USD |
| `traders[].unrealizedPnlUsd` | decimal \| null | held × (priceUsd − avgBuyPriceUsd), USD; null when held > 0 and the token has no current price |
| `traders[].held` | decimal | min(max(bought − sold, 0), balance): what the wallet still holds of its net buy in the window |
| `totals` | object | The whole window, every trader (not only the rows returned): {traders, buyers, sellers, swaps, volumeUsd} |
| `priceUsd` | decimal \| null | Current USD price of the token (its most traded pool's, as /v1/prices); null when none |
| `complete` | boolean | false: the window held more than 200,000 swaps on a side, the newest were read and `from` is where they start |
| `from` | ms | First second counted (inclusive): to − window, or later when complete is false |
| `to` | ms | Time of the indexed head (inclusive) |
| `method` | average_cost | How PnL is computed (see the route) |
| `billing` | medium | medium |

## Related (Holders & tokens)

- [Token registry](https://femtos.xyz/reference/coins.md) `GET /v1/coins`: HyperCore tokens with their HyperEVM contract and price. (Elysium, HyperCore, HyperEVM)
- [Coin detail](https://femtos.xyz/reference/coin.md) `GET /v1/coins/{layer}/{id}`: One token: its links across layers, the markets it trades on, its 5 largest holders. (Elysium, HyperCore, HyperEVM)
- [Token metadata](https://femtos.xyz/reference/tokens-batch.md) `GET /v1/tokens`: Metadata of up to 100 tokens: supply, creator, logo and socials when indexed, family, spam. Also POST with a JSON body. (Elysium, HyperCore, HyperEVM)
- [Token overview](https://femtos.xyz/reference/token-overview.md) `GET /v1/tokens/{address}`: One token across all its pools: price, FDV, market cap, liquidity, windows, holders, top pools. (Elysium, HyperEVM)
- [Token across layers](https://femtos.xyz/reference/token-lifecycle.md) `GET /v1/tokens/{address}/lifecycle`: One token from its Elysium launch to its HyperEVM mirror, HyperCore spot and perps, each link proven or marked inferred. (Elysium, HyperCore, HyperEVM)
- [Holders](https://femtos.xyz/reference/holders.md) `GET /v1/holders`: Spot balances of a HyperCore token, largest first. (Elysium, HyperCore, HyperEVM)
- [Holders stream](https://femtos.xyz/reference/ws/holders.md) `WS elysium.holders | hyperevm.holders`: The largest holders and holder count of a HyperEVM token (GET /v1/holders), pushed on subscribe and in the block that moves one of its balances. (Elysium, HyperEVM)
- [Perp holders](https://femtos.xyz/reference/holders-positions.md) `GET /v1/holders`: Largest open positions of a perp, long and short. (HyperCore)
- [Holders history](https://femtos.xyz/reference/holders-history.md) `GET /v1/holders/history`: Holder count of an ERC-20 per day, and now. (Elysium, HyperEVM)
- [Token families](https://femtos.xyz/reference/token-families.md) `GET /v1/token-families`: Tokens whose balance moves without Transfer logs: Aave aTokens and debt tokens, stHYPE, xStocks. (Elysium, HyperEVM)
- [Family token holders](https://femtos.xyz/reference/token-family.md) `GET /v1/token-families/{token}`: Holders of one family token with balanceOf at the indexed head. (Elysium, HyperEVM)
- [Token transfers](https://femtos.xyz/reference/transfers.md) `GET /v1/transfers`: ERC-20 Transfer events of one token, newest first. (Elysium, HyperEVM)
- [Token transfers stream](https://femtos.xyz/reference/ws/transfers.md) `WS elysium.transfers | hyperevm.transfers`: The ERC-20 transfers of one token on HyperEVM, pushed as each block is indexed; min_usd or min_amount for whale alerts. (Elysium, HyperEVM)
- [Token security](https://femtos.xyz/reference/token-security.md) `GET /v1/tokens/{address}/security`: Honeypot check: a buy, a transfer and a sell simulated on our node, taxes, owner powers, holders and LP, with a verdict. (Elysium, HyperEVM)
- [Spam tokens](https://femtos.xyz/reference/spam-tokens.md) `GET /v1/tokens/spam`: Tokens the indexer flags as spam, left out of every list, and the latest flag changes. (Elysium, HyperEVM)

Every page: https://femtos.xyz/reference.md
