# Token candles · Elysium API · Femtos

> OHLCV of a token in USD through its reference pool, the most liquid one.

- 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/elysium/token-candles

## Token candles — GET `/v1/candles`

OHLCV of a token in USD through its reference pool, the most liquid one.

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `layer` | query | `elysium` | Layer (default: hypercore; token form: hypercore for a name, hyperevm for an address) |
| `token` | query | `<token>` | Instead of market: the candles of a token. EVM layers: its side of its reference pool, o/h/l/c in USD (unit: usd), v in the token, vq in the other token, buys / sells, mcap; the answer names the pool (`market`, `reference`). HyperCore: the candles of the token's USDC spot market (a perp coin: the perp). 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. |
| `tf` | query | `1s`, `15s`, `1m`, `5m`, `15m`, `1h`, `4h`, `1d` | Candle unit |
| `limit` | query | `48` | Candles |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/candles?layer=elysium&token=<token>&tf=1h&limit=48"
```

| Field | Type | Meaning |
|---|---|---|
| `market` | string | Market (token form: the reference pool / USDC market) |
| `reference` | object | token form, EVM: the reference pool (PoolRef) and its rule |
| `unit` | usd \| usdc | token form: what o/h/l/c are in |
| `candles[]` | object | Ascending: {t, o, h, l, c, v, vq, n, vUsd, mcUsd, usd, mcap, …} |
| `candles[].o` | decimal | Open, in the quote (HyperCore: USDC; EVM pools: the quote token; token form: USD) |
| `candles[].buys` | int | token form (EVM): swaps buying the token |
| `candles[].mcap` | object | Same candle as market cap in USD {o,h,l,c} (Elysium, HyperEVM): {o, h, l, c} |
| `asOf` | ms | Time of `height` (HyperCore: ingested head; EVM: indexed head, committed with the candles) |
| `height` | int | Head block of the layer the answer is cut at: every event up to it is counted (HyperCore: ingested head; EVM: indexed head, committed with the candles) |
| `billing` | heavy | heavy over 30 days |

## Related (Market data)

- [Candles](https://femtos.xyz/elysium/candles.md): OHLCV of one pool in pair price, USD and market cap, ascending, UTC-aligned.
- [Forming candle](https://femtos.xyz/elysium/ws-candles.md): The forming candle, pushed once per block where it changes.
- [Trades](https://femtos.xyz/elysium/trades.md): Latest swaps of one pool, newest first.
- [Trades stream](https://femtos.xyz/elysium/ws-trades.md): The swaps of one pool, one message per block that has some.
- [Daily token volume](https://femtos.xyz/elysium/volume.md): USD swap volume of a token per UTC day, both sides of every priced swap. Testnet pool prices.
- [Token transfers](https://femtos.xyz/elysium/transfers.md): ERC-20 Transfer events of one token, newest first.
- [Liquidity events](https://femtos.xyz/elysium/liquidity.md): Liquidity added to and removed from one pool, newest first.
- [Swaps by wallet](https://femtos.xyz/elysium/wallet-trades.md): Every swap a wallet sent (or a pool’s, a token’s), newest first, filterable by token, side, size and time.
- [Transfers by wallet](https://femtos.xyz/elysium/wallet-transfers.md): ERC-20 transfers sent and received by a wallet, newest first, filterable by token, direction, size and time.
- [Pool detail](https://femtos.xyz/elysium/pool.md): One pool: dex, fee, tokens, liquidity in USD, depth, 5m to 24h activity, top LPs.
- [Transaction](https://femtos.xyz/elysium/tx.md): One transaction: status, gas, decoded transfers, swaps and liquidity, bridge legs and journey.
- [Token prices](https://femtos.xyz/elysium/prices.md): USD price of up to 100 tokens in one call, each with its source and provenance.
- [Price history](https://femtos.xyz/elysium/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 metadata](https://femtos.xyz/elysium/tokens-batch.md): Metadata of up to 100 tokens: supply, creator, logo and socials when indexed, family, spam. Also POST with a JSON body.
- [Token overview](https://femtos.xyz/elysium/token-overview.md): One token across all its pools: price, FDV, market cap, liquidity, windows, holders, top pools.

All Elysium endpoints: https://femtos.xyz/elysium.md
