Production deployments should use multiple required DVNs from independent operators. A single-DVN configuration means a compromise of that one verifier results in unrestricted forged messages on the pathway. See the Integration Checklist for production DVN guidance.
You can manually configure your Aptos Move OApp’s Send and Receive settings by:
Reading Defaults: Use the get_config method to see default configurations.
Setting Libraries: Call set_send_library and set_receive_library to choose the correct Message Library version.
Setting Configs: Use the set_config instruction to update your custom DVN and Executor settings.
For both Send and Receive configurations, make sure that for a given channel:
Send (Chain A) settings match the Receive (Chain B) settings.
DVN addresses are provided in alphabetical order.
Block confirmations are correctly set to avoid mismatches.
The LayerZero CLI has abstracted these calls for every supported chain. See the CLI Setup Guide to easily deploy, configure, and send messages using LayerZero.
In Aptos, you call the endpoint_v2::endpoint module’sentry or friend functions to pick the library you want for sending or receiving messages.A typical library in current Aptos V2 is the ULN 302 library (uln_302::msglib). If you do not call set_send_library or set_receive_library, your OApp falls back to the default library for that remote EID.Note: The Endpoint has built-in constraints:
dst_eid in set_send_library(...) must be valid for that library.
src_eid in set_receive_library(...) must be valid for that library (i.e., the library says it supports receiving from that chain).
When you set a new library, the old library is replaced. You can optionally specify a grace_period on the receive side so the old library can continue verifying messages for a set time. This is how you “roll over” from one library version to another.
Below is an example of how you might call the endpoint_v2::endpoint::set_send_library or endpoint_v2::endpoint::set_receive_library function using the Aptos JS SDK.
import { Account, Aptos, Ed25519PrivateKey, PrivateKey, PrivateKeyVariants, SimpleTransaction, InputEntryFunctionData, AptosConfig,} from '@aptos-labs/ts-sdk';const NODE_URL = 'https://fullnode.testnet.aptoslabs.com/v1';// Replace with your actual private key or create from a local mnemonicconst ADMIN_PRIVATE_KEY_HEX = '0x...';const ADMIN_ACCOUNT_ADDRESS = '0x...';// OApp dataconst OAPP_ADDRESS = '0xMyOApp'; // your OApp’s address on Aptosconst REMOTE_EID = 30101; // e.g. the remote chain’s EIDconst MSGLIB_ADDRESS = '0xULN302'; // The “Send” library you wantconst NETWORK = 'testnet'; // "testnet" or "mainnet"// Create the private keyconst aptos_private_key = PrivateKey.formatPrivateKey( ADMIN_PRIVATE_KEY_HEX, PrivateKeyVariants.Ed25519,);// Create the signer accountconst signer_account = Account.fromPrivateKey({ privateKey: new Ed25519PrivateKey(aptos_private_key), address: ADMIN_ACCOUNT_ADDRESS,});// Create the Aptos clientconst aptos = new Aptos(new AptosConfig({network: NETWORK}));
The function signature in your OApp might look like:
public entry fun set_send_library( account: &signer, remote_eid: u32, msglib: address,) { ... }
struct UlnConfig has copy, drop { confirmations: u64, optional_dvn_threshold: u8, required_dvns: vector<address>, optional_dvns: vector<address>, use_default_for_confirmations: bool, use_default_for_required_dvns: bool, use_default_for_optional_dvns: bool,}
confirmations: how many blocks to wait on the source chain for finality.
required_dvns: the DVNs that must sign your message.
optional_dvns: the DVNs that may sign your message if they reach the threshold.
optional_dvn_threshold: how many optional DVNs are needed if you have optional DVNs.
use_default_for_*: determines if we fallback to a default config for certain fields.
In EVM you’d see fields like requiredDVNCount, requiredDVNs, optionalDVNCount, etc. In Aptos, it’s stored as a single struct with arrays for addresses.
Where EVM calls setConfigParam[], on Aptos, we pass a single (config_type, config) each time. If you want to set both Executor and ULN in one go, call set_config with each config type. Some developers write a convenience function to do both in a single transaction.The uln_302::configuration module handles the actual decode:
CONFIG_TYPE_EXECUTOR = 1
CONFIG_TYPE_SEND_ULN = 2
CONFIG_TYPE_RECV_ULN = 3
It extracts your config bytes, e.g. extract_uln_config for a ULN struct or extract_executor_config for an executor struct.Example: Setting a “send side” ULN config might look like:
If you pass a config that sets fields like confirmations = 0, required_dvns = [], and sets use_default_for_confirmations = true, then the OApp will fallback to whatever the default is on that chain.Similarly, if you pass an ExecutorConfig with max_message_size = 0 and executor_address = @0x0, you revert to default. The uln_302::configuration module merges your OApp’s config with the chain’s default config if you set use_default_for_* = true.
The above configuration has a block confirmation mismatch. The sending OApp (Chain A) will only wait 5 block confirmations, but the receiving OApp (Chain B) will not accept any message with less than 15 block confirmations.Messages will be blocked until either the sending OApp has increased the outbound block confirmations, or the receiving OApp decreases the inbound block confirmation threshold.
Another example of an incorrect OApp configuration:
SendUlnConfig (A to B)
ReceiveUlnConfig (B to A)
confirmations: 15
confirmations: 15
optionalDVNCount: 0
optionalDVNCount: 0
optionalDVNThreshold: 0
optionalDVNThreshold: 0
optionalDVNs: Array(0)
optionalDVNs: Array(0)
requiredDVNCount: 1
requiredDVNCount: 2
requiredDVNs: Array(DVN1)
requiredDVNs: Array(DVN1, DVN2)
The above configuration has a DVN mismatch. The sending OApp (Chain A) only pays DVN 1 to listen and verify the packet, but the receiving OApp (Chain B) requires both DVN 1 and DVN 2 to mark the packet as verified.Messages will be blocked until either the sending OApp has added DVN 2’s address on Chain A to the SendUlnConfig, or the receiving OApp removes DVN 2’s address on Chain B from the ReceiveUlnConfig.
The above configuration has a Dead DVN. Similar to a DVN Mismatch, the sending OApp (Chain A) pays DVN 1 and DVN 2 to listen and verify the packet, but the receiving OApp (Chain B) has currently set DVN 1 and a Dead DVN to mark the packet as verified.Since a Dead DVN for all practical purposes should be considered a null address, no verification will ever match the dead address.Messages will be blocked until the receiving OApp removes or replaces the Dead DVN from the ReceiveUlnConfig.
Below are the main wiring functions used for configuration.They typically are invoked in your OApp’s admin or delegate entry function.
register_receive_pathway(call_ref, src_eid, sender_bytes32): Inform the endpoint that you accept messages from (src_eid, sender).
set_send_library(call_ref, remote_eid, msglib): Tells the endpoint which library to use for sending messages to remote_eid.
set_receive_library(call_ref, remote_eid, msglib, grace_period): Tells the endpoint which library to use for receiving messages from remote_eid. Optionally specify a grace_period in blocks.
set_config(call_ref, msglib, eid, config_type, config_bytes): Instruct the chosen library to store or merge your OApp’s custom config for that EID.
The Aptos V2 Endpoint wiring parallels the approach on EVM:
Choose your libraries for sending and receiving (set_send_library, set_receive_library).
Set your ULN or Executor configs via set_config on the chosen library’s address, specifying the remote EID.
Ensure your sending chain’s config aligns with the receiving chain’s config (DVNs, block confirmations, etc.), or your messages may be blocked
.
If you want to revert to defaults, pass a config that indicates use_default_for_* = true or sets addresses to @0x0.
By following these steps, you can precisely control the LayerZero V2 security stack (DVNs), block confirmations, and executor settings on Aptos—just as you would with the EVM-based setSendLibrary, setReceiveLibrary, and setConfig flow.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LayerZero","colors":{"primary":"#c084fc","light":"#c084fc","dark":"#c084fc"},"logo":{"light":"https://mintcdn.com/layerzero/MzSiOdXt8xlDlEr4/images/LayerZero_Logo_Black.svg?fit=max\u0026auto=format\u0026n=MzSiOdXt8xlDlEr4\u0026q=85\u0026s=091b05c7556f6e8e948d613c2abf58cb","dark":"https://mintcdn.com/layerzero/MzSiOdXt8xlDlEr4/images/LayerZero_Logo_White.svg?fit=max\u0026auto=format\u0026n=MzSiOdXt8xlDlEr4\u0026q=85\u0026s=d6e58e0cf42c989a1fed9d1345e2d23a"},"favicon":"https://mintcdn.com/layerzero/qVdya_xVZRutFzkr/favicon.png?fit=max\u0026auto=format\u0026n=qVdya_xVZRutFzkr\u0026q=85\u0026s=c7fc37affda645fb663525dcbfc7a3a4","appearance":{"default":"dark"},"navbar":{"primary":{"type":"button","label":"LayerZero Scan","href":"https://layerzeroscan.com"}},"footer":{"socials":{"github":"https://github.com/LayerZero-Labs/LayerZero-v2","x":"https://x.com/layerzero_core","discord":"https://discord.com/invite/ktbvm8Nkcr","youtube":"https://www.youtube.com/@LayerZeroLabs","website":"https://layerzero.network/blog"}},"seo":{"metatags":{"og:site_name":"LayerZero Documentation","twitter:card":"summary_large_image","twitter:site":"@LayerZero_Labs"}},"fonts":{"heading":{"family":"Roboto"},"body":{"family":"Roboto"}},"contextual":{"options":["copy","cursor","vscode","mcp","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://layerzero.network/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/LayerZero-Labs"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"layerzero","hasAudioNarration":false,"actualSubdomain":"layerzero","customDomains":["docs.layerzero.network"],"gitSource":{"type":"github","owner":"layerzero-labs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac831340109de95c3c06c54","collectionId":"caee5397-a3ba-41bd-95a7-8fd4a7ce8a21","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac831340109de95c3c06c54"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ac831340109de95c3c06c54","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Contracts \u0026 Deployments","count":179},{"language":"default","tag":"V2 Deployments","count":133},{"language":"default","tag":"Mainnet Endpoints","count":123},{"language":"default","tag":"Developers","count":122},{"language":"default","tag":"Core Concepts","count":39},{"language":"default","tag":"Developer Tools","count":35},{"language":"default","tag":"EVM","count":32},{"language":"default","tag":"Technical Reference","count":24},{"language":"default","tag":"Testnet Endpoints","count":20},{"language":"default","tag":"Contract Standards","count":20}]},"assistantConfig":{"enableStarterQuestions":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--lz-bg-primary:#fafafa;--lz-bg-secondary:#f5f5f5;--lz-text-primary:#171717;--lz-text-secondary:#5c5c5c;--lz-border-primary:#e5e5e5;--lz-purple-400:#c084fc;--lz-purple-500:#a855f7;--lz-purple-600:#9333ea;--lz-stargate-400:#0fb983;--lz-stargate-500:#10a073;--background-light:250 250 250!important;--background-dark:10 10 10!important}html[class~=dark]{--lz-bg-primary:#0a0a0a;--lz-bg-secondary:#171717;--lz-text-primary:#f0f0f0;--lz-text-secondary:#a3a3a3;--lz-border-primary:#2b2b2b}html[class~=dark],html[class~=dark] body{background-color:#0a0a0a!important}html:not([class~=dark]),html:not([class~=dark]) body{background-color:#fafafa!important}.custom-button{display:inline-flex!important;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:.375rem;font-weight:600;transition:color 100ms,background-color 100ms,border-color 100ms;cursor:pointer}.custom-button,.custom-button:hover{text-decoration:none!important}.custom-button-primary{background-color:#0a0a0a;color:#f2f2f2!important;border:1px solid transparent}.custom-button-primary:hover{opacity:.9;color:#f2f2f2!important}.custom-button-secondary{background-color:transparent;color:#0a0a0a!important;border:1px solid #0a0a0a}.custom-button-secondary:hover{background-color:#0a0a0a;color:#f2f2f2!important}html[class~=dark] .custom-button-primary{background-color:#f2f2f2;color:#0a0a0a!important}html[class~=dark] .custom-button-primary:hover{color:#0a0a0a!important}html[class~=dark] .custom-button-secondary{color:#f2f2f2!important;border-color:#f2f2f2}html[class~=dark] .custom-button-secondary:hover{background-color:#f2f2f2;color:#0a0a0a!important}a[href=\"/v2/developers/solana/overview\"] svg{-webkit-mask-image:url(/images/icons/solana-mask.svg)!important;mask-image:url(/images/icons/solana-mask.svg)!important}a[href=\"/v2/developers/aptos-move/overview\"] svg{-webkit-mask-image:url(/images/icons/aptos-mask.svg)!important;mask-image:url(/images/icons/aptos-mask.svg)!important}a[href=\"/v2/developers/hyperliquid/hyperliquid-concepts\"] svg{-webkit-mask-image:url(/images/icons/hyperliquid-mask.svg)!important;mask-image:url(/images/icons/hyperliquid-mask.svg)!important}a[href=\"/v2/developers/sui/overview\"] svg{-webkit-mask-image:url(/images/icons/sui-mask.svg)!important;mask-image:url(/images/icons/sui-mask.svg)!important}a[href=\"/v2/developers/iota/overview\"] svg{-webkit-mask-image:url(/images/icons/iota-mask.svg)!important;mask-image:url(/images/icons/iota-mask.svg)!important}a[href=\"/chain\"] svg,a[href=\"/chain/index\"] svg{-webkit-mask-image:url(/images/icons/zero-mask.svg)!important;mask-image:url(/images/icons/zero-mask.svg)!important}a[href=\"/v2/developers/evm/overview\"] svg{-webkit-mask-image:url(/images/icons/ethereum-mask.svg)!important;mask-image:url(/images/icons/ethereum-mask.svg)!important}a[href=\"/v2/developers/stellar/overview\"] svg{-webkit-mask-image:url(/images/icons/stellar-mask.svg)!important;mask-image:url(/images/icons/stellar-mask.svg)!important}a[href=\"/v2/developers/tempo\"] svg,a[href=\"/v2/developers/tempo/overview\"] svg{-webkit-mask-image:url(/images/icons/tempo-mark-white.svg)!important;mask-image:url(/images/icons/tempo-mark-white.svg)!important}.lz-mobile-nav-dialog{touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow-y:hidden!important}.lz-mobile-nav-dialog .overflow-y-auto{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.lz-mobile-nav-dialog a,.lz-mobile-nav-dialog button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:44px;display:flex;align-items:center}#navbar-transition{pointer-events:none}html.lz-ios-scroll-lock{position:fixed;width:100%;height:100%;overflow:hidden}#footer a[href*=\"mintlify.com\"][href*=poweredBy]{display:none!important}img.nav-logo{width:102px!important;height:28px!important;aspect-ratio:109/30}.lz-content-wrapper{position:relative}.lz-content-video-bg{position:absolute;top:0;left:50%;transform:translateX(-50%);width:100vw;max-width:900px;height:280px;overflow:hidden;pointer-events:none;z-index:0;mask-image:linear-gradient(to bottom,#000 0,#000 50%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 50%,transparent 100%)}.lz-content-video{width:100%;height:100%;object-fit:cover;object-position:center top;opacity:0}html[class~=dark] .lz-content-video{opacity:.25}@media (min-width:900px){.lz-content-video-bg{border-radius:12px}}.lz-mobile-card-header,.lz-mobile-icon-wrapper{display:flex!important;align-items:center!important}.lz-mobile-card-header{flex-direction:row!important;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.lz-mobile-icon-wrapper{justify-content:center!important;flex-shrink:0}.lz-mobile-icon-wrapper [data-rmiz-content],.lz-mobile-icon-wrapper [data-rmiz]{display:block!important;width:100%!important;height:100%!important;line-height:normal!important;margin:0!important;padding:0!important}.lz-mobile-card-title{font-size:18px!important;font-weight:700!important;margin:0!important;line-height:1.2!important;color:#000}html[class~=dark] .lz-mobile-card-header{border-bottom-color:rgba(255,255,255,.1)}html[class~=dark] .lz-mobile-card-title{color:#fff}a[data-accent]>div{background-color:#fff!important;border-color:#e5e5e5!important;border-width:2px!important;border-style:solid!important}html[class~=dark] a[data-accent]>div{background-color:#0a0a0a!important;border-color:#2b2b2b!important}a[data-accent] h3{color:#171717!important;font-weight:600!important}html[class~=dark] a[data-accent] h3{color:#fafafa!important}a[data-accent] p{color:#525252!important}html[class~=dark] a[data-accent] p{color:#a1a1a1!important}a[data-accent] svg:last-child{color:#a1a1a1!important}html[class~=dark] a[data-accent] svg:last-child{color:#525252!important}a[data-accent=purple]:hover h3{color:#9333ea!important}html[class~=dark] a[data-accent=purple]:hover h3{color:#c084fc!important}a[data-accent=purple]:hover>div{border-color:#9333ea!important}html[class~=dark] a[data-accent=purple]:hover>div{border-color:#c084fc!important}a[data-accent=purple]:hover svg:last-child{color:#9333ea!important}html[class~=dark] a[data-accent=purple]:hover svg:last-child{color:#c084fc!important}a[data-accent=stargate]:hover h3{color:#10a073!important}html[class~=dark] a[data-accent=stargate]:hover h3{color:#0fb983!important}a[data-accent=stargate]:hover>div{border-color:#10a073!important}html[class~=dark] a[data-accent=stargate]:hover>div{border-color:#0fb983!important}a[data-accent=stargate]:hover svg:last-child{color:#10a073!important}html[class~=dark] a[data-accent=stargate]:hover svg:last-child{color:#0fb983!important}a[data-accent=gray]:hover h3{color:#525252!important}html[class~=dark] a[data-accent=gray]:hover h3{color:#d4d4d4!important}a[data-accent=gray]:hover>div{border-color:#a1a1a1!important}html[class~=dark] a[data-accent=gray]:hover>div{border-color:#525252!important}a[data-accent=gray]:hover svg:last-child{color:#525252!important}html[class~=dark] a[data-accent=gray]:hover svg:last-child{color:#d4d4d4!important}"}],"page":{"pagePath":"v2/developers/aptos-move/configuration/dvn-executor-config","slug":"/v2/developers/aptos-move/configuration/dvn-executor-config","pageMetadata":{"title":"Aptos DVN and Executor Configuration","sidebarTitle":"DVN \u0026 Executor Configuration","description":"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.","keywords":["LayerZero","Aptos","DVN","Executor","configuration"],"lastUpdated":"2025-01-13","author":"LayerZero","schema":"HowTo","related":["/v2/developers/evm/configuration/dvn-executor-config","/v2/developers/iota/configuration/dvn-executor-config","/v2/developers/solana/configuration/dvn-executor-config"],"toc_min_heading_level":"2","toc_max_heading_level":"5","href":"/v2/developers/aptos-move/configuration/dvn-executor-config"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Before setting your DVN and Executor Configuration, you should review the `,_jsx(_components.a,{href:`/v2/concepts/modular-security/security-stack-dvns`,children:`Security Stack Core Concepts`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Production deployments should use multiple required DVNs from independent operators.`}),` A single-DVN configuration means a compromise of that one verifier results in unrestricted forged messages on the pathway. See the `,_jsx(_components.a,{href:`/v2/tools/integration-checklist#set-security-and-executor-configurations-on-every-pathway`,children:`Integration Checklist`}),` for production DVN guidance.`]})}),`\n`,_jsx(_components.p,{children:`You can manually configure your Aptos Move OApp’s Send and Receive settings by:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reading Defaults:`}),` Use the `,_jsx(_components.code,{children:`get_config`}),` method to see default configurations.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Setting Libraries:`}),` Call `,_jsx(_components.code,{children:`set_send_library`}),` and `,_jsx(_components.code,{children:`set_receive_library`}),` to choose the correct Message Library version.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Setting Configs:`}),` Use the `,_jsx(_components.code,{children:`set_config`}),` instruction to update your custom DVN and Executor settings.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For both Send and Receive configurations, make sure that for a given `,_jsx(_components.a,{href:`/v2/concepts/glossary#channel--lossless-channel`,children:`channel`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Send (Chain A) settings`}),` match the `,_jsx(_components.strong,{children:`Receive (Chain B) settings.`})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`DVN addresses are provided in alphabetical order.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Block confirmations are correctly set to avoid mismatches.`}),`\n`]}),`\n`]}),`\n`,_jsxs(Tip,{children:[_jsx(Heading,{level:`3`,id:`use-the-layerzero-cli`,children:`Use the LayerZero CLI`}),_jsxs(_components.p,{children:[`The LayerZero CLI has abstracted these calls for every supported chain. See the `,_jsx(_components.a,{href:`/v2/get-started/create-lz-oapp/start`,children:_jsx(_components.strong,{children:`CLI Setup Guide`})}),` to easily deploy, configure, and send messages using LayerZero.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`setting-send-/-receive-libraries`,children:`Setting Send / Receive Libraries`}),`\n`,_jsxs(_components.p,{children:[`In Aptos, you call the `,_jsxs(_components.a,{href:`#endpointv2endpoint-key-functions`,children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`endpoint_v2::endpoint`})}),` module’s`]}),` `,_jsx(_components.strong,{children:`entry`}),` or `,_jsx(_components.strong,{children:`friend`}),` functions to pick the library you want for `,_jsx(_components.strong,{children:`sending`}),` or `,_jsx(_components.strong,{children:`receiving`}),` messages.`]}),`\n`,_jsxs(_components.p,{children:[`A typical library in current Aptos V2 is the ULN 302 library (`,_jsx(_components.code,{children:`uln_302::msglib`}),`). If you do `,_jsx(_components.strong,{children:`not`}),` call `,_jsx(_components.code,{children:`set_send_library`}),` or `,_jsx(_components.code,{children:`set_receive_library`}),`, your OApp falls back to the `,_jsx(_components.strong,{children:`default`}),` library for that remote EID.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Note`}),`: The Endpoint has built-in constraints:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`dst_eid`})}),` in `,_jsx(_components.code,{children:`set_send_library(...)`}),` must be valid for that library.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`src_eid`})}),` in `,_jsx(_components.code,{children:`set_receive_library(...)`}),` must be valid for that library (i.e., the library says it supports receiving from that chain).`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When you set a new library, the old library is replaced. You can optionally specify a `,_jsx(_components.strong,{children:`grace_period`}),` on the receive side so the old library can continue verifying messages for a set time. This is how you “roll over” from one library version to another.`]}),`\n`,_jsx(Heading,{level:`3`,id:`typescript`,children:`Typescript`}),`\n`,_jsxs(_components.p,{children:[`Below is an example of how you might call the `,_jsx(_components.code,{children:`endpoint_v2::endpoint::set_send_library`}),` or `,_jsx(_components.code,{children:`endpoint_v2::endpoint::set_receive_library`}),` function using the Aptos JS SDK.`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`37`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`37`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Ed25519PrivateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PrivateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PrivateKeyVariants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` SimpleTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` InputEntryFunctionData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` AptosConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@aptos-labs/ts-sdk'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` NODE_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://fullnode.testnet.aptoslabs.com/v1'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Replace with your actual private key or create from a local mnemonic`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_PRIVATE_KEY_HEX`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '0x...'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_ACCOUNT_ADDRESS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '0x...'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// OApp data`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` OAPP_ADDRESS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '0xMyOApp'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// your OApp’s address on Aptos`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` REMOTE_EID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 30101`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// e.g. the remote chain’s EID`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MSGLIB_ADDRESS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '0xULN302'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// The “Send” library you want`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` NETWORK`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'testnet'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \"testnet\" or \"mainnet\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Create the private key`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` aptos_private_key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PrivateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`formatPrivateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_PRIVATE_KEY_HEX`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PrivateKeyVariants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Ed25519`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Create the signer account`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signer_account`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`fromPrivateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` privateKey:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Ed25519PrivateKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`aptos_private_key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` address:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_ACCOUNT_ADDRESS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Create the Aptos client`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` aptos`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` AptosConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`network:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` NETWORK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}));`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The function signature in your OApp might look like:`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`5`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`public`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` fun`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` set_send_library`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` account`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` remote_eid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` u32`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` msglib`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) { `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Which can be invoked like:`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`34`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`34`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` setSendLibrary`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 1. Build the transaction payload and transaction`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` payload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` InputEntryFunctionData`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` function:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`OAPP_ADDRESS`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"::oapp_core::set_send_library`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` functionArguments:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`REMOTE_EID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`MSGLIB_ADDRESS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` transaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` SimpleTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`simple`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sender:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_ACCOUNT_ADDRESS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` data:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` options:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` maxGasAmount:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 30000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 2. Generate and sign transaction`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signAndSubmitTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signer:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signer_account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transaction:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 3. Wait for confirmation`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` executedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`waitForTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transactionHash:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signedTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`hash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'set_send_library transaction completed:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`executedTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`hash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setSendLibrary`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`then`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Done setting send library'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`setting-security-\u0026-executor-configuration`,children:`Setting Security \u0026 Executor Configuration`}),`\n`,_jsxs(_components.p,{children:[`A similar approach to EVM’s `,_jsx(_components.code,{children:`setConfig`}),` is available in Aptos. You can call:`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`10`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`public`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` fun`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` set_config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` account`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` msglib`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` eid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` u32`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config_type`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` u32`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` config`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` vector`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`u8`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` assert_authorized`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`address_of`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`));`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` endpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`set_config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`oapp_store`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`call_ref`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`msglib`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`eid`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`config_type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`msglib`})}),` is the library you are configuring (e.g. `,_jsx(_components.code,{children:`@uln_302`}),`).`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`eid`})}),` is the remote endpoint ID you are targeting (e.g. `,_jsx(_components.code,{children:`30101`}),` if referencing “Chain B’s ID”).`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`config_type`})}),` is typically 1 for `,_jsx(_components.strong,{children:`Executor`}),` and 2 or 3 for ULN-based “send” or “receive” config.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`config`})}),` is a serialized bytes array containing your DVN addresses, confirmations, or max message size, etc.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`typical-uln-\u0026-executor-structures`,children:`Typical ULN \u0026 Executor Structures`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`uln_302::configuration`}),` module references these data structures:`]}),`\n`,_jsx(Heading,{level:`4`,id:`uln-config-security-stack`,children:`ULN Config (Security Stack)`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`9`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` UlnConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` has`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` copy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`drop`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` confirmations`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` u64`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` optional_dvn_threshold`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` u8`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` required_dvns`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` vector`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` optional_dvns`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` vector`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` use_default_for_confirmations`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` bool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` use_default_for_required_dvns`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` bool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` use_default_for_optional_dvns`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` bool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`confirmations`}),`: how many blocks to wait on the source chain for finality.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`required_dvns`}),`: the DVNs that `,_jsx(_components.strong,{children:`must`}),` sign your message.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`optional_dvns`}),`: the DVNs that `,_jsx(_components.strong,{children:`may`}),` sign your message if they reach the threshold.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`optional_dvn_threshold`}),`: how many optional DVNs are needed if you have optional DVNs.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`use_default_for_*`}),`: determines if we fallback to a default config for certain fields.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`In EVM you’d see fields like `,_jsx(_components.code,{children:`requiredDVNCount`}),`, `,_jsx(_components.code,{children:`requiredDVNs`}),`, `,_jsx(_components.code,{children:`optionalDVNCount`}),`, etc. In Aptos, it’s stored as a single struct with arrays for addresses.`]}),`\n`,_jsx(Heading,{level:`4`,id:`executor-config`,children:`Executor Config`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`4`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`struct`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ExecutorConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` has`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` copy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`drop`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` max_message_size`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` u32`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` executor_address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`max_message_size`}),`: max size of crosschain messages, in bytes.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`executor_address`}),`: which executor is authorized/paid to `,_jsx(_components.code,{children:`lz_receive`}),` your message.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`distinction-vs-evm`,children:`Distinction vs. EVM`}),`\n`,_jsxs(_components.p,{children:[`Where EVM calls `,_jsx(_components.code,{children:`setConfigParam[]`}),`, on Aptos, we pass a single `,_jsx(_components.code,{children:`(config_type, config)`}),` each time. If you want to set both Executor and ULN in one go, call `,_jsx(_components.code,{children:`set_config`}),` with each config type. Some developers write a convenience function to do both in a single transaction.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`uln_302::configuration`}),` module handles the actual decode:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`CONFIG_TYPE_EXECUTOR = 1`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`CONFIG_TYPE_SEND_ULN = 2`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`CONFIG_TYPE_RECV_ULN = 3`})})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`It extracts your config bytes, e.g. `,_jsx(_components.code,{children:`extract_uln_config`}),` for a ULN struct or `,_jsx(_components.code,{children:`extract_executor_config`}),` for an executor struct.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Example`}),`: Setting a “send side” ULN config might look like:`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`30`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`30`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` setUlnConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`sendLibrary`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`remoteEid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`serializedConfig`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Uint8Array`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // config_type = 2 for \"send side\" or 3 for \"receive side\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` CONFIG_TYPE_SEND_ULN`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Suppose your OApp entry function is:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // public entry fun set_config(account: \u0026signer, msglib: address, eid: u32, config_type: u32, config: vector\u003cu8>)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` payload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` InputEntryFunctionData`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` function:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`OAPP_ADDRESS`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"::oapp_core::set_config`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` functionArguments:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sendLibrary`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`remoteEid`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`CONFIG_TYPE_SEND_ULN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`serializedConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` rawTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`simple`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sender:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_ACCOUNT_ADDRESS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` data:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` options:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` maxGasAmount:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 30000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signAndSubmitTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signer:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signer_account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transaction:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rawTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` executedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`waitForTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transactionHash:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signedTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`hash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`set_config ULN success: \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signedTransaction`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`hash`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The Executor config is `,_jsx(_components.code,{children:`CONFIG_TYPE_EXECUTOR = 1`}),`. You pass a serialized `,_jsx(_components.code,{children:`(max_message_size, executor_address)`}),` structure.`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`32`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`32`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` setExecutorConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` sendLibrary`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` remoteEid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` execConfigBytes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Uint8Array`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // config_type = 1 for \"executor\"`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` CONFIG_TYPE_EXECUTOR`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` payload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` InputEntryFunctionData`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` function:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`OAPP_ADDRESS`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"::oapp_core::set_config`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` functionArguments:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sendLibrary`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`remoteEid`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`CONFIG_TYPE_EXECUTOR`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`execConfigBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` rawTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`simple`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sender:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ADMIN_ACCOUNT_ADDRESS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` data:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` options:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` maxGasAmount:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 30000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`signAndSubmitTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signer:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signer_account`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transaction:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rawTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` executedTransaction`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` aptos`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`waitForTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` transactionHash:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signedTransaction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`hash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`set_config Executor success: \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signedTransaction`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`hash`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`resetting-to-default`,children:`Resetting to Default`}),`\n`,_jsxs(_components.p,{children:[`If you pass a config that sets fields like `,_jsx(_components.code,{children:`confirmations = 0`}),`, `,_jsx(_components.code,{children:`required_dvns = []`}),`, and sets `,_jsx(_components.code,{children:`use_default_for_confirmations = true`}),`, then the OApp will fallback to whatever the default is on that chain.`]}),`\n`,_jsxs(_components.p,{children:[`Similarly, if you pass an `,_jsx(_components.code,{children:`ExecutorConfig`}),` with `,_jsx(_components.code,{children:`max_message_size = 0`}),` and `,_jsx(_components.code,{children:`executor_address = @0x0`}),`, you revert to default. The `,_jsx(_components.code,{children:`uln_302::configuration`}),` module merges your OApp’s config with the chain’s default config if you set `,_jsx(_components.code,{children:`use_default_for_* = true`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`debugging-configurations`,children:`Debugging Configurations`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`correct`}),` OApp configuration example:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`SendUlnConfig (A to B)`}),_jsx(_components.th,{children:`ReceiveUlnConfig (B to A)`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`confirmations: 15`}),_jsx(_components.td,{children:`confirmations: 15`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNCount: 0`}),_jsx(_components.td,{children:`optionalDVNCount: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNThreshold: 0`}),_jsx(_components.td,{children:`optionalDVNThreshold: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNs: Array(0)`}),_jsx(_components.td,{children:`optionalDVNs: Array(0)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`requiredDVNCount: 2`}),_jsx(_components.td,{children:`requiredDVNCount: 2`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`requiredDVNs: Array(DVN1_Address_A, DVN2_Address_A)`}),_jsx(_components.td,{children:`requiredDVNs: Array(DVN1_Address_B, DVN2_Address_B)`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The sending OApp’s `,_jsx(_components.strong,{children:`SendLibConfig`}),` (OApp on Chain A) and the receiving OApp’s `,_jsx(_components.strong,{children:`ReceiveLibConfig`}),` (OApp on Chain B) match!`]})}),`\n`,_jsx(Heading,{level:`3`,id:`block-confirmation-mismatch`,children:`Block Confirmation Mismatch`}),`\n`,_jsxs(_components.p,{children:[`An example of an `,_jsx(_components.strong,{children:`incorrect`}),` OApp configuration:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`SendUlnConfig (A to B)`}),_jsx(_components.th,{children:`ReceiveUlnConfig (B to A)`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`confirmations: 5`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`confirmations: 15`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNCount: 0`}),_jsx(_components.td,{children:`optionalDVNCount: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNThreshold: 0`}),_jsx(_components.td,{children:`optionalDVNThreshold: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNs: Array(0)`}),_jsx(_components.td,{children:`optionalDVNs: Array(0)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`requiredDVNCount: 2`}),_jsx(_components.td,{children:`requiredDVNCount: 2`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`requiredDVNs: Array(DVN1, DVN2)`}),_jsx(_components.td,{children:`requiredDVNs: Array(DVN1, DVN2)`})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`The above configuration has a `,_jsx(_components.strong,{children:`block confirmation mismatch`}),`. The sending OApp (Chain A) will only wait 5 block confirmations, but the receiving OApp (Chain B) will not accept any message with less than 15 block confirmations.`]}),_jsx(_components.p,{children:`Messages will be blocked until either the sending OApp has increased the outbound block confirmations, or the receiving OApp decreases the inbound block confirmation threshold.`})]}),`\n`,_jsx(Heading,{level:`4`,id:`dvn-mismatch`,children:`DVN Mismatch`}),`\n`,_jsx(_components.p,{children:`Another example of an incorrect OApp configuration:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`SendUlnConfig (A to B)`}),_jsx(_components.th,{children:`ReceiveUlnConfig (B to A)`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`confirmations: 15`}),_jsx(_components.td,{children:`confirmations: 15`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNCount: 0`}),_jsx(_components.td,{children:`optionalDVNCount: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNThreshold: 0`}),_jsx(_components.td,{children:`optionalDVNThreshold: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNs: Array(0)`}),_jsx(_components.td,{children:`optionalDVNs: Array(0)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNCount: 1`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNCount: 2`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNs: Array(DVN1)`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNs: Array(DVN1, DVN2)`})})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`The above configuration has a `,_jsx(_components.strong,{children:`DVN mismatch`}),`. The sending OApp (Chain A) only pays DVN 1 to listen and verify the packet, but the receiving OApp (Chain B) requires both DVN 1 and DVN 2 to mark the packet as verified.`]}),_jsx(_components.p,{children:`Messages will be blocked until either the sending OApp has added DVN 2’s address on Chain A to the SendUlnConfig, or the receiving OApp removes DVN 2’s address on Chain B from the ReceiveUlnConfig.`})]}),`\n`,_jsx(Heading,{level:`4`,id:`dead-dvn`,children:_jsx(_components.a,{href:`/v2/concepts/glossary#dead-dvn`,children:`Dead DVN`})}),`\n`,_jsxs(_components.p,{children:[`This configuration includes a `,_jsx(_components.strong,{children:`Dead DVN`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`SendUlnConfig (A to B)`}),_jsx(_components.th,{children:`ReceiveUlnConfig (B to A)`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`confirmations: 15`}),_jsx(_components.td,{children:`confirmations: 15`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNCount: 0`}),_jsx(_components.td,{children:`optionalDVNCount: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNThreshold: 0`}),_jsx(_components.td,{children:`optionalDVNThreshold: 0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`optionalDVNs: Array(0)`}),_jsx(_components.td,{children:`optionalDVNs: Array(0)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNCount: 2`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNCount: 2`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNs: Array(DVN1, DVN2)`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`requiredDVNs: Array(DVN1, DVN_DEAD)`})})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`The above configuration has a `,_jsx(_components.strong,{children:`Dead DVN`}),`. Similar to a DVN Mismatch, the sending OApp (Chain A) pays DVN 1 and DVN 2 to listen and verify the packet, but the receiving OApp (Chain B) has currently set DVN 1 and a Dead DVN to mark the packet as verified.`]}),_jsx(_components.p,{children:`Since a Dead DVN for all practical purposes should be considered a null address, no verification will ever match the dead address.`}),_jsx(_components.p,{children:`Messages will be blocked until the receiving OApp removes or replaces the Dead DVN from the ReceiveUlnConfig.`})]}),`\n`,_jsxs(Heading,{level:`2`,id:`key-functions-in-endpoint_v2endpoint`,children:[`Key Functions in `,_jsx(_components.code,{children:`endpoint_v2::endpoint`})]}),`\n`,_jsx(_components.p,{children:`Below are the main wiring functions used for configuration.`}),`\n`,_jsx(_components.p,{children:`They typically are invoked in your OApp’s admin or delegate entry function.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`register_receive_pathway(call_ref, src_eid, sender_bytes32)`})}),`: Inform the endpoint that you accept messages from `,_jsx(_components.code,{children:`(src_eid, sender)`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`set_send_library(call_ref, remote_eid, msglib)`})}),`: Tells the endpoint which library to use for sending messages to `,_jsx(_components.code,{children:`remote_eid`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`set_receive_library(call_ref, remote_eid, msglib, grace_period)`})}),`: Tells the endpoint which library to use for receiving messages from `,_jsx(_components.code,{children:`remote_eid`}),`. Optionally specify a `,_jsx(_components.code,{children:`grace_period`}),` in blocks.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`set_config(call_ref, msglib, eid, config_type, config_bytes)`})}),`: Instruct the chosen library to store or merge your OApp’s custom config for that EID.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`conclusion`,children:`Conclusion`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Aptos V2`}),` Endpoint wiring parallels the approach on EVM:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Choose your libraries`}),` for sending and receiving (`,_jsx(_components.code,{children:`set_send_library`}),`, `,_jsx(_components.code,{children:`set_receive_library`}),`).`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Set your ULN or Executor configs`}),` via `,_jsx(_components.code,{children:`set_config`}),` on the chosen library’s address, specifying the remote EID.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Ensure your sending chain’s config aligns with the receiving chain’s config (DVNs, block confirmations, etc.), or your messages may be blocked\n.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`If you want to revert to defaults, pass a config that indicates `,_jsx(_components.code,{children:`use_default_for_* = true`}),` or sets addresses to `,_jsx(_components.code,{children:`@0x0`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`By following these steps, you can precisely control the `,_jsx(_components.strong,{children:`LayerZero V2`}),` security stack (DVNs), block confirmations, and executor settings on Aptos—just as you would with the EVM-based `,_jsx(_components.code,{children:`setSendLibrary`}),`, `,_jsx(_components.code,{children:`setReceiveLibrary`}),`, and `,_jsx(_components.code,{children:`setConfig`}),` flow.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Aptos DVN and Executor Configuration","sidebarTitle":"DVN \u0026 Executor Configuration","description":"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.","keywords":["LayerZero","Aptos","DVN","Executor","configuration"],"lastUpdated":"2025-01-13","author":"LayerZero","schema":"HowTo","related":["/v2/developers/evm/configuration/dvn-executor-config","/v2/developers/iota/configuration/dvn-executor-config","/v2/developers/solana/configuration/dvn-executor-config"],"toc_min_heading_level":"2","toc_max_heading_level":"5","href":"/v2/developers/aptos-move/configuration/dvn-executor-config"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Use the LayerZero CLI","slug":"use-the-layerzero-cli","depth":3,"children":[]},{"title":"Setting Send / Receive Libraries","slug":"setting-send-/-receive-libraries","depth":2,"children":[{"title":"Typescript","slug":"typescript","depth":3,"children":[]}]},{"title":"Setting Security \u0026 Executor Configuration","slug":"setting-security-\u0026-executor-configuration","depth":2,"children":[{"title":"Typical ULN \u0026 Executor Structures","slug":"typical-uln-\u0026-executor-structures","depth":3,"children":[]},{"title":"ULN Config (Security Stack)","slug":"uln-config-security-stack","depth":4,"children":[]},{"title":"Executor Config","slug":"executor-config","depth":4,"children":[]},{"title":"Distinction vs. EVM","slug":"distinction-vs-evm","depth":4,"children":[]}]},{"title":"Resetting to Default","slug":"resetting-to-default","depth":2,"children":[]},{"title":"Debugging Configurations","slug":"debugging-configurations","depth":2,"children":[{"title":"Block Confirmation Mismatch","slug":"block-confirmation-mismatch","depth":3,"children":[]},{"title":"DVN Mismatch","slug":"dvn-mismatch","depth":4,"children":[]},{"title":"Dead DVN","slug":"dead-dvn","depth":4,"children":[]}]},{"title":"Key Functions in endpoint_v2::endpoint","slug":"key-functions-in-endpoint_v2endpoint","depth":2,"children":[]},{"title":"Conclusion","slug":"conclusion","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/layerzero/355391ae19c1d258/accessibility.js","/_mintlify/custom/layerzero/714d41473c4c265e/posthog.js","/_mintlify/custom/layerzero/747cfa09f827dae8/snippets/contractAbis.js","/_mintlify/custom/layerzero/e4d3be41c98f3ab2/scripts/generate-chain-pages.js","/_mintlify/custom/layerzero/7530b00fc4b5bdca/scripts/update-deployments/constants.js","/_mintlify/custom/layerzero/c2a5b61ad6c140da/scripts/update-deployments/index.js"],"subdomain":"layerzero","siteName":"LayerZero","title":"Aptos DVN and Executor Configuration - LayerZero","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-12T18:41:12.024Z","originalFileLocation":"v2/developers/aptos-move/configuration/dvn-executor-config.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LayerZero\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Aptos DVN and Executor Configuration - LayerZero\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LayerZero Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://layerzero.mintlify.app/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Aptos+DVN+and+Executor+Configuration\u0026amp;description=Configure+Aptos+DVN+and+Executor+Configuration+for+your+LayerZero+application.+Set+up+DVNs%2C+executors%2C+and+pathway+settings+for+crosschain+messaging.\u0026amp;theme=28e43194b2d92b2885f4b3d8\u0026amp;signature=5abacf1a379187d4bdfe647c01af9f3f285270c1fcfb73cde26164048ecb0b97\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Aptos DVN and Executor Configuration - LayerZero\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://layerzero.mintlify.app/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Aptos+DVN+and+Executor+Configuration\u0026amp;description=Configure+Aptos+DVN+and+Executor+Configuration+for+your+LayerZero+application.+Set+up+DVNs%2C+executors%2C+and+pathway+settings+for+crosschain+messaging.\u0026amp;theme=28e43194b2d92b2885f4b3d8\u0026amp;signature=5abacf1a379187d4bdfe647c01af9f3f285270c1fcfb73cde26164048ecb0b97\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/layerzero/kyEYRB05_wMqZ8Gi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LayerZero\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#c084fc\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/developers/aptos-move/configuration/dvn-executor-config.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.layerzero.network/#organization\",\"name\":\"LayerZero\",\"url\":\"https://docs.layerzero.network\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/layerzero/MzSiOdXt8xlDlEr4/images/LayerZero_Logo_Black.svg?fit=max\u0026auto=format\u0026n=MzSiOdXt8xlDlEr4\u0026q=85\u0026s=091b05c7556f6e8e948d613c2abf58cb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.layerzero.network#website\",\"name\":\"LayerZero\",\"url\":\"https://docs.layerzero.network\",\"publisher\":{\"@id\":\"https://docs.layerzero.network/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config#webpage\",\"url\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config\",\"name\":\"Aptos DVN and Executor Configuration\",\"description\":\"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.\",\"dateModified\":\"2026-05-12T18:41:12.024Z\",\"isPartOf\":{\"@id\":\"https://docs.layerzero.network#website\"},\"breadcrumb\":{\"@id\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"LayerZero\",\"item\":\"https://docs.layerzero.network\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aptos DVN and Executor Configuration\",\"item\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config#article\",\"headline\":\"Aptos DVN and Executor Configuration\",\"name\":\"Aptos DVN and Executor Configuration\",\"description\":\"Configure Aptos DVN and Executor Configuration for your LayerZero application. Set up DVNs, executors, and pathway settings for crosschain messaging.\",\"url\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config\",\"mainEntityOfPage\":{\"@id\":\"https://docs.layerzero.network/v2/developers/aptos-move/configuration/dvn-executor-config#webpage\"},\"dateModified\":\"2026-05-12T18:41:12.024Z\",\"keywords\":\"LayerZero, Aptos, DVN, Executor, configuration\",\"publisher\":{\"@id\":\"https://docs.layerzero.network/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.layerzero.network#website\"}}]}\u003c/script>","siteName":"LayerZero","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://layerzero.network/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/LayerZero-Labs"}]},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/v2/get-started/overview"}]},{"tab":"Core Concepts","pages":[{"title":"Core Concepts","href":"/v2/concepts/getting-started/what-is-layerzero"}]},{"tab":"Developers","menu":[{"item":"Zero","icon":"circle","pages":[{"title":"Zero","href":"/chain"}]},{"item":"EVM","icon":"circle","pages":[{"title":"EVM","href":"/v2/developers/evm/overview"}]},{"item":"Solana","icon":"circle","pages":[{"title":"Solana","href":"/v2/developers/solana/overview"}]},{"item":"Starknet","icon":"https://mintlify.s3.us-west-1.amazonaws.com/layerzero/images/icons/starknet.svg","pages":[{"title":"Starknet","href":"/v2/developers/starknet/overview"}]},{"item":"Aptos Move","icon":"code","groups":[{"group":"LayerZero for Aptos Move","pages":[{"title":"LayerZero V2 Aptos Move Standards","sidebarTitle":"Start Here","href":"/v2/developers/aptos-move/overview"},{"title":"Ecosystem Tools","sidebarTitle":"Ecosystem Tools","url":"/v2/tools/overview","href":"/v2/developers/ecosystem-tools"},{"title":"LayerZero Scan Explorer","sidebarTitle":"LayerZero Scan","url":"https://layerzeroscan.com/","href":"/v2/developers/layerzero-scan-explorer"},{"title":"LayerZero V2 Glossary","sidebarTitle":"Glossary","href":"/v2/concepts/glossary"}]},{"group":"Omnichain CLI Toolkit","pages":[{"title":"Quickstart - Create Your First Omnichain App","sidebarTitle":"CLI Setup Guide","href":"/v2/developers/aptos-move/create-lz-oapp/start"}]},{"group":"Contract Modules","pages":[{"title":"LayerZero V2 Aptos Move OApp","sidebarTitle":"Omnichain Application (OApp)","href":"/v2/developers/aptos-move/contract-modules/oapp"},{"title":"LayerZero V2 Aptos Move OFT","sidebarTitle":"Omnichain Fungible Token (OFT)","description":"Below is comprehensive documentation for Aptos Move OFT modules, explaining both the OFT and OFT Adapter, mirroring the LayerZero V2 OFT Standard you...","href":"/v2/developers/aptos-move/contract-modules/oft"}]},{"group":"Configuration","pages":[{"title":"Aptos DVN and Executor Configuration","sidebarTitle":"DVN \u0026 Executor Configuration","href":"/v2/developers/aptos-move/configuration/dvn-executor-config"}]},{"group":"Resources","pages":[{"title":"LayerZero Whitepaper","sidebarTitle":"Whitepaper","description":"LayerZero V2 whitepaper. Technical documentation covering protocol architecture, security model, and omnichain messaging design. Crosschain development with...","url":"https://layerzero.network/publications/LayerZero_Whitepaper_V2.1.1.pdf","href":"/v2/resources/whitepaper"},{"title":"LayerZero Security Audits","sidebarTitle":"Audits","url":"https://github.com/LayerZero-Labs/Audits/tree/main/audits","href":"/v2/resources/audits"},{"title":"Awesome LayerZero","sidebarTitle":"Awesome LayerZero","url":"https://github.com/LayerZero-Labs/awesome-layerzero/","href":"/v2/resources/awesome-layerzero"},{"title":"Frequently Asked Questions (FAQ)","sidebarTitle":"General FAQ","href":"/v2/faq"}]}]},{"item":"Hyperliquid","icon":"droplet","pages":[{"title":"Hyperliquid","href":"/v2/developers/hyperliquid/hyperliquid-concepts"}]},{"item":"Sui","icon":"waves","pages":[{"title":"Sui","href":"/v2/developers/sui/overview"}]},{"item":"Stellar","icon":"star","pages":[{"title":"Stellar","href":"/v2/developers/stellar/overview"}]},{"item":"IOTA L1","icon":"hexagon","pages":[{"title":"IOTA L1","href":"/v2/developers/iota/overview"}]},{"item":"Tempo","icon":"circle","pages":[{"title":"Tempo","href":"/v2/developers/tempo/overview"}]},{"item":"Value Transfer API","icon":"arrow-right-arrow-left","pages":[{"title":"Value Transfer API","href":"/v2/developers/value-transfer-api/start"}]}]},{"tab":"Contracts \u0026 Deployments","menu":[{"item":"V2 Deployments","icon":"file-text","pages":[{"title":"V2 Deployments","href":"/v2/deployments/deployed-contracts"}]},{"item":"V1 Deployments","icon":"file-code","pages":[{"title":"V1 Deployments","href":"/v1/deployments/deployed-contracts"}]},{"item":"Developer Tools","icon":"wrench","pages":[{"title":"Developer Tools","href":"/v2/tools/overview"}]},{"item":"DVN \u0026 Executor Reference","icon":"shield-halved","pages":[{"title":"DVN \u0026 Executor Reference","href":"/v2/workers/overview"}]}],"pages":[{"title":"Contracts \u0026 Deployments","href":"/v2/deployments/deployed-contracts"}]}]},"basePath":"","title":"Aptos DVN and Executor Configuration - LayerZero","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}