# Token prices stream | API reference | Femtos

> USD prices of up to 100 HyperEVM tokens, as GET /v1/prices answers them, pushed in each block that changes one. WebSocket channels elysium.prices | hyperevm.prices 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/token-prices

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

## Token prices stream — WS `elysium.prices | hyperevm.prices`

- Elysium: USD prices of up to 100 Elysium tokens, as GET /v1/prices answers them, pushed in each block that changes one.
- HyperEVM: USD prices of up to 100 HyperEVM tokens, as GET /v1/prices answers them, pushed in each block that changes one.

Layers: Elysium, HyperEVM. Not on HyperCore: HyperCore prices move on its order books: hc.ctx streams every market’s mark and mid, prices.hype every HYPE source.
Page with live calls: https://femtos.xyz/reference/ws/token-prices?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `tokens` | filter | `0xedb963ed6efe231f6327c87a42ed49abe2447afa` (Elysium); `0x5555555555555555555555555555555555555555,0xb88339cb7199b77e23db6e890353e22632ba630f,native` (HyperEVM) | Comma list of up to 100 token addresses (`native` = HYPE, the chain's native token) |

Elysium:

```json
{"op":"subscribe","channel":"elysium.prices","filter":{"tokens":"0xedb963ed6efe231f6327c87a42ed49abe2447afa"}}
```

HyperEVM:

```json
{"op":"subscribe","channel":"hyperevm.prices","filter":{"tokens":"0x5555555555555555555555555555555555555555,0xb88339cb7199b77e23db6e890353e22632ba630f,native"}}
```

| Field | Type | Meaning |
|---|---|---|
| `snapshot: true` | PricePoint[] | the GET /v1/prices?layer=elysium `prices` of the tokens, in the order asked (Elysium) |
| `data` | PricePoint[] | the rows of the tokens whose price changed in the blocks the indexer just committed (same row as GET /v1/prices; `native` stays `native`), one message per block that changes one: a pool-priced token when its reference pool trades (or another pool becomes its reference), HYPE and the HyperCore-linked tokens when their HyperCore price moved. Source of each price: `hl_mid` = HyperCore HYPE/USDC spot mid (HYPE, the native token and WHYPE; `hl_oracle` when the mid is older than 10 min), `hl_spot` = last trade of the token's USDC spot market on HyperCore (HyperCore tokens, and HyperEVM tokens linked to one by the token registry), `hl_perp` = last trade of a HyperCore perp, `unit` = USDC (the unit HyperCore prices in), `pool` = the last swap of the token's reference pool on HyperEVM / Elysium, cited by block + tx + logIndex. The reference pool of a token: among its active pools whose USD price is known (pools of a spam token left out, unless the token itself is spam), the one with the largest liquidityUsd of at least $1,000 (twice the smaller side of what the pool contract holds at the indexed head, valued at USD prices: HyperCore for HYPE, WHYPE and the Core-linked tokens); when none reaches it, the most 24 h USD volume, then the most trades, then the oldest pool. Uniswap V4 / PancakeSwap Infinity / Balancer pools keep their tokens in a shared vault: their liquidity is not measured (null), they rank by volume.: {token, symbol, priceUsd, source, t, block, tx, logIndex, pool, market, reason, spam, …} |
| `snapshot: true` | PricePoint[] | the GET /v1/prices?layer=hyperevm `prices` of the tokens, in the order asked (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)
- [Markets stream](https://femtos.xyz/reference/ws/markets.md) `WS elysium.markets | hc.markets | hyperevm.markets`: The GET /v1/markets list of HyperCore (prices, 24 h volume and change), pushed on subscribe and when it changes. (Elysium, HyperCore, HyperEVM)
- [Token screener](https://femtos.xyz/reference/tokens-top.md) `GET /v1/tokens/top`: The tokens of HyperEVM, one row each over all their pools: trending, volume, gainers, losers, new, market cap, liquidity. (Elysium, 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)
- [Token candles stream](https://femtos.xyz/reference/ws/token-candles.md) `WS elysium.token.candles | hc.token.candles | hyperevm.token.candles`: A token's candles by name (its USDC market; a perp coin: the perp), the forming candle pushed once per block where it changes. (Elysium, HyperCore, HyperEVM)
- [Trades](https://femtos.xyz/reference/trades.md) `GET /v1/trades`: Latest fills of one market, newest first. (Elysium, HyperCore, HyperEVM)
- [Trades stream](https://femtos.xyz/reference/ws/trades.md) `WS elysium.trades | hc.trades | hyperevm.trades`: All trades of one market as they happen: raced between our node and Hyperliquid's public feed, first copy sent, the other dropped. (Elysium, HyperCore, HyperEVM)
- [Swap history stream](https://femtos.xyz/reference/ws/trades-history.md) `WS elysium.trades.history | hyperevm.trades.history`: The latest swaps of a token or pool on HyperEVM (GET /v1/trades with filters), pushed on subscribe, then each block with a new swap it shows. (Elysium, 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)
- [Named wallets on the book](https://femtos.xyz/reference/ws/book-named.md) `WS hc.book.named`: Who sits on the book: the resting limit orders of the named wallets (funds, traders, KOLs), by level, live. (HyperCore)
- [Walls on the book](https://femtos.xyz/reference/ws/book-walls.md) `WS hc.book.walls`: Every large resting order on the book with its owner, live, and whether that owner's walls hold or are pulled when the price comes. (HyperCore)
- [Wall reliability](https://femtos.xyz/reference/walls.md) `GET /v1/hypercore/walls`: Which accounts' large resting orders hold when the price comes, and which are pulled. (HyperCore)
- [Walls held or pulled](https://femtos.xyz/reference/walls-events.md) `GET /v1/hypercore/walls/events`: One market's walls the price came to, one by one: held or pulled, when and whose. (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)
- [Asset contexts stream](https://femtos.xyz/reference/ws/ctx.md) `WS hc.ctx`: Mark, oracle, mid, funding, open interest and 24 h volume of every HyperCore market, pushed as they change: one read per second for every subscriber. (HyperCore)
- [Order updates](https://femtos.xyz/reference/ws/orders.md) `WS hc.orders`: Every order status change, filterable by coin, user and status. One frame per block with all its matching events. (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 HyperCore’s spot mid (each block), the Hyperliquid oracle and 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)
- [Pool stream](https://femtos.xyz/reference/ws/pool.md) `WS elysium.pool | hyperevm.pool`: One pool on HyperEVM (GET /v1/pools/{address}: price, liquidity and depth, 5m to 24h activity, LPs), pushed on subscribe, then in each block that touches it: swap, liquidity added or removed, balance moved. (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)
- [Liquidity events stream](https://femtos.xyz/reference/ws/liquidity.md) `WS elysium.liquidity | hyperevm.liquidity`: Liquidity added to and removed from one pool on HyperEVM (GET /v1/liquidity), pushed on subscribe, then in each block that adds or removes some. (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
