Sunlit strategy table with pale stone, greenery, and a calm abstract digital asset risk dashboard.
Protocols

Executor Interface and Execution Logic Standard

Specification analysis of the IExecutor interface, detailing the contract responsible for delivering verified messages to OApps via lzReceive. Covers gas accounting, failure-and-retry patterns, and the operational and security implications for Executor operators and omnichain application builders.
introduction
EXECUTION LAYER CONTRACT

What the Executor Interface Defines

The IExecutor interface standardizes the off-chain execution of verified LayerZero messages, defining the gas accounting, failure handling, and retry logic that determines whether an omnichain application's message is delivered on the destination chain.

The IExecutor interface is the canonical contract specification for the off-chain service responsible for calling lzReceive on a destination OApp after a message has been verified by the configured Decentralized Verifier Networks (DVNs). This standard defines the commit and revert function signatures that govern the lifecycle of a message execution attempt, creating a clear separation between the verification of a packet's proof and the on-chain transaction that delivers its payload. For OApp builders, the Executor is not an abstract concept but a specific address authorized to spend a pre-paid gas limit on behalf of their application, making the interface's gas accounting logic a critical operational dependency.

The standard's core technical challenge is handling execution failure without breaking LayerZero's exactly-once delivery guarantee. When an Executor's lzReceive call reverts—due to an OApp's custom logic, an out-of-gas error, or a misconfigured destination contract—the interface mandates a revert path that stores the failed message for a future retry rather than dropping it. This introduces a state machine where messages can be STAGED, EXECUTING, or EXECUTABLE, and it forces OApp developers to design their lzReceive implementations to be idempotent and to handle the possibility of receiving a message that previously failed. The Executor's retry logic, including who pays for the gas on subsequent attempts, is a critical parameter that directly impacts the liveness of cross-chain applications during periods of network congestion or contract misconfiguration.

For teams operating Executors or integrating with them, the interface's gas accounting model is a primary source of operational risk. The Executor must accurately estimate the gas required for the destination lzReceive call, and the OApp or its users must pre-fund this execution via the _lzSend options. A mismatch between the estimated and actual gas cost can lead to a permanent failure loop if the Executor lacks a top-up mechanism, effectively bricking the message path. Chainscore Labs can review an OApp's execution options configuration and lzReceive failure modes to identify gas griefing vectors and ensure that retry logic aligns with the application's liveness requirements.

EXECUTION INTERFACE & LOGIC

IExecutor Standard at a Glance

Operational impact of the IExecutor standard on message execution, gas accounting, and failure handling for Executor operators and OApp teams.

AreaWhat changesWho is affectedAction

Execution Interface

Formalizes the lzReceive invocation logic, gas stipend handling, and retry mechanism for message delivery.

Executor operators, OApp developers

Audit Executor client logic against the canonical IExecutor interface specification.

Gas Accounting

Defines how gas is accounted for during lzReceive calls, including stipends and the handling of out-of-gas errors.

Executor operators, OApp developers

Review gas estimation logic to prevent griefing vectors where a malicious OApp consumes all provided gas.

Failure & Retry Logic

Specifies the behavior when lzReceive reverts, including nonce management and conditions for retry or message storage.

Executor operators, OApp developers

Verify that retry logic does not create unbounded loops or allow replay of failed messages under altered state.

Executor Compensation

Establishes the standard for how Executors are compensated for gas costs, potentially via airdrops or direct payment.

Executor operators

Model profitability under the standard's compensation framework to ensure sustainable Executor operations.

OApp Compliance

Requires OApps to implement ILayerZeroReceiver and handle lzReceive in a manner compatible with Executor expectations.

OApp developers, protocol integrators

Conduct an integration review to ensure lzReceive implementations are compliant and do not cause unexpected reverts.

Liveness Guarantees

The standard's retry and failure model directly impacts the liveness of message delivery for all dependent applications.

OApp developers, bridge operators

Assess the liveness assumptions of your application against the Executor's failure-handling specification.

Security Model

Shifts the trust assumption from a single relayer to a standardized execution interface that can be operated by multiple parties.

Risk teams, protocol architects

Re-evaluate the trust model for message execution, distinguishing between verification (DVNs) and execution (Executors).

technical-context
EXECUTOR INTERFACE

Execution Logic: lzReceive, Gas, and Failure

How the IExecutor interface mandates lzReceive invocation, gas accounting, and retry behavior for reliable cross-chain message execution.

The IExecutor interface standard defines the exact logic for delivering a verified LayerZero message to its destination OApp. The core function, lzReceive, is called by an Executor on the destination chain, passing the _origin, _guid, _message, _executor, and _extraData parameters. The OApp's implementation of lzReceive must enforce that only the authorized Endpoint can invoke it, and it must handle the message payload atomically. This is the single point of execution that bridges the protocol's verification phase with application-layer state changes.

