Skip to article content Layerzeroscan

Layerzeroscan message status distinguishes source finality from verification and destination execution

Layerzeroscan message status shows whether a LayerZero message awaits source confirmations, message verification, or destination execution, helping you distinguish pending processing from a failure requiring investigation. Read the overall status alongside its stage fields: the same INFLIGHT label can cover several different waits. Source success confirms only the sending side. For a transfer awaiting completion, inspect the incomplete stage’s detailed record for a transaction, configuration error, or execution failure.

The short version: In LayerZero V2, a verification quorum still needs destination-chain commitment before receive execution can proceed.

Waiting and recovery decisions

A pending status describes an unfinished stage, while an execution failure or stored payload identifies a different condition with its own evidence and, where applicable, recovery action.

The field carrying a failure determines the investigation: a failed verification commit concerns the sealer transaction, while a failed destination execution concerns the receiving call.


Message summaries and component records

The LayerZero V2 Scan API separates the overall message summary in the name field of the status object from the source, verification, and destination status fields. Each field answers a different question about progress. A SUCCEEDED value applies to its particular component, so interpret the label together with its full field path.

An INFLIGHT message can await source confirmations, verification, or execution. The component records identify the outstanding stage. CONFIRMING narrows the wait to finality for a submitted destination transaction. DELIVERED reports delivery and execution on the destination chain.

The message GUID ties the source transaction, verifier records, and any available destination transaction together. A hash search can return message records associated with that transaction, while GUID lookup identifies the specific message. Keep the pathway’s sender and receiver contracts alongside the GUID when reconciling details across chains.


Does source confirmation mean a transfer has finished?

Source confirmation establishes finality for the sending transaction under its configured confirmation window; destination execution remains a separate result. The source.status field follows the source transaction through discovery and confirmation. WAITING means the transaction has not yet appeared on-chain, while VALIDATING_TX means Scan has found it but awaits the configured block confirmations.

The ordinary source sequence progresses from WAITING through VALIDATING_TX to SUCCEEDED , after which Decentralized Verifier Networks (DVNs) begin verification. Compare source.tx.blockConfirmations with the applicable configuration for this message’s pathway and direction when investigating this wait. A transaction hash identifies a transaction; its presence alone does not establish either source finality or destination completion.

For a standard Omnichain Fungible Token (OFT), source.status at VALIDATING_TX or later means the source token debit has occurred. An OFT implementation can debit tokens through burning or locking. The same source stage also means the source transaction has emitted PacketSent . A debited source balance therefore cannot establish that destination credit has completed.

DVN quorum and destination commit

DVNs attest to the message, and a separate commit records their verifications on the destination blockchain; the aggregate result and individual verifier entries describe different parts of this work.

Quorum and commit records

DVN quorum

The aggregate verification.dvn.status field tracks quorum, with WAITING indicating outstanding verifier submissions. The QUORUM_REACHED status means the required DVN quorum exists and awaits commit. SUCCEEDED means the destination chain has recorded the verifications. Individual completed submissions therefore need interpretation against the aggregate result.

Commit transaction

The verification.sealer.status field tracks commitment: WAITING indicates a pending commit, while VALIDATING_TX indicates submission of the commit transaction. SUCCEEDED confirms commitment, while FAILED reports a failed commit transaction.

Individual verifier entries

Each entry in verification.dvn.dvns[address].status describes one verifier. WAITING means it has not submitted verification; VALIDATING_TX means it has submitted a verification transaction. The entry shows SUCCEEDED once verification confirms, FAILED if verification fails, or WAITING_FOR_ULN_CONFIG while awaiting ULN configuration.

A failed commit has diagnostic details under verification.sealer.failedTx , where entries can pair txHash with txError . Keep this evidence separate from destination execution failures: the unsuccessful action here is committing verification.


Transaction-hash delivery

WAITING_FOR_HASH_DELIVERED describes internal transaction-hash delivery processing in the source status field. The label alone does not establish a failed send or a need to resend. Check the original transaction before initiating another transfer. This internal processing wait differs from the configured confirmation wait VALIDATING_TX describes. Neither label, on its own, establishes that the destination application has executed the message.

Which configuration governs a blocked message?

The application’s active configuration for the specific pathway and direction governs the message’s verification requirements and libraries. Inspect config.errorMessage when the record reports a configuration problem. The accompanying config.error and config.dvnConfigError fields help locate the reported issue.

The application’s active settings combine its explicit choices with applicable defaults and can differ between opposite directions of a pathway. The Default Checker describes default pathway settings; those defaults alone do not establish every application’s active requirements. For LayerZero V2, compare the sending and receiving libraries alongside config.inboundConfig and config.outboundConfig , including their confirmation requirements.

