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
User/DAppSubmits transaction.
Monitoring ServiceLogs events and tracks transaction progress
Scroll Internal NodesPeer nodes supporting network operations such as bootnodes or RPC nodes for internal backend services.
Scroll SequencerOrders transactions into blocks.
HTTP APIExternal access interface for monitoring service

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": [
"0xf8a92194cb21dcfaa2efe3230c5d5c80f7e71361575eff33cafa6ebc9eb34357"
]
}' | jq

Response Fields

FieldDescription
tx_hashTransaction hash queried.
current_statusFinal status (queued,pending,executed,dropped,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.
replacedTransaction replaced by a new transaction (same sender and nonce, with 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-06-19T17:22:23.27Z",
"node_type": "l2geth-bootnode-0",
"event_detail": "Transaction added to future queue (initial processing - will be promoted to pending if nonce is correct and all validity checks pass, or wait for conditions to be met)"
}

Pending

{
"event_type": "pending",
"timestamp": "2025-06-19T17:22:23.27Z",
"node_type": "l2geth-bootnode-0",
"event_detail": "Transaction promoted from future queue to pending pool (passed all checks: correct nonce sequence, sufficient balance including L1 data fee, gas limit compliance, and account pending limit)"
}

Executed

{
"event_type": "executed",
"timestamp": "2025-06-19T17:22:23.299Z",
"node_type": "l2geth-mpt-signer-1",
"event_detail": "Transaction successfully included in a block and executed on-chain"
}

Dropped

{
"event_type": "dropped",
"timestamp": "2025-06-19T17:22:23.352Z",
"node_type": "l2geth-bootnode-2",
"event_detail": "Transaction rejected (validation failed - insufficient funds, unsupported transaction type, or other validation errors)"
}
  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. 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.
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