# Token overview · API reference · Femtos

> One token across all its pools: price, FDV, market cap, liquidity, windows, holders, top pools. GET /v1/tokens/{address} 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://femtos.xyz/account/new (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/token-overview

## Token overview — GET `/v1/tokens/{address}`

One token across all its pools: price, FDV, market cap, liquidity, windows, holders, top pools.

Layers: Elysium, HyperEVM. Not on HyperCore: an EVM token across its pools: a HyperCore token trades on its spot market (markets, coin detail).
Page with live calls: https://femtos.xyz/reference/token-overview?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `address` | path | `<token>` (Elysium); `<evmToken>` (HyperEVM) | Token address |
| `layer` | query | `elysium` (Elysium); `hyperevm` (HyperEVM) | EVM layer |

Elysium:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/tokens/<token>?layer=elysium"
```

HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/tokens/<evmToken>?layer=hyperevm"
```

| Field | Type | Meaning |
|---|---|---|
| `layer` | string | Layer |
| `token` | object | Token metadata from the indexer: {address, symbol, name, decimals, totalSupply, creator, createdAt, createdBlock, logo, description, socials, family, …} |
| `price` | object | The price as GET /prices answers it: {priceUsd, source, t, pool, market, block, tx, logIndex} |
| `fdvUsd` | decimal \| null | totalSupply × price |
| `mcapUsd` | decimal \| null | circulatingSupply × price |
| `circulatingSupply` | decimal \| null | totalSupply minus what the zero and 0x…dead addresses hold |
| `liquidityUsd` | decimal \| null | Σ of the measured liquidity of its pools (twice the smaller side of each) |
| `liquidity` | object | {pools, unmeasured} |
| `windows` | object | Rolling windows ending at windowsEnd: 5m / 1h / 6h from the swaps themselves, 24h from hourly candles (the current hour included), over every pool of the token (spam pools left out unless the token is spam): {5m, 1h, 6h, 24h} |
| `windowsEnd` | ms | End of the windows (the indexed head while the layer syncs) |
| `holders` | object \| null | {count, top10Share}: positive balances, system addresses excluded (as /holders); null when it cannot answer: {count, top10Share} |
| `pools` | object | {count, active24h, reference, top} |
| `createdAt` | int \| null | Creation time (Unix ms) |
| `creator` | string \| null | Deployer |
| `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 only (absent on mainnet): 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 (Holders & tokens)

- [Token registry](https://femtos.xyz/reference/coins.md) `GET /v1/coins`: HyperCore tokens with their HyperEVM contract and price. (Elysium, HyperCore, HyperEVM)
- [Coin detail](https://femtos.xyz/reference/coin.md) `GET /v1/coins/{layer}/{id}`: One token: its links across layers, the markets it trades on, its 5 largest holders. (Elysium, HyperCore, HyperEVM)
- [Token metadata](https://femtos.xyz/reference/tokens-batch.md) `GET /v1/tokens`: Metadata of up to 100 tokens: supply, creator, logo and socials when indexed, family, spam. Also POST with a JSON body. (Elysium, HyperCore, HyperEVM)
- [Token across layers](https://femtos.xyz/reference/token-lifecycle.md) `GET /v1/tokens/{address}/lifecycle`: One token from its Elysium launch to its HyperEVM mirror, HyperCore spot and perps, each link proven or marked inferred. (Elysium, HyperCore, HyperEVM)
- [Holders](https://femtos.xyz/reference/holders.md) `GET /v1/holders`: Spot balances of a HyperCore token, largest first. (Elysium, HyperCore, HyperEVM)
- [Perp holders](https://femtos.xyz/reference/holders-positions.md) `GET /v1/holders`: Largest open positions of a perp, long and short. (HyperCore)
- [Token families](https://femtos.xyz/reference/token-families.md) `GET /v1/token-families`: Tokens whose balance moves without Transfer logs: Aave aTokens and debt tokens, stHYPE, xStocks. (Elysium, HyperEVM)
- [Family token holders](https://femtos.xyz/reference/token-family.md) `GET /v1/token-families/{token}`: Holders of one family token with balanceOf at the indexed head. (Elysium, HyperEVM)
- [Token transfers](https://femtos.xyz/reference/transfers.md) `GET /v1/transfers`: ERC-20 Transfer events of one token, newest first. (Elysium)
- [Token security](https://femtos.xyz/reference/token-security.md) `GET /v1/tokens/{address}/security`: Honeypot check: a buy, a transfer and a sell simulated on our node, taxes, owner powers, holders and LP, with a verdict. (Elysium, HyperEVM)
- [Spam tokens](https://femtos.xyz/reference/spam-tokens.md) `GET /v1/tokens/spam`: Tokens the indexer flags as spam, left out of every list, and the latest flag changes. (Elysium, HyperEVM)

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