# Swaps by wallet · HyperEVM API · Femtos

> Every swap a wallet sent (or a pool’s, a token’s), newest first, filterable by token, side, size and time.

- 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://femtos.xyz/accounts/ (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/hyperevm/wallet-trades

## Swaps by wallet — GET `/v1/trades`

Every swap a wallet sent (or a pool’s, a token’s), newest first, filterable by token, side, size and time.

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `layer` | query | `hyperevm` | Layer |
| `trader` | query | `<evmWallet>` | History of a wallet (tx.from of the swaps); a named wallet's handle works too |
| `token` | query | (optional) | Swaps where this token is base or quote |
| `side` | query | `(empty)`, `buy`, `sell` | Buys or sells of the base |
| `minUsd` | query | (optional) | Smallest USD value (the indexer's, at the swap) |
| `limit` | query | `20` | Rows |
| `cursor` | query | (optional) | Next page: `next_cursor` of the previous answer |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/trades?layer=hyperevm&trader=<evmWallet>&limit=20"
```

| Field | Type | Meaning |
|---|---|---|
| `rows[]` | object | Newest first: {t, block, tx, logIndex, id, pair, protocol, base, quote, baseAddress, quoteAddress, side, …} |
| `coverage` | all \| priced | priced: a token of more than 20 pools, read through its priced swaps only (volume_usd set) |
| `scanned` | int | Index rows read for this page (filters apply to them: at most 1000 per source per call) |
| `spamHidden` | int | Rows of spam tokens left out (includeSpam=true shows them) |
| `next_cursor` | string \| null | Opaque cursor of the next page; null when nothing is left in the window. A filtered page can hold fewer rows than limit, even none: keep paging while next_cursor is not null |

Next page: `cursor` = the `next_cursor` of the previous answer (https://femtos.xyz/agents.md#pagination).

## Related (Market data)

- [Markets](https://femtos.xyz/hyperevm/markets.md): Active HyperEVM pools with 24 h stats.
- [Candles](https://femtos.xyz/hyperevm/candles.md): OHLCV of one pool in pair price, USD and market cap, ascending, UTC-aligned.
- [Forming candle](https://femtos.xyz/hyperevm/ws-candles.md): The forming candle, pushed once per block where it changes.
- [Trades](https://femtos.xyz/hyperevm/trades.md): Latest swaps of one pool, newest first.
- [Trades stream](https://femtos.xyz/hyperevm/ws-trades.md): The swaps of one pool, one message per block that has some.
- [Transfers by wallet](https://femtos.xyz/hyperevm/wallet-transfers.md): ERC-20 transfers sent and received by a wallet, newest first, filterable by token, direction, size and time.
- [Pool detail](https://femtos.xyz/hyperevm/pool.md): One pool: dex, fee, tokens, liquidity in USD, depth, 5m to 24h activity, top LPs.
- [Transaction](https://femtos.xyz/hyperevm/tx.md): One transaction: status, gas, decoded transfers, swaps and liquidity, bridge legs and journey.
- [Token prices](https://femtos.xyz/hyperevm/prices.md): USD price of up to 100 tokens in one call, each with its source and provenance.
- [Price history](https://femtos.xyz/hyperevm/price-history.md): USD closes per unit of up to 25 tokens over a window, or the price of 100 tokens at one time (at=).
- [Token candles](https://femtos.xyz/hyperevm/token-candles.md): OHLCV of a token in USD through its reference pool, the most liquid one.

All HyperEVM endpoints: https://femtos.xyz/hyperevm.md
