Elysium batch history (DAS)
This product indexes signed Elysium transactions from sequencer batches, using the data availability layer. A batch is a group of sequencer messages posted to HyperEVM; its sequence number (seq) orders batches independently of L2 block numbers. Payload integrity is checked against the posted data hash before indexing.
Endpoint and plans: Elysium RPC endpoint.
Live since 2026-11-08. The paths below answer through Triport production; D2 (2026-11-08) confirmed authentication and plan enforcement on every path below.
| Surface | Path | Reference |
|---|---|---|
| Batch list | GET /v1/elysium/batches | Batches |
| Batch details and transactions | GET /v1/elysium/batches/{seq}?full=1 | Batches |
| Address history | GET /v1/elysium/wallet/{address}/history | Wallet history |
| Batch WebSocket | /v1/elysium/batches/stream | Stream and recovery |
| Coverage and freshness | GET /v1/elysium/das/status | Status |
Use base URL https://triport.io and X-API-Key: $TRIPORT_API_KEY; the required scope is elysium:das for both REST and the batch stream. This scope is separate from elysium:rpc and elysium:ws. A key with all-network access includes elysium:das. A key with an explicit scope list without it gets HTTP 403 {"error":"scope_missing","message":"this key has no elysium:das scope"} on every REST path. REST is available from Free. Batch list, address history and status share category elysium_das at 10 / 25 / 60 / 120 / 120 RPS (Free / Basic / Pro / Business / Enterprise); a single batch (/v1/elysium/batches/{seq}) is category elysium_das_batch at 2 / 4 / 8 / 15 / 15 RPS (BE12, 2026-11-08; see limits). The stream needs Pro, and Free/Basic get HTTP 403 tier_insufficient. Honor HTTP 429 and Retry-After. Do not use the cross-chain /v1/wallet route for this product.
Coverage and freshness
The archive contains signed sequencer transactions since genesis (batch 1). It is not complete account activity. Each successful REST response and the stream's hello frame includes coverage, with complete: false. Always inspect indexed_through and pending_batches as well as the status endpoint's seq_gaps. The newest indexed batch marker alone does not prove continuity through earlier batches.
Freshness follows batch cadence, for confirmed batches posted to HyperEVM, plus indexing time. This is not real time and not a mempool feed. A quiet interval can reflect no new parent posting. Use RPC head reads and receipt polling, for current L2 activity. A new L2 receipt can appear before its batch enters this index.
| Exclusion | What it means |
|---|---|
| l1_to_l2_messages | Deposits and other parent-chain messages are counted per batch only; they are not indexed per address. |
| internal_calls | Internal value transfers and contract creations inside execution are absent. Only top-level creating transactions appear. |
| execution_status | No success/revert, gas used or logs. Each indexed transaction has execution_status: "not_available". Use eth_getTransactionReceipt for execution results. |
| unconfirmed | Transactions accepted by the sequencer but not yet posted in a batch are absent. |
Illustrative coverage object (synthetic values; explanatory strings match the API):
{
"source": "sequencer_batches",
"complete": false,
"includes": [
"signed transactions posted in Elysium sequencer batches since genesis (batch 1)",
"per transaction: sender, recipient, contract address for a creating transaction, nonce, value, input selector"
],
"excludes": [
"l1_to_l2_messages: deposits and other messages from the parent chain are counted per batch (l1_to_l2_messages) but not indexed per address",
"internal_calls: value transfers and contract creations made inside contract execution",
"execution_status: success or revert, gas used and logs are not part of batch data",
"unconfirmed: transactions accepted by the sequencer but not yet posted in a batch"
],
"from_batch_seq": 1,
"indexed_through": {
"batch_seq": 1,
"l2_block": 9,
"posted_at": "2026-11-08T00:00:00Z",
"posted_at_unix": 1794096000
},
"pending_batches": 0
}from_batch_seq is 1. indexed_through is null before any indexed batch; its l2_block can also be null. posted_at uses UTC RFC3339; posted_at_unix is seconds since the Unix epoch. pending_batches counts unfinished batches; complete stays false even when it is zero.
Errors
The API uses HTTP errors with an error string and optional message. It is not JSON-RPC. Authentication and tier rejection happen before the product handler. Product errors include:
| HTTP | error | Meaning |
|---|---|---|
| 400 | invalid_limit / invalid_offset / invalid_from_seq / invalid_before_seq / invalid_cursor | Correct the parameter or use the previous response's cursor. |
| 400 | websocket_required | The stream requires a WebSocket upgrade. |
| 404 | not_found | Unknown route or unknown batch; malformed address paths also return 404. |
| 405 | method_not_allowed | Use GET. |
| 503 | das_index_unavailable / das_index_error | Index unavailable or unreadable; retry with bounded backoff. |
| 503 | stream_capacity | Stream capacity reached; honor Retry-After. |
A missing batch, pending status, or empty address page does not establish that no transactions occurred. Preserve coverage alongside exported history.
How batch certificates and the data availability server work on Elysium: Elysium data availability.
Terms on this page: Sequencer · Mempool · JSON-RPC.