API reference, Launches
Creator sells stream
- 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.
- 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)
WebSocket channel elysium.creator.sells on wss://api.femtos.xyz/v1/ws | WebSocket channel hyperevm.creator.sells on wss://api.femtos.xyz/v1/ws
Parameters
| 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` |
Subscribe
Elysium
{"op":"subscribe","channel":"elysium.creator.sells","filter":{"token":"0xedb963ed6efe231f6327c87a42ed49abe2447afa"}}HyperEVM
{"op":"subscribe","channel":"hyperevm.creator.sells","filter":{"token":"0x5f2c04148d4a03a12fd97793189a5899acb06b6d"}}Key: Authorization: Bearer $FEMTOS_KEY. Get a free key, or with no browser through agent onboarding.
Response fields
| 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 GET /v1/launchpads Elysium, HyperEVM
Every HyperEVM launchpad ranked by launches, graduations or 24 h volume, with its top token. - One launchpad GET /v1/launchpads/{name} Elysium, HyperEVM
One HyperEVM launchpad's figures and its launches and graduations per day over 30 days. - Launches GET /v1/launches Elysium, HyperEVM
Latest LiquidLaunch bonding-curve launches, newest first. - Launches stream WS elysium.launches | hyperevm.launches Elysium, HyperEVM
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. - Launch detail & signals GET /v1/launches/{token} Elysium, HyperEVM
Metrics, dev wallet, early buyers and risk signals of one launch. - Launch holders GET /v1/launches/{token}/holders Elysium, HyperEVM
Every holder of a launched token, tagged dev or early buyer, with concentration. - Launch timeline GET /v1/launches/{token}/timeline Elysium, HyperEVM
The whole life of a launch as ordered events with running state. - New tokens GET /v1/tokens/new Elysium, HyperEVM
Every ERC-20 created on HyperEVM, newest first, with its first pool and market figures. - New tokens stream WS elysium.tokens.new | hyperevm.tokens.new Elysium, HyperEVM
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. - New pools GET /v1/pools/new Elysium, HyperEVM
Every new pair or pool on HyperEVM, from every discovered factory and PoolManager, newest first. - New pools stream WS elysium.pools.new | hyperevm.pools.new Elysium, HyperEVM
One message per new pool, the moment its block is indexed. - Ascend swaps stream WS ascend.swaps Elysium
Every swap of every Ascend pool, one message per block. - Ascended transitions WS ascend.status Elysium
A message when a launch crosses your thresholds, in the block where it happens. - Lifecycle stage changes WS ascend.lifecycle Elysium
A message when a launched token reaches its next stage: listing desk, HyperEVM mirror, HyperCore spot, perp.
More
- This page as Markdown
- The whole API reference
- What Elysium serves
- What HyperEVM serves
- The whole API in one Markdown file
- OpenAPI 3.1 document
Agent guide (agents.md)llms.txtOpenAPIMCP serverGet an API keyChangelog