> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hypedexer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Elysium Testnet

> Indexed data for Elysium, Kinetiq's high-throughput L2 on Hyperliquid

<Note>
  Elysium is currently **testnet-only** (chain ID `99801`). Mainnet endpoints will be added under `/elysium/mainnet` when it launches.
</Note>

## What is Elysium?

[Elysium](https://elysium.kinetiq.xyz/docs/what-is-elysium) is an Arbitrum Orbit (Nitro/ArbOS) L2 built by Kinetiq that settles to **HyperEVM** and runs co-located with HyperCore. It targets 100–200 ms blocks and \~100× HyperEVM's throughput, with **HYPE as the native gas token**, bridged 1:1 from HyperEVM.

HypeDexer indexes Elysium testnet end to end: its blocks, transactions, logs and tokens, the batches it posts on HyperEVM testnet, and the bridge between the two chains.

## Base URL

```
https://api.hypedexer.com/elysium/testnet
```

All endpoints use the same `X-API-Key` header, response envelope (`success`, `message`, `data`, `has_more`) and pagination (`limit` up to 1000, `offset`) as the [EVM endpoints](/evm/index). Time filters `start_time` / `end_time` take ISO 8601 UTC timestamps.

## What you can query

| Area           | Endpoints                                                                        | Highlights                                                                                                      |
| -------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| **Chain**      | `/stats`, `/stats/daily`, `/blocks`, `/transactions`, `/logs`                    | Activity **excluding spam** and system transactions, full receipts, decoded token transfers                     |
| **Settlement** | `/batches`                                                                       | Every batch posted to the SequencerInbox on HyperEVM, with the Elysium blocks it contains and its posting delay |
| **Bridge**     | `/bridge/transfers`, `/bridge/retryables`, `/bridge/tokens`, `/bridge/reserves`  | Deposits and withdrawals tracked **on both chains**, stuck retryables, proof of reserves                        |
| **Tokens**     | `/tokens`, `/tokens/{address}/holders`, `/tokens/{address}/transfers`            | ERC-20 / 721 / 1155 metadata, supply, holders, bridge origin                                                    |
| **Accounts**   | `/user/{address}/balances`, `/user/{address}/activity`, `/user/{address}/bridge` | Balances (also at a past block), unified activity feed, bridge history                                          |

## Key concepts

### User transactions and spam

Elysium testnet carries a lot of automated traffic. `user_transactions` and `active_addresses` exclude:

* ArbOS system transactions (`tx_type = 0x6a`)
* Bridge-delivered transactions (`0x64` deposits, `0x69` retryable tickets, `0x68` redeems)
* Known spam: empty transfers to `0x…dead` and `pulse(bytes32)` heartbeats, flagged `is_spam = 1`

Raw transactions stay available: `/transactions` includes everything unless you pass `include_spam=false` or `include_system=false`.

### Bridge transfers

A transfer is identified on both chains:

| Direction                           | ID                  | Lifecycle                                                                                                                         |
| ----------------------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **Deposit** (HyperEVM → Elysium)    | `d:<message index>` | `initiated` (HyperEVM message) → `ticket_created` (retryable on Elysium) → `completed` (redeemed), or `redeem_failed` / `expired` |
| **Withdrawal** (Elysium → HyperEVM) | `w:<position>`      | `initiated` (`L2ToL1Tx` on Elysium) → `executed` (Outbox on HyperEVM)                                                             |

`route` tells how the asset moves:

| Route       | Asset                                                                                                                |
| ----------- | -------------------------------------------------------------------------------------------------------------------- |
| `native`    | HYPE, the gas token                                                                                                  |
| `canonical` | A HyperEVM ERC-20 bridged into Elysium (standard Arbitrum gateway)                                                   |
| `mirror`    | An Elysium-native token bridged out to HyperEVM (locked in an `ElysiumBridgeWallet`, minted as a mirror on HyperEVM) |

<Tip>
  `/bridge/transfers/{tx_hash}` accepts **any** hash of the journey: the HyperEVM transaction, the Elysium delivery transaction, the redeem transaction or the retryable ticket ID.
</Tip>

Retryable messages that move no asset (such as token registrations) are hidden by default; pass `include_messages=true` to include them.

### Proof of reserves

`/bridge/reserves` is refreshed every 15 minutes and checks the bridge invariants:

* **native**: HYPE held by the Bridge contract on HyperEVM ≥ net HYPE bridged into Elysium
* **canonical**: token balance of the HyperEVM gateway ≥ `totalSupply` of its Elysium representation
* **mirror**: Elysium token locked in its bridge wallet ≥ `totalSupply` of the mirror on HyperEVM

Pass `only_unbacked=true` to list only the tokens that break their invariant.

## Quick examples

<CodeGroup>
  ```bash Chain stats (spam excluded) theme={null}
  curl "https://api.hypedexer.com/elysium/testnet/stats" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```bash Track a bridge transfer theme={null}
  curl "https://api.hypedexer.com/elysium/testnet/bridge/transfers/0xYOUR_TX_HASH" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```bash Stuck retryables theme={null}
  curl "https://api.hypedexer.com/elysium/testnet/bridge/retryables?status=failed" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```bash Balances at a past block theme={null}
  curl "https://api.hypedexer.com/elysium/testnet/user/0xYOUR_ADDRESS/balances?block=400000" \
    -H "X-API-Key: YOUR_API_KEY"
  ```
</CodeGroup>

## Network

|                   |                                                             |
| ----------------- | ----------------------------------------------------------- |
| Chain ID          | `99801`                                                     |
| Settlement        | HyperEVM testnet (chain `998`)                              |
| Data availability | AnyTrust                                                    |
| Public RPC        | `https://elysium-testnet-rpc.hypedexer.com` (HTTPS and WSS) |
| Explorer          | `https://test-explorer.elysium.kinetiq.xyz`                 |
