Boundless: Cross Chain
← Back to overview
Current packaged LayerZero path

Add Boundless-DVN to the enforced verification path in one tx.

This page covers the LayerZero implementation surface available today. Exact values depend on your OApp, route, and current DVN set. LayerZero calls this an optional DVN in config. With optionalDVNThreshold = 1, Boundless-DVN becomes part of the enforced verification path while your existing DVNs stay in place. We walk it together on a 20-minute call and hand you a ready-to-sign Forge script.

Illustrative alpha walkthrough. Code + addresses below are reference shapes for the current LayerZero packaging, not a self-service integration, and not ready for production use yet. If this fits the problem you're solving, reach outand we'll send a config tailored to your OApp.
1Get the DVN address
2Call setConfig
3Verify on testnet

1. Grab the current destination-side addresses.

Boundless-DVN contracts are deployed per destination chain for the current LayerZero path. We publish the live testnet addresses so you don't have to deploy anything yourself.

Ethereum Sepolia
eid 40161
live testnet
Base Sepolia
eid 40245
live testnet
Mainnet routes
corridor by corridor
shared during integration review

2. Update your ULN config.

LayerZero V2 stores a DVN config per (OApp, library, remote EID). You update the receiveLib config on each destination chain your OApp uses.

// --- Solidity (Foundry/Forge script) ---
import { ILayerZeroEndpointV2 } from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
import { SetConfigParam } from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol";

struct UlnConfig {
    uint64 confirmations;
    uint8 requiredDVNCount;
    uint8 optionalDVNCount;
    uint8 optionalDVNThreshold;
    address[] requiredDVNs;
    address[] optionalDVNs;
}

address constant BOUNDLESS_DVN = 0x0000_0000_0000_0000_0000_0000_0000_9AF2;
address constant LZ_LABS_DVN  = 0x589D_1E4B_5ECB_C0B8_5BE8_1234_5678_5BE8; // your current required DVN

address[] memory reqs = new address[](1); reqs[0] = LZ_LABS_DVN;
address[] memory opts = new address[](1); opts[0] = BOUNDLESS_DVN;

UlnConfig memory cfg = UlnConfig({
    confirmations: 15,
    requiredDVNCount: 1,
    optionalDVNCount: 1,
    optionalDVNThreshold: 1,           // 1-of-1 optional DVNs must verify
    requiredDVNs: reqs,
    optionalDVNs: opts
});

SetConfigParam[] memory params = new SetConfigParam[](1);
params[0] = SetConfigParam({
    eid: BASE_EID,
    configType: 2,                     // 2 = ULN config
    config: abi.encode(cfg)
});

ILayerZeroEndpointV2(ENDPOINT_V2).setConfig(
    oapp,
    receiveLib302,                     // ReceiveUln302 on this chain
    params
);
Why this is safe. LayerZero's config term here is optional DVN, but optionalDVNThreshold = 1 means a message cannot commit without the Boundless-DVN attestation. It does not remove or modify your current DVNs — all existing security continues to apply.

3. Verify on testnet first.

Run the same setConfig on Ethereum Sepolia → Base Sepolia. Send a test OFT transfer, watch Boundless-DVN attest, and confirm the packet delivers. Addresses and a reference script live in our sample repo.

# Clone the reference scripts
git clone git@github.com:boundless-xyz/dvn-integration-example.git
cd dvn-integration-example

# Fill in your OApp + destination endpoint
cp .env.example .env

# Run the config update (testnet)
forge script script/SetConfig.s.sol \
  --rpc-url $BASE_SEPOLIA_RPC_URL \
  --broadcast

# Send a test OFT message end-to-end
bun run scripts/send-test-oft.ts

Pricing.

Fast cryptographic tier
Helios / similar paths: ~$0.04 per Ethereum L1 proof today, before destination-chain verify gas
Highest-assurance tier
Signal-Ethereum: ~$0.37 per finality proof today, before destination-chain verify gas
L2 destination verify()
~35K gas per proof on-chain
Volume pricing / SLA tiers
By conversation — contact the team

Support.

Integration support, dedicated Slack/Telegram channels, and SLA-backed on-call aren't described in detail here because they depend on your route mix and go-live timeline. If you're interested, book a 20-minute calland we'll walk through the terms alongside a testnet alpha wired to a copy of your OApp.