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.

SurfacePathReference
Batch listGET /v1/elysium/batchesBatches
Batch details and transactionsGET /v1/elysium/batches/{seq}?full=1Batches
Address historyGET /v1/elysium/wallet/{address}/historyWallet history
Batch WebSocket/v1/elysium/batches/streamStream and recovery
Coverage and freshnessGET /v1/elysium/das/statusStatus

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.

ExclusionWhat it means
l1_to_l2_messagesDeposits and other parent-chain messages are counted per batch only; they are not indexed per address.
internal_callsInternal value transfers and contract creations inside execution are absent. Only top-level creating transactions appear.
execution_statusNo success/revert, gas used or logs. Each indexed transaction has execution_status: "not_available". Use eth_getTransactionReceipt for execution results.
unconfirmedTransactions 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:

HTTPerrorMeaning
400invalid_limit / invalid_offset / invalid_from_seq / invalid_before_seq / invalid_cursorCorrect the parameter or use the previous response's cursor.
400websocket_requiredThe stream requires a WebSocket upgrade.
404not_foundUnknown route or unknown batch; malformed address paths also return 404.
405method_not_allowedUse GET.
503das_index_unavailable / das_index_errorIndex unavailable or unreadable; retry with bounded backoff.
503stream_capacityStream 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.

Elysium overview · Sending transactions · Bridge

Terms on this page: Sequencer · Mempool · JSON-RPC.