# Ascend swaps stream · Elysium API · Femtos

> Every swap of every Ascend pool, one message per block.

- 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` (or `X-API-KEY: $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/elysium/ws-ascend-swaps

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

## Ascend swaps stream — WS `ascend.swaps`

Every swap of every Ascend pool, one message per block.

| Param | In | Example or values |
|---|---|---|
| `token` | filter | (optional) |
| `side` | filter | `(empty)`, `buy`, `sell` |
| `min_usd` | filter | (optional) |

```json
{"op":"subscribe","channel":"ascend.swaps","filter":{}}
```

| Field | Type | Meaning |
|---|---|---|
| `snapshot: true` | AscendSwap[] | last 50 matching swaps |
| `data` | AscendSwap[] | the matching swaps of one block, all pools |
| `token · symbol · pair` | string | the launch the swap trades |
| `side · tokens · quoteAmount · usd` | string | of the launched token; USDC; USD |
| `priceUsd · mcapUsd` | decimal \| null | after the swap |
| `trader · id` | string | tx.from; <tx>:<log>, as /api/trades |
| `block · tx · logIndex` | int · string · int | source: the Swap log |
| `trader · launchpad` | filter | more filters |

## Related (Launches)

- [New launches](https://femtos.xyz/elysium/launches.md): Latest Ascend launches, newest first, with live market figures.
- [Launches stream](https://femtos.xyz/elysium/ws-launches.md): One message per new launch, the moment its block is indexed.
- [Ascended transitions](https://femtos.xyz/elysium/ws-ascend-status.md): A message when a launch crosses your thresholds, in the block where it happens.

All Elysium endpoints: https://femtos.xyz/elysium.md
