# Femtos | Transaction status | API reference

> Where a transaction sent through our HyperEVM RPC is: which upstreams accepted it, its block, or replaced / dropped. GET /v1/tx/{hash}/status 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/tx-status

## Transaction status — GET `/v1/tx/{hash}/status`

- Elysium: Where a transaction sent through our Elysium RPC is: which upstreams accepted it, its block, or replaced / dropped.
- HyperEVM: Where a transaction sent through our HyperEVM RPC is: which upstreams accepted it, its block, or replaced / dropped.

Layers: Elysium, HyperEVM. Not on HyperCore: HyperCore has no EVM transactions: an order's status is POST /info orderStatus, its fills the hc.orders channel.
Page with live calls: https://femtos.xyz/reference/tx-status?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `hash` | path | `0x274b53dea204acf545422e6d9207035b7158ba1bd3d14eccadb9f7fc59720281` (Elysium); `0x72a36507af9667d7e97255cf2efa1494a6db3e908cd7ca96a1788ff2215802eb` (HyperEVM) | Transaction hash (0x + 64 hex) |
| `layer` | query | `elysium` (Elysium); `hyperevm` (HyperEVM) | The chain it was sent on: hyperevm or elysium |

Elysium:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/tx/0x274b53dea204acf545422e6d9207035b7158ba1bd3d14eccadb9f7fc59720281/status?layer=elysium"
```

HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/tx/0x72a36507af9667d7e97255cf2efa1494a6db3e908cd7ca96a1788ff2215802eb/status?layer=hyperevm"
```

| Field | Type | Meaning |
|---|---|---|
| `state` | unknown \| pending \| included \| replaced \| dropped | pending: accepted by an upstream, not in a block yet; included: in a block (final); replaced: its sender's nonce was used by another transaction (final); dropped: not in a block after the delay (Elysium: 10 minutes; HyperEVM: 24 hours (its mempool keeps a transaction for a day)) with its nonce still unused; unknown: not sent through this RPC and not on the chain |
| `tracked` | boolean | true: sent through our RPC (`accepted`, `sentAt` and the replaced / dropped states are known); false: read from the chain only |
| `accepted[]` | object | The upstreams that accepted it, first one first; empty when not tracked: {upstream, at} |
| `sentAt` | ms \| null | When the first upstream accepted it; null when not tracked |
| `block` | int \| null | included: its block number |
| `index` | int \| null | included: its position in the block |
| `success` | boolean \| null | included: true when it succeeded, false when it reverted |
| `blockTime` | ms \| null | included: its block's time (the chain gives seconds) |
| `replacedBy` | string \| null | replaced: the hash of the transaction mined with its nonce; null when that one is not in the last blocks read |
| `finalAt` | ms \| null | When we saw its final state (included, replaced, dropped); null before, and for a transaction read from the chain only |

## 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)
- [Chain activity](https://femtos.xyz/reference/activity.md) `GET /v1/activity`: HyperEVM activity per bucket: transactions, wallets and new wallets, contracts, fees, swaps, traders, volume, launches, tokens created and deposits bridged in. (Elysium, HyperEVM)
- [Chain transactions](https://femtos.xyz/reference/activity-transactions.md) `GET /v1/activity/transactions`: HyperEVM user transactions, those that created a contract, and the fees they paid, per bucket. (Elysium, HyperEVM)
- [Chain wallets](https://femtos.xyz/reference/activity-wallets.md) `GET /v1/activity/wallets`: HyperEVM distinct senders of user transactions, and the new ones (first user transaction on the layer), per bucket. (Elysium, HyperEVM)
- [Chain dex volume](https://femtos.xyz/reference/activity-volume.md) `GET /v1/activity/volume`: HyperEVM swaps on the layer's pools, distinct traders, and their USD volume (wash round trips left out), per bucket. (Elysium, HyperEVM)
- [Chain launches](https://femtos.xyz/reference/activity-launches.md) `GET /v1/activity/launches`: HyperEVM tokens launched on a launchpad and ERC-20 tokens created (spam left out), per bucket. (Elysium, HyperEVM)
- [Chain bridged in](https://femtos.xyz/reference/activity-bridged.md) `GET /v1/activity/bridged`: HyperEVM deposits from the parent chain: count, distinct depositors and USD value, per bucket. (Elysium, HyperEVM)
- [Chain activity stream](https://femtos.xyz/reference/ws/activity.md) `WS elysium.activity | hyperevm.activity`: The GET /v1/activity answer of HyperEVM for one interval (its last 120 / 96 / 168 / 90 buckets of 1m / 15m / 1h / 1d), pushed on subscribe, then at each indexed block that moves its open buckets (whole, or as a JSON Patch of the rows that changed). (Elysium, HyperEVM)
- [Block](https://femtos.xyz/reference/block.md) `GET /v1/blocks/{number}`: One HyperEVM block and every transaction in it: who called what, swaps, gas and fees. (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)
- [Transaction status stream](https://femtos.xyz/reference/ws/tx-status.md) `WS elysium.tx.status | hyperevm.tx.status`: The inclusion status of one transaction sent through POST /v1/HyperEVM/rpc (eth_sendRawTransaction): the upstreams that accepted it, then its block (success or reverted), or replaced / dropped. A hash not sent through our RPC gets its status from the chain once (included or unknown) and no later frame. With `from` instead of `hash`: every transaction of up to 10 senders, those your account sent through our RPC from the moment an upstream accepts them, the others once they are in a block. (Elysium, HyperEVM)
- [Sent transactions](https://femtos.xyz/reference/rpc-sent.md) `GET /v1/rpc/sent`: The transactions your account sent through our HyperEVM RPC, newest first, with where each one is. (Elysium, HyperEVM)
- [EVM JSON-RPC](https://femtos.xyz/reference/rpc.md) `POST /v1/elysium/rpc | /v1/hyperevm/rpc`: Free HyperEVM RPC by Femtos, read and send (eth_sendRawTransaction), for wallets, dapps and bots, not for indexing (use the Femtos API for history): no key 5 requests a second per IP; a key its plan's limits (free 50/s, 15 transactions/s, up to 2000/s), never metered; batches of 50 with a key, eth_getLogs over 1,000 blocks at most, state of the last 128 blocks only. (Elysium, HyperEVM)
- [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
