Checking Transaction Journey Guide

This guide will help you to check the journey of a transaction through the Scroll network, how to inspect it via the /tx/journeys API, and interpret its lifecycle.

Architecture Summary

image

Diagram of Scroll transaction journey

ComponentRole
BackendSubmits transaction.
Monitoring ServiceTracks transaction progress and logs events.
Scroll Internal NodesHandle transaction validation and mempool logic.
Scroll SequencerOrders transactions into blocks.
Axiom LoggingReceives logs for external visibility/analysis.

Endpoint

POST https://venus.scroll.io/v1/tx/journeys

Request Example

curl -X POST "https://venus.scroll.io/v1/tx/journeys" \
-H "Content-Type: application/json" \
-d '{
"tx_hashes": [
"0xcf0982782692a521e6bcbf4f6c5d1db6ac1f2049b7c7304dd89a9522a61406f9"
]
}' | jq

Response Fields

FieldDescription
tx_hashTransaction hash queried.
current_statusFinal status (queued,pending,executed,dropped,reorged,replaced).
execution_statusResult of execution (successful,reverted,unknown,error).
first_seen_atFirst time the network detected this transaction.
last_updated_atMost recent status update time.
journeyDetailed list of state transitions for the transaction.

Current Status

StageDescription
queuedTransaction not yet executable, e.g. nonce gap or awaiting prior txs.
pendingTransaction valid and executable in mempool.
executedTransaction included in a block.
droppedTransaction removed due to expiration, mempool overflow, or invalid parameters.
reorgedTransaction was removed from the canonical chain after a chain reorganization.
replacedTransaction replaced by a new transaction (same sender & nonce, higher gas price).

Execution Status

StatusMeaning
successfulTransaction executed successfully and included in a block.
revertedTransaction failed during execution.
unknownTransaction not yet executed.
errorUnexpected error in query node. Should rarely occur.

Journey Field Example

Queued

{
"event_type": "queued",
"timestamp": "2025-04-10T09:55:29.73Z",
"node_type": "l2geth-bootnode-0",
"event_detail": "Pooled new future transaction (into non-executable queues)"
}

Pending

{
"event_type": "pending",
"timestamp": "2025-04-10T09:55:29.73Z",
"node_type": "l2geth-bootnode-0",
"event_detail": "Transaction promoted from future queue to pending"
}

Executed

{
"event_type": "executed",
"timestamp": "2025-04-10T09:55:31.02Z",
"node_type": "l2geth-bootnode-0",
"event_detail": "TX is included in a block"
}

Dropped

{
"event_type": "dropped",
"timestamp": "2025-04-12T15:33:23.142Z",
"node_type": "l2geth-bootnode-0",
"event_detail": "Discarding invalid transaction when adding the transaction"
}
  1. Queued: Transaction waiting for execution (e.g., nonce gap)
  2. Pending: Transaction ready for inclusion by Scroll Sequencer.
  3. Executed: Transaction included in a block.
  4. (Optional) Reorged: Transaction may get reorged based on network conditions.
  5. Dropped or Replaced: Transaction invalidated or replaced before execution.

Common Failure Reasons

Dropped:

  • Timeout: Stuck too long in queue.
  • Mempool full.
  • Invalid parameters (e.g., nonce too low, fee cap below block base fee).

Replaced:

  • Same nonce transaction with higher gas price replaces previous.

Reorged:

  • Block containing tx removed due to L2 chain reorganization.
Stay up-to-date on the latest Scroll Developer news
Roadmap updates, virtual and live events, ecosystem opportunities and more
Thank you for subscribing!

Resources

Follow Us