# Femtos | Creator sells stream | API reference

> A token's creator selling it on HyperEVM: amount, USD, the share of its holding sold and what it still holds, one message per block. WebSocket channels elysium.creator.sells | hyperevm.creator.sells 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/ws/creator-sells

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

## Creator sells stream — WS `elysium.creator.sells | hyperevm.creator.sells`

- Elysium: A token's creator selling it on Elysium: amount, USD, the share of its holding sold and what it still holds, one message per block.
- HyperEVM: A token's creator selling it on HyperEVM: amount, USD, the share of its holding sold and what it still holds, one message per block.

Layers: Elysium, HyperEVM. Not on HyperCore: HyperCore tokens trade on their spot order books: a deployer's fills are in the wallet stream (hc.trades of its address).
Page with live calls: https://femtos.xyz/reference/ws/creator-sells?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `token` | filter | `0xedb963ed6efe231f6327c87a42ed49abe2447afa` (Elysium); `0x5f2c04148d4a03a12fd97793189a5899acb06b6d` (HyperEVM) | Tokens to follow: one 0x address or a comma list of up to 100 (as `tokens` of <layer>.prices), any case. Absent: every creator sale on the layer |
| `launchpad` | filter | `(empty)`, `any`, `none`, `ascend` (Elysium); `(empty)`, `any`, `none`, `liquidlaunch` (HyperEVM) | Launchpad: ascend, liquidlaunch, none (direct deploys), any (launchpad tokens only) or its 0x address |
| `min_usd` | filter | (optional) | Smallest USD value of the sale; unpriced sales left out |
| `include_spam` | filter | `(empty)`, `true` | true: also the sales of spam tokens (flagged `spam`), left out by default unless named in `token` |

Elysium:

```json
{"op":"subscribe","channel":"elysium.creator.sells","filter":{"token":"0xedb963ed6efe231f6327c87a42ed49abe2447afa"}}
```

HyperEVM:

```json
{"op":"subscribe","channel":"hyperevm.creator.sells","filter":{"token":"0x5f2c04148d4a03a12fd97793189a5899acb06b6d"}}
```

