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:
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.
Message Emission: Once the Packet has been constructed using the owner's configuration, the message is emitted via the
PacketSent
event.
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:
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.