# New launches · Elysium API · Femtos

> Latest Ascend launches, newest first, with live market figures.

- 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/launches

## New launches — GET `/v1/launches`

Latest Ascend launches, newest first, with live market figures.

| Param | In | Example or values |
|---|---|---|
| `limit` | query | `20` |
| `launchpad` | query | `ascend` |
| `creator` | query | (optional) |
| `q` | query | (optional) |
| `minMcapUsd` | query | `50000` |
| `minHolders` | query | `20` |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/launches?limit=20&launchpad=ascend&minMcapUsd=50000&minHolders=20"
```

| Field | Type | Meaning |
|---|---|---|
| `token` | string | launched token |
| `symbol · name` | string \| null | ERC-20 metadata |
| `pair` | string | pool key, the market of candles and trades |
| `creator` | string | dev wallet |
| `launchedAt · block · tx` | int · string | launch event |
| `supply · supplySeeded` | decimal | total supply, tokens seeded in the pool |
| `devBuyTokens` | decimal \| null | tokens the creator bought at launch |
| `priceUsd · mcapUsd` | decimal \| null | last swap price, supply × price |
| `volume24hUsd · trades24h` | decimal · int | rolling 24 h |
| `holders` | int | positive balances, system addresses excluded |
| `top10Share · devHoldsShare` | number \| null | share of supply, 0–1 |
| `devSold` | boolean | creator sold at least once |
| `spam · spamReason` | boolean · string \| null | spam token: left out unless includeSpam=true |
| `volumeSinceLaunchUsd · tradesSinceLaunch` | decimal · int | the pool since the launch |
| `ascend.status` | ascended \| launched \| null | derived: every criterion with a threshold met; null without thresholds |
| `ascend.criteria` | object | mcapUsd · holders · volumeUsd · top10Share: {value, threshold, met, progress} |
| `minMcapUsd · minHolders · minVolumeUsd · maxTop10Share` | query | your thresholds (Ascend publishes none) |
| `creator · quote · q · since · until` | query | filters: dev wallet, quote token, symbol / name, launch time (ms) |
| `before` | query | next page: the X-Next-Cursor header (block:logIndex) |

## Related (Launches)

- [Launches stream](https://femtos.xyz/elysium/ws-launches.md): One message per new launch, the moment its block is indexed.
- [Ascend swaps stream](https://femtos.xyz/elysium/ws-ascend-swaps.md): Every swap of every Ascend pool, one message per block.
- [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