The security stack distinguishes required DVNs from optional DVNs and their threshold. Every required verifier must verify, while the optional set contributes according to its threshold. A required DVN ceasing verification can halt the pathway before destination execution, a different condition from a receiving contract reverting after successful verification.

A Dead DVN is a placeholder for an inactive default configuration. The Omnichain Application (OApp) owner must configure the pathway before using it. Another transfer does not change the application’s settings.


Pathway filters and investigation scope

Pathway queries isolate messages belonging to a particular messaging connection, and a status filter narrows that connection to the condition under investigation. For stored payloads, use status=PAYLOAD_STORED . That selection targets messages awaiting manual destination execution, rather than all messages still in flight.

Layerzeroscan message status: Pathway filters and investigation scope

View full-size image

The returned pathway ID identifies the connection for a pathway query. LayerZero endpoint IDs identify source and destination endpoints and have no relation to blockchain chain IDs. The sender and receiver addresses preserve the application context. A query with a different direction or contract pair can describe different messaging activity. Check config.ulnSendVersion and config.ulnReceiveVersion when matching a record to its library documentation.

The pathway method accepts a nonce filter and ISO-formatted start and end dates, with a documented default limit of 100. The response supplies nextToken for further pages when available. Account for pagination before treating an initial result set as the complete collection of stored or failed messages.


Record timestamps

The created and updated fields provide timestamps on the message record; those values alone do not establish a delivery deadline. Source and destination transaction objects separately expose blockTimestamp . Keep record timestamps distinct from transaction timestamps when comparing activity. Elapsed time does not reveal whether confirmations, verification, or execution remain outstanding. The status field for the affected component supplies that distinction.

Destination outcomes and specialized statuses

The destination.status field describes execution of the receiving callback, lzReceive , and distinguishes waiting, submitted, successful, failed, and simulated-revert states. WAITING indicates pending execution, while VALIDATING_TX indicates a submitted execution transaction awaiting confirmation. SUCCEEDED confirms execution on the destination chain.

FAILED reports an actual destination execution failure. SIMULATION_REVERTED reports a reverted lzReceive or lzCompose simulation, so it does not by itself confirm a failed on-chain transaction. PAYLOAD_STORED identifies a stored payload requiring manual execution. The destination.payloadStoredTx and destination.failedTx fields provide transaction details relevant to those conditions.

Additional destination actions have separate fields: destination.nativeDrop.status tracks an optional native token drop, and destination.lzCompose.status tracks optional composition. N/A means the respective action does not apply to the message. A completion check involving either action needs its own result, beyond the primary receive status.

APPLICATION_BURNED and APPLICATION_SKIPPED are top-level statuses indicating the receiving application burned or skipped the message, respectively. The lzRead command errors UNRESOLVABLE_COMMAND and MALFORMED_COMMAND also have dedicated labels. The destination status RESOLVED_PAYLOAD_SIZE_NOT_PAID identifies an unpaid resolved-payload-size fee for lzRead.

Layerzeroscan message status: the short answers

Do I need to resend a transfer for WAITING_FOR_HASH_DELIVERED?

WAITING_FOR_HASH_DELIVERED identifies internal transaction-hash processing in the source status field. It does not instruct the sender to repeat the transfer or identify a destination execution failure. The existing transaction and the message’s stage fields remain the relevant records.

What does WAITING_FOR_ULN_CONFIG mean for a DVN?

WAITING_FOR_ULN_CONFIG means an individual DVN is waiting for ULN configuration. It identifies a configuration dependency in that verifier’s record, distinct from a verification transaction awaiting confirmation. Interpret it alongside the application’s applicable verification settings; another DVN succeeding does not establish successful verification by this participant.

Can an OFT debit occur while the source status still shows VALIDATING_TX?

For a standard Omnichain Fungible Token (OFT) message, VALIDATING_TX or a later source status indicates a source-side burn or lock and a PacketSent event. The required source confirmations can still be outstanding during VALIDATING_TX. This state establishes the source debit, while destination credit needs destination-side evidence.

Which status filter finds stored payloads within a pathway?

The pathway message query accepts PAYLOAD_STORED as a status filter. It selects records awaiting manual execution within that pathway. Status filtering groups messages for inspection; it does not execute their stored payloads or change the underlying application configuration. The same query also accepts BLOCKED and FAILED as status values.

Will the reverse direction use identical confirmation settings?

The reverse direction can use a different verification configuration, including its confirmation requirements. LayerZero applications configure verification by pathway and direction, so settings for one direction do not establish the other’s requirements. The configuration associated with the message’s actual source and destination governs that direction.

- last updated