# Block | API reference | Femtos

> One HyperEVM block and every transaction in it: who called what, swaps, gas and fees. GET /v1/blocks/{number} 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/block

## Block — GET `/v1/blocks/{number}`

- Elysium: One Elysium block and every transaction in it: who called what, swaps, gas and fees.
- HyperEVM: One HyperEVM block and every transaction in it: who called what, swaps, gas and fees.

Layers: Elysium, HyperEVM. Not on HyperCore: HyperCore blocks are its exchange state, not EVM transactions: an account's actions are in POST /info and on the wallet page.
Page with live calls: https://femtos.xyz/reference/block?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `number` | path | `23000` (Elysium); `49699586` (HyperEVM) | Block number, or latest |
| `layer` | query | `elysium` (Elysium); `hyperevm` (HyperEVM) | EVM layer |

Elysium:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/blocks/23000?layer=elysium"
```

HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/blocks/49699586?layer=hyperevm"
```

| Field | Type | Meaning |
|---|---|---|
| `number` | int | Block number |
| `hash` | string \| null | Block hash |
| `time` | ms | Block time (the chain gives seconds) |
| `kind` | small \| big \| block | small / big: HyperEVM's two block kinds, each with its own base fee and mempool (small: 3M gas, about one a second; big: 30M gas, about one a minute; a gas limit above 10M is big); block: Elysium's one kind |
| `baseFee` | decimal | Base fee per gas, wei |
| `tipP50` | decimal \| null | Median tip of its transactions, wei; null while unknown (tips of the history are read from the node after a restart) |
| `burnt` | decimal | Base fee × gas used, HYPE (exact) |
| `fees` | decimal \| null | Fees paid by its transactions, HYPE (exact); null when the node gave no receipts |
| `txCount` | int | Transactions in the block |
| `transactions[]` | object | In block order: {hash, index, type, from, fromEntity, to, toEntity, contractCreated, value, methodId, method, status, …} |
| `transactions[].method` | string \| null | The function's name when known (the signatures most used on the layer) |
| `transactions[].swaps[]` | object | Its swaps, decoded (indexer): {side, base, quote, baseAddress, quoteAddress, pair, usd} |
| `prev` | int \| null | Previous block |
| `next` | int \| null | Next block; null at the head |

## Related (Chain & reference)

- [Freshness](https://femtos.xyz/reference/status.md) `GET /v1/status`: Head and lag of each layer, measured now. (Elysium, HyperCore, HyperEVM)
- [Freshness stream](https://femtos.xyz/reference/ws/status.md) `WS status`: The GET /v1/status answer (head and lag of each layer, live feeds), pushed whole on subscribe and at most once a second when it changes. (Elysium, HyperCore, HyperEVM)
- [Blocks stream](https://femtos.xyz/reference/ws/blocks.md) `WS elysium.blocks | hyperevm.blocks`: Each new HyperEVM block header, small and big blocks, from our node. (Elysium, HyperEVM)
- [Gas tracker](https://femtos.xyz/reference/gas.md) `GET /v1/gas`: Every HyperEVM block's base fee, gas used and tips over 1h to 7d, with stats and the latest block. (Elysium, HyperEVM)
- [Gas stream](https://femtos.xyz/reference/ws/gas.md) `WS elysium.gas | hyperevm.gas`: Each new HyperEVM block's base fee, gas used and tips, from our node; the history is GET /v1/gas. (Elysium, HyperEVM)
- [Transaction](https://femtos.xyz/reference/tx.md) `GET /v1/tx/{hash}`: One transaction: status, gas, decoded transfers, swaps and liquidity, bridge legs and journey. (Elysium, HyperEVM)
- [Elysium RPC](https://femtos.xyz/reference/rpc.md) `POST /v1/elysium/rpc`: Free public Elysium mainnet RPC by Femtos (chain 99901), no key, read only (no transaction sending), for wallets and dapps, not for indexing (use the Femtos API for history): per IP 5 requests a second and 60 a minute, batches of 5, eth_getLogs over 1,000 blocks at most, state of the last 128 blocks only. (Elysium)
- [Stream stats](https://femtos.xyz/reference/ws/stats.md) `WS stats`: Our HyperCore stream health, once a second. (HyperCore)
- [Check your key](https://femtos.xyz/reference/whoami.md) `GET /v1/whoami`: Answers the name your key is registered under, its tier, billing state and the limits in force. (Elysium, HyperCore, HyperEVM)
- [OpenAPI document](https://femtos.xyz/reference/openapi.md) `GET /v1/openapi.json`: The OpenAPI 3.1 contract of every REST call, public. (Elysium, HyperCore, HyperEVM)

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