# Balances, all layers · API reference · Femtos

> One address on HyperCore, HyperEVM and Elysium in one list, with totals per layer. GET /v1/balances/{address} on Elysium, HyperCore 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/balances-all

## Balances, all layers — GET `/v1/balances/{address}`

One address on HyperCore, HyperEVM and Elysium in one list, with totals per layer.

Layers: Elysium, HyperCore, HyperEVM.
Page with live calls: https://femtos.xyz/reference/balances-all?layer=<elysium|hypercore|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `address` | path | `<creator>` (Elysium); `<address>` (HyperCore); `<owner>` (HyperEVM) | 0x address, or a named wallet's handle `<entityId>.<hex>` |
| `layer` | query | `(empty)`, `hypercore`, `hyperevm`, `elysium`, `all` | Layer(s) read |
| `minUsd` | query | `1` | Leave out holdings worth less (and unpriced ones) |
| `includeSpam` | query | `(empty)`, `true` | List spam tokens (flagged spam / spamReason); never in the totals |

Elysium:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/balances/<creator>?layer=all&minUsd=1"
```

HyperCore:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/balances/<address>?layer=all&minUsd=1"
```

HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/balances/<owner>?layer=all&minUsd=1"
```

| Field | Type | Meaning |
|---|---|---|
| `balances[]` | object | Holdings, largest USD first (sort=amount: largest amount); spam left out unless includeSpam: {layer, kind, asset, symbol, name, decimals, raw, amount, priceUsd, priceSource, usd, spam, …} |
| `totalUsd` | decimal \| null | USD of every holding (spam never counts; tokens= narrows it, minUsd and limit do not) + HyperCore perp account values; null on a past read |
| `totalUsdComplete` | boolean | Every holding had a price and every layer asked answered |
| `layers.<layer>` | object | Per layer asked: source, height, asOf (provenance), usd, count, verify: {source, height, asOf, network, chainId, testnet, syncing, dataUntil, requested, usd, usdComplete, count, …} |
| `perp` | object \| null | HyperCore perp accounts (layer hypercore / all): kept apart from the token rows; null with tokens= or a past read: {dex, collateral, accountValue, withdrawable, totalMarginUsed, totalNtlPos, positions, usd, dexes, totalUsd, abstraction, inSpot} |

## Related (Balances)

- [Balances](https://femtos.xyz/reference/balances.md) `GET /v1/balances/{address}`: Every token an address holds on HyperCore, with USD value and the block it is read at. (Elysium, HyperCore, HyperEVM)
- [Token balance](https://femtos.xyz/reference/token-balance.md) `GET /v1/balances/{address}/{token}`: One token of one address on HyperCore: 0 when not held, now or at a past block. (Elysium, HyperCore, HyperEVM)
- [Batch balances](https://femtos.xyz/reference/batch-balances.md) `POST /v1/balances/batch`: Up to 100 addresses on HyperCore in one call, the same answer for each. (Elysium, HyperCore, HyperEVM)

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