| Field | Type | Meaning |
|---|---|---|
| `snapshot: true` | CreatorSell[] | the last 50 sales the filter shows among those this server pushed while the layer's channel had subscribers (empty after a restart, once none was left, or after a `gap`), oldest first |
| `data` | CreatorSell[] | the sales of one block: swaps whose tx.from or beneficiary (the wallet that gave the sold token: a smart account behind a bundler, as `beneficiary` of GET /v1/trades) is the creator of the token they sell, pushed when the indexer commits the block (all the sales of a block in one frame; a sale sent once, a reorg's copy skipped). Creator: the token's creator as `<layer>.tokens.new` and `GET /v1/tokens/new` give it (the launchpad's creator when a launch event names one, an Ascend launch: the dev wallet its launch named (the wallet its pool's CreatorEscrow hands the dev buy to; the escrow's fee recipient when the launch named no dev), not the escrow contract its launch event names; else the sender of the token's first transaction), the same wallet as `creator` and `devSold` of `GET /v1/launches`; a wallet the creator funded or sent the tokens to is not followed. When the feed falls more than 200,000 swaps behind the indexer it goes on from the head: a `gap` frame names the blocks whose sales will not come (reason `too_many_events`; read them back with `GET /v1/trades?beneficiary=<creator>` and `?trader=<creator>`): {token, symbol, creator, launchpad, pool, quote, quoteSymbol, amount, quoteAmount, usd, priceUsd, balanceBefore, …} |
| `data[].shareSold` | decimal | Share of its holding the creator sold in this swap: amount / balanceBefore (0 to 1, 15 significant digits; 1 when balanceAfter reads as 0) |
| `data[].balanceAfter` | decimal | Creator's balance of the token after this sale, token units: the creator's `balances` row of the indexer at its head, less what the creator's later swaps of the token (those that moved its balance: sent for itself, or whose beneficiary it is; any block after the sale) gave it, both read at once: exact when the creator's own wallet paid and received the tokens of its swaps and moved none otherwise (a transfer is not seen). Never below 0: a negative indexed balance (an indexer fault being repaired) reads as 0 |
| `data[].fullyOut` | boolean | balanceAfter is 0: the creator holds none of the token any more |
| `batch` | "block" | every live frame: one block, `data` its matching events |
| `status` | "gap" | a frame of its own: events of those blocks will not come on this subscription (`from_block`, `to_block`, `from_time`, `to_time`, `channels`, `reason`). Not billed |

## Related (Launches)

- [Launchpads ranked](https://femtos.xyz/reference/launchpad-ranking.md) `GET /v1/launchpads`: Every HyperEVM launchpad ranked by launches, graduations or 24 h volume, with its top token. (Elysium, HyperEVM)
- [One launchpad](https://femtos.xyz/reference/launchpad.md) `GET /v1/launchpads/{name}`: One HyperEVM launchpad's figures and its launches and graduations per day over 30 days. (Elysium, HyperEVM)
- [Launches](https://femtos.xyz/reference/launches.md) `GET /v1/launches`: Latest LiquidLaunch bonding-curve launches, newest first. (Elysium, HyperEVM)
- [Launches stream](https://femtos.xyz/reference/ws/launches.md) `WS elysium.launches | hyperevm.launches`: One message per new launch of a HyperEVM launchpad (LiquidLaunch by default; Signal, Alt.fun or every launchpad with the launchpad filter), the moment its block is indexed; with updates, one more each time a launch trades on its curve, trades for the first time or graduates. (Elysium, HyperEVM)
- [Launch detail & signals](https://femtos.xyz/reference/signals.md) `GET /v1/launches/{token}`: Metrics, dev wallet, early buyers and risk signals of one launch. (Elysium, HyperEVM)
- [Launch holders](https://femtos.xyz/reference/launch-holders.md) `GET /v1/launches/{token}/holders`: Every holder of a launched token, tagged dev or early buyer, with concentration. (Elysium, HyperEVM)
- [Launch timeline](https://femtos.xyz/reference/timeline.md) `GET /v1/launches/{token}/timeline`: The whole life of a launch as ordered events with running state. (Elysium, HyperEVM)
- [New tokens](https://femtos.xyz/reference/new-tokens.md) `GET /v1/tokens/new`: Every ERC-20 created on HyperEVM, newest first, with its first pool and market figures. (Elysium, HyperEVM)
- [New tokens stream](https://femtos.xyz/reference/ws/new-tokens.md) `WS elysium.tokens.new | hyperevm.tokens.new`: One message per new token as its block is indexed, and another when its first pool opens; with updates, one more each time a new token trades. (Elysium, HyperEVM)
- [New pools](https://femtos.xyz/reference/new-pools.md) `GET /v1/pools/new`: Every new pair or pool on HyperEVM, from every discovered factory and PoolManager, newest first. (Elysium, HyperEVM)
- [New pools stream](https://femtos.xyz/reference/ws/new-pools.md) `WS elysium.pools.new | hyperevm.pools.new`: One message per new pool, the moment its block is indexed. (Elysium, HyperEVM)
- [Ascend swaps stream](https://femtos.xyz/reference/ws/ascend-swaps.md) `WS ascend.swaps`: Every swap of every Ascend pool, one message per block. (Elysium)
- [Ascended transitions](https://femtos.xyz/reference/ws/ascend-status.md) `WS ascend.status`: A message when a launch crosses your thresholds, in the block where it happens. (Elysium)
- [Lifecycle stage changes](https://femtos.xyz/reference/ws/ascend-lifecycle.md) `WS ascend.lifecycle`: A message when a launched token reaches its next stage: listing desk, HyperEVM mirror, HyperCore spot, perp. (Elysium)

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