# Token prices · HyperCore API · Femtos

> USD price of up to 100 tokens in one call, each with its source and provenance.

- 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://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/hypercore/prices

## Token prices — GET `/v1/prices`

USD price of up to 100 tokens in one call, each with its source and provenance.

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `layer` | query | `hypercore` | Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm |
| `tokens` | query | `HYPE,PURR,BTC` | Comma list, at most 100: 0x addresses (hyperevm, elysium) or HyperCore token names / ids / perp coins (hypercore) |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/prices?layer=hypercore&tokens=HYPE%2CPURR%2CBTC"
```

| Field | Type | Meaning |
|---|---|---|
| `layer` | string | Layer |
| `prices[]` | object | {token, symbol, priceUsd, source, t, block, tx, logIndex, pool, market, reason, spam, …} |
| `asOf` | int \| null | Time of `height`: the layer head the answer is cut at (EVM: indexed head; HyperCore: ingested head) (Unix ms) |
| `height` | int \| null | Head block of the layer the answer is cut at |
| `testnet` | boolean | Elysium testnet: USD values from testnet pools, nominal |
| `syncing` | true | Present while the layer syncs: data only up to dataUntil |
| `dataUntil` | int \| null | Indexed head time while the layer syncs (Unix ms) |

## Related (Market data)

- [Markets](https://femtos.xyz/hypercore/markets.md): Every tradable perp, spot, HIP-3 and outcome market with 24 h stats.
- [Candles](https://femtos.xyz/hypercore/candles.md): OHLCV of any HyperCore market down to 1 s, ascending, UTC-aligned.
- [Forming candle](https://femtos.xyz/hypercore/ws-candles.md): The forming candle, pushed once per block where it changes.
- [Trades](https://femtos.xyz/hypercore/trades.md): Latest fills of one market, newest first.
- [Trades stream](https://femtos.xyz/hypercore/ws-trades.md): All trades of one market as they happen: raced between our node and Hyperliquid's public feed, first copy sent, the other dropped.
- [Best bid / offer](https://femtos.xyz/hypercore/ws-bbo.md): 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).
- [Order book](https://femtos.xyz/hypercore/book.md): L2 book of one market with order counts, from our node.
- [Book stream](https://femtos.xyz/hypercore/ws-book.md): Full-depth book, then the levels each block changes.
- [Order updates](https://femtos.xyz/hypercore/ws-orders.md): Every order status change, filterable by coin, user and status.
- [HYPE price](https://femtos.xyz/hypercore/ws-prices.md): HYPE from the Hyperliquid oracle, perp mark and exchanges.
- [Price history](https://femtos.xyz/hypercore/price-history.md): USD closes per unit of up to 25 tokens over a window, or the price of 100 tokens at one time (at=).
- [Token candles](https://femtos.xyz/hypercore/token-candles.md): OHLCV of a token through its USDC market (a perp coin: the perp).
- [Token metadata](https://femtos.xyz/hypercore/tokens-batch.md): Metadata of up to 100 tokens: supply, creator, logo and socials when indexed, family, spam. Also POST with a JSON body.

All HyperCore endpoints: https://femtos.xyz/hypercore.md
