Skip to main content
Version: Endpoint V2 Docs

LayerZero Endpoint

The LayerZero Endpoint is an immutable smart contract that implements a standardized interface for Omnichain Applications (OApps) to manage security configurations and seamlessly send and receive messages.

Developers can see the latest chains LayerZero supports in Endpoint Addresses.

Sending Endpoint

The Endpoint exposes an interface for the OApp contract to use to send messages. When a caller invokes _lzSend within an OApp's child contract:

  1. OApp Config: the Endpoint enforces each OApp's unique messaging configuration specified by the OApp owner. The configured MessageLib controls how the Message Packet is generated and emitted.

  2. Message Emission: Once the Packet has been constructed using the owner's configuration, the message is emitted via the PacketSent event.

Sending Endpoint Light Sending Endpoint Dark


Receiving Endpoint

The configured DVNs within the Security Stack listen for the packet and verify the PayloadHash in the destination MessageLib selected by the OApp:

Receiving Endpoint Light Receiving Endpoint Dark


Once the message has fulfilled the OApp's configured Security Stack, any caller (e.g., Executor) can commit the verified packet nonce to the destination Endpoint and execute the corresponding message via lzReceive for the receiving application.

The default configuration includes a default Executor to automatically handle this permissionless call for convenience.

Developers can easily identify a chain's Endpoint via a unique Endpoint ID used for message routing.