Gas accounting is a critical operational concern embedded in this standard. The Executor is responsible for providing sufficient gas to the lzReceive call, based on the options set by the sender (e.g., msg.value for the destination's native gas token). If the call reverts due to an out-of-gas error or an application-level failure, the message enters a failure state. The Executor is then expected to retry the delivery, but the standard does not mandate a specific retry strategy, creating a design space where Executors can implement exponential backoff, gas bumping, or manual intervention. This places a burden on OApp developers to design lzReceive logic that is gas-efficient and resilient to re-execution.

The failure-and-retry model introduces a liveness risk that OApp teams must explicitly address. A message that consistently fails (e.g., due to a breaking state change on the destination chain) can be permanently stuck unless the Executor or a permissioned role can force-fail it or the OApp implements a fallback. Chainscore can review OApp lzReceive implementations for gas griefing vectors, non-idempotent execution paths, and missing failure recovery mechanisms, ensuring that application logic aligns with the Executor's operational behavior.

IMPACT ANALYSIS

Who Is Affected by the Executor Standard

Executor Operators

Executor operators are the most directly affected group. The IExecutor standard defines the exact interface for lzReceive invocation, gas accounting, and compensation logic that operators must implement.

Key impacts:

  • Must implement the canonical lzReceive entry point with correct payload forwarding to the destination OApp.
  • Gas estimation and reimbursement logic must align with the standard's accounting model to avoid operational losses.
  • Failure-and-retry handling becomes a core operational requirement, not an optional feature.
  • Operators competing in a permissionless execution market must ensure their implementations match the expected interface to be selected by OApps.

Action items:

  • Audit your execution client against the final IExecutor interface specification.
  • Test gas accounting edge cases, especially for cross-chain messages with variable destination gas costs.
  • Monitor retry behavior to ensure liveness without creating griefing vectors.
implementation-impact
EXECUTION RELIABILITY

Key Implementation and Integration Impacts

The IExecutor standard defines how messages are delivered to OApps, how gas is accounted for, and how failures are handled. These impacts affect Executor operators, OApp developers, and risk teams.

01

Gas Accounting and Griefing Vectors

The standard's gas accounting logic, which governs how Executors are compensated for lzReceive calls, introduces a critical attack surface. If the accounting mechanism does not correctly bound the cost of a failed transaction, an Executor can be forced to spend more on gas than they are compensated for, leading to a denial-of-service. OApp teams must ensure their lzReceive implementation does not create unbounded gas consumption loops. Chainscore can review the gas accounting logic in your OApp and Executor client to identify and mitigate griefing vectors.

02

Failure-and-Retry Handling Logic

The specification for failure-and-retry handling is a critical operational component. It dictates the behavior when an lzReceive call reverts, including how the message is stored, the retry delay, and who is authorized to trigger a retry. A flawed implementation can lead to permanently stuck messages or allow a malicious actor to front-run a retry with a state that causes a repeated revert, effectively censoring the message. Teams operating Executors must implement this logic with extreme care to ensure liveness without opening new attack vectors.

03

OApp `lzReceive` Implementation Constraints

The IExecutor standard imposes strict requirements on the lzReceive function within an OApp. The function must be permissioned so only the Endpoint can call it, and it must handle all failure modes gracefully without causing an unexpected revert that could permanently lock the message. Developers must avoid complex logic or external calls that are not strictly necessary within this critical path. An audit of the lzReceive function against the IExecutor specification is essential for any OApp to prevent message execution failures.

04

Executor Operator Configuration and Monitoring

Executor operators must configure their clients to precisely match the on-chain IExecutor interface, including correct gas estimation parameters and retry logic. Operational monitoring is crucial to detect when a specific OApp's lzReceive function consistently fails, as this can indicate a bug in the OApp or a targeted griefing attack. Operators need alerting on stuck message queues and should have a clear process for manual intervention if the automated retry logic is insufficient. Chainscore can help establish these operational runbooks.

05

Integration Testing for Execution Edge Cases

Standard integration tests are insufficient for the IExecutor interface. Teams must build a dedicated test suite that simulates out-of-gas scenarios, reverts at specific points within lzReceive, and concurrent retry attempts. This testing must verify that the Executor's accounting remains correct, that messages are not lost or duplicated, and that the retry mechanism behaves as expected under adversarial conditions. A failure to test these edge cases is a leading cause of mainnet message execution failures.

EXECUTOR INTERFACE AND EXECUTION LOGIC STANDARD

Execution Logic Risk Matrix

Evaluates the operational and security risks introduced by the IExecutor interface, focusing on lzReceive invocation, gas accounting, and failure-and-retry handling for Executor operators and OApp teams.

Risk AreaFailure ModeSeverityAffected ActorsMitigation / Action

Gas Accounting

Incorrect gas estimation or stipend configuration causes lzReceive to revert with an out-of-gas error.

High

Executor Operators, OApp Developers

OApp teams must profile lzReceive gas usage across all destination chains and set options accordingly. Executors should monitor gas usage vs. limits.

Retry Logic

A malicious or buggy OApp consistently reverts in lzReceive, causing infinite retry loops that waste Executor resources.

Medium

Executor Operators

Implement a maximum retry count and a backoff strategy in the execution service. Monitor for messages stuck in a retry loop.

Failure Handling

lzReceive reverts due to application logic, but the Executor fails to emit a proper failure event or store the packet for later retrieval.

Medium

OApp Developers, Wallets, Exchanges

OApps must not rely on the Executor as the sole source of failure notification. Implement independent monitoring of the Endpoint for undelivered messages.

Griefing Vector

An attacker submits execution transactions with just enough gas to trigger lzReceive but not enough to complete it, repeatedly forcing the Executor to pay for failed state transitions.

Medium

Executor Operators

Require a bonded execution model or minimum gas price for execution requests. Simulate transactions locally before submission.

Upgrade Incompatibility

A change to the IExecutor interface or lzReceive function signature breaks existing Executor client software.

High

Executor Operators, OApp Developers

Executor operators must track the canonical IExecutor specification and upgrade clients before new Endpoint versions are widely adopted. OApps should verify Executor compatibility.

Compensation Shortfall

The fee paid by the user for execution is less than the actual gas cost on the destination chain, especially during fee volatility.

Medium

Executor Operators

Implement a dynamic fee model that accounts for destination chain gas prices. Monitor profitability per path and pause unprofitable routes.

Reorg Exposure

A chain reorg invalidates the verified state of a message after the Executor has already submitted an execution transaction.

Low

Executor Operators, Bridges

Executors should wait for a configurable number of block confirmations on the source chain before executing on the destination. Verify finality guarantees per chain.

EXECUTION LAYER PREPARATION

Executor Operator Readiness Checklist

A technical readiness checklist for teams operating an Executor client that implements the IExecutor interface. This list helps operators validate correct `lzReceive` handling, gas accounting, and failure-mode behavior before integrating with live OApp message flows.

Confirm that your Executor client correctly implements the canonical IExecutor interface, specifically the function signature and access control for lzReceive. The Endpoint contract will call this function to deliver a verified packet. An incorrect signature or missing modifier will cause a revert, permanently blocking message execution for the destination OApp.

  • What to check: The exact function selector, parameter ordering, and the onlyEndpoint or equivalent access-control modifier.
  • Why it matters: A mismatch here means your Executor will never successfully process a message, leading to liveness failures for any OApp that has selected it.
  • Readiness signal: A successful testnet transaction where the canonical Endpoint contract calls your Executor's lzReceive and the call does not revert.
Chains We Build On

Looking to build on a specific blockchain?

We build smart contracts, DeFi applications, wallets, tokenization platforms, and blockchain infrastructure across the major ecosystems teams choose today. That includes Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Solana, Sui, Aptos, Hedera, Stellar, and NEAR, with support for additional EVM and non-EVM networks based on your product requirements.

EVM ecosystems

  • Ethereum logo
    Ethereum
  • Arbitrum logo
    Arbitrum
  • Optimism logo
    Optimism
  • Polygon logo
    Polygon
  • Avalanche logo
    Avalanche
  • Cronos logo
    Cronos

Non-EVM ecosystems

  • Solana logo
    Solana
  • Sui logo
    Sui
  • Aptos logo
    Aptos
  • Hedera logo
    Hedera
  • Stellar logo
    Stellar
  • NEAR logo
    NEAR

Additional ecosystems

  • Polkadot logo
    Polkadot
  • Cosmos logo
    Cosmos
  • TON logo
    TON
  • Cardano logo
    Cardano
  • Algorand logo
    Algorand
  • Tempo logo
    Tempo

Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.

EXECUTOR OPERATIONS AND INTEGRATION

Frequently Asked Questions

Common questions from Executor operators and OApp development teams about the IExecutor interface, gas accounting, and failure-mode handling.

The Executor is responsible for calling lzReceive on the destination Endpoint contract once a message packet has been verified by the selected Decentralized Verifier Networks (DVNs). The Executor handles gas accounting, ensures the transaction is executed with the parameters specified by the OApp, and manages retries in case of delivery failure. It does not perform any verification itself; it acts on the verification results committed by the DVNs.

Trusted by Industry Leaders

Delivering blockchain solutions for 5+ years.

We have partnered with 50+ leading DeFi protocols, NFT ecosystems, and fintech innovators to build secure, scalable, and capital-efficient blockchain products.

Selected Partners & Clients

ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
“I've been working with Chainscore Labs for last 3+ years, they've consistently delivered with strong ownership across multiple projects. The team is reliable and detail-oriented.”
L
Lee Erswell
CEO, Telos Foundation
how to get started

How to get started?

If you're looking for blockchain integration, ChainScore Labs has 5+ years of experience helping teams build and integrate exchanges, wallets, smart contracts, tokenization solutions, and protocol-connected products, we can help you choose the right path, integrate securely, and get to production faster. Our team consists of experienced blockchain developers and architects who can help you with your blockchain integration needs.

01

Exploration & Strategy

Define your product goals and choose the right blockchain architecture for your use case.

02

Architecture & Design

Design the smart contracts, tokenomics, and security parameters of your system.

03

Development & Integration

Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.

04

Security & Launch

Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.

Start a build

Need a blockchain engineering team?

Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.