# Trades stream · API reference · Femtos

> All trades of one market as they happen: raced between our node and Hyperliquid's public feed, first copy sent, the other dropped. WebSocket channels elysium.trades · hc.trades · hyperevm.trades on Elysium, HyperCore 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://femtos.xyz/account/new (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/ws/trades

WebSocket: get a ticket (`POST https://api.femtos.xyz/v1/ws-ticket` with your key), connect to `wss://api.femtos.xyz/v1/ws?ticket=$TICKET`, send the frame below; the first message has `"snapshot": true`. Details: https://femtos.xyz/agents.md#websocket

## Trades stream — WS `elysium.trades · hc.trades · hyperevm.trades`

- Elysium, HyperEVM: The swaps of one pool, one message per block that has some.
- HyperCore: All trades of one market as they happen: raced between our node and Hyperliquid's public feed, first copy sent, the other dropped.

Layers: Elysium, HyperCore, HyperEVM.
Page with live calls: https://femtos.xyz/reference/ws/trades?layer=<elysium|hypercore|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `pair` | filter | `<pair>` (Elysium); `<evmPair>` (HyperEVM) | Pool key: the pool address, or <PoolManager>:<PoolId> (V4, PancakeSwap Infinity); any case (Elysium, HyperEVM) |
| `coin` | filter | `BTC` | HyperCore market: BTC, @107 (spot), xyz:TSLA (HIP-3) (HyperCore) |

Elysium:

```json
{"op":"subscribe","channel":"elysium.trades","filter":{"pair":"<pair>"}}
```

HyperCore:

```json
{"op":"subscribe","channel":"hc.trades","filter":{"coin":"BTC"}}
```

HyperEVM:

```json
{"op":"subscribe","channel":"hyperevm.trades","filter":{"pair":"<evmPair>"}}
```

| Field | Type | Meaning |
|---|---|---|
| `snapshot: true` | ElysiumTrade[] | last 50 swaps at subscribe, chronological (Elysium) |
| `data` | ElysiumTrade[] | the swaps of the pair in one block: {t, px, sz, side, id, block, tx, logIndex, vq, usd, pxUsd, mcapUsd, …} (Elysium) |
| `latency_ms.source_to_sent` | int | block → sent by the server (Elysium) |
| `snapshot: true` | HcTrade[] | last 50 trades of the market at subscribe (HyperCore) |
| `data` | HcTrade[] | the new trades: HyperCore trades of the market as they happen, raced between our node and Hyperliquid's public feed (first copy sent): {t, px, sz, side, tid, block, hash, users} (HyperCore) |
| `data[].tid` | int | trade id, unique: dedupe on it (HyperCore) |
| `data[].users` | [string, string] | [buyer, seller], lowercase 0x (HyperCore) |
| `data[].hash` | string | transaction hash (all zeros when the public feed gives none) (HyperCore) |
| `data[].block` | int \| null | null when the public feed was first; our node fills it in the snapshots (HyperCore) |
| `latency_ms.source_to_sent` | int | trade time → sent by the server (HyperCore) |
| `snapshot: true` | Trade[] | last 50 swaps at subscribe, chronological (HyperEVM) |
| `data` | Trade[] | the swaps of the pair in one block, as they are indexed (polled every 500 ms): {t, px, sz, side, id, block, tx, logIndex, vq, usd, pxUsd, mcapUsd, …} (HyperEVM) |

## Related (Market data)

- [Markets](https://femtos.xyz/reference/markets.md) `GET /v1/markets`: Every tradable perp, spot, HIP-3 and outcome market with 24 h stats. (Elysium, HyperCore, HyperEVM)
- [Candles](https://femtos.xyz/reference/candles.md) `GET /v1/candles`: OHLCV of any HyperCore market down to 1 s, ascending, UTC-aligned. (Elysium, HyperCore, HyperEVM)
- [Forming candle](https://femtos.xyz/reference/ws/candles.md) `WS elysium.candles · hc.candles · hyperevm.candles`: The forming candle, pushed once per block where it changes. (Elysium, HyperCore, HyperEVM)
- [Token candles](https://femtos.xyz/reference/token-candles.md) `GET /v1/candles`: OHLCV of a token through its USDC market (a perp coin: the perp). (Elysium, HyperCore, HyperEVM)
- [Trades](https://femtos.xyz/reference/trades.md) `GET /v1/trades`: Latest fills of one market, newest first. (Elysium, HyperCore, HyperEVM)
- [Order book](https://femtos.xyz/reference/book.md) `GET /v1/book`: L2 book of one market with order counts, from our node. (HyperCore)
- [Book stream](https://femtos.xyz/reference/ws/book.md) `WS hc.book`: Full-depth book, then the levels each block changes. (HyperCore)
- [Best bid / offer](https://femtos.xyz/reference/ws/bbo.md) `WS hc.bbo`: Top of book of one market each block: raced between Hyperliquid's public feed and our node (newest block wins, our node corrects the same block). (HyperCore)
- [Order updates](https://femtos.xyz/reference/ws/orders.md) `WS hc.orders`: Every order status change, filterable by coin, user and status. (HyperCore)
- [Token prices](https://femtos.xyz/reference/prices.md) `GET /v1/prices`: USD price of up to 100 tokens in one call, each with its source and provenance. (Elysium, HyperCore, HyperEVM)
- [Price history](https://femtos.xyz/reference/price-history.md) `GET /v1/prices/history`: USD closes per unit of up to 25 tokens over a window, or the price of 100 tokens at one time (at=). (Elysium, HyperCore, HyperEVM)
- [HYPE price](https://femtos.xyz/reference/ws/prices.md) `WS prices.hype`: HYPE from the Hyperliquid oracle, perp mark and exchanges. (HyperCore)
- [Pool detail](https://femtos.xyz/reference/pool.md) `GET /v1/pools/{address}`: One pool: dex, fee, tokens, liquidity in USD, depth, 5m to 24h activity, top LPs. (Elysium, HyperEVM)
- [Liquidity events](https://femtos.xyz/reference/liquidity.md) `GET /v1/liquidity`: Liquidity added to and removed from one pool, newest first. (Elysium, HyperEVM)
- [Daily token volume](https://femtos.xyz/reference/volume.md) `GET /v1/volume`: USD swap volume of a token per UTC day, both sides of every priced swap. (Elysium, HyperEVM)

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