Skip to main content
The LayerZero Scan API lets you programmatically look up crosschain messages and transactions. You can search by message ID, transaction hash, GUID, wallet address, or OApp address. Results include message state, source and destination transaction details, DVN verification status, and pathway configuration. Use it to track bridging activity, check message progress, or feed LayerZero data into your own dashboards.

Available Methods

The API exposes endpoints under a versioned path (e.g., /v1/), including:
  • /messages/latest
    Get the most recent messages.
  • /messages/pathway/{pathwayId}
    Retrieve messages associated with a specific pathway.
  • /messages/tx/{tx}
    Lookup messages using a transaction hash.
  • /messages/status/{status}
    List messages filtered by their current status.
  • /messages/month/{date}
    Get messages or statistics for a given month.
  • /messages/oapp/{eid}/{address}
    Fetch messages by endpoint ID and OApp address.
  • /messages/guid/{guid}
    Lookup messages by their unique GUID.
  • /messages/wallet/{srcAddress}
    Retrieve messages initiated by a specific wallet address.
  • /openapi
    Access the full OpenAPI specification for further integration details.
For interactive testing, refer to the Swagger UI for your network:

Response status reference

Each message returned by the API has status fields at multiple levels: a top-level message status, and sub-statuses for the source, verification, and destination stages. These tell you exactly where a message is in its lifecycle. For a high-level overview of what each message status means and how to debug it, see Message Statuses Overview.

Message status

The status.name field on each message object:

Source status

The source.status field tracks the source transaction through finality:

Verification status

The verification.dvn.status field tracks DVN quorum progress: The verification.sealer.status field tracks the commit (sealing) of DVN verifications on the destination chain: Individual DVN statuses are under verification.dvn.dvns[address].status:

Destination status

The destination.status field tracks lzReceive execution on the destination chain: The destination.nativeDrop.status field tracks native token drops: The destination.lzCompose.status field tracks composed message execution:

Checking transaction finality

To check whether a source transaction has reached finality, query the message by transaction hash and look at source.status:
The source.status field progresses as:
  • VALIDATING_TX: The transaction has been found on-chain but the configured block confirmations have not been reached yet. DVNs will not begin verification until this completes.
  • SUCCEEDED: The required confirmations have passed. The transaction is finalized and the message is progressing through verification and execution.
For OFTs, once source.status is VALIDATING_TX or later, the token debit (burn or lock) has occurred and the PacketSent event has been emitted. See OFT atomicity for more detail.