Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.
What is LZD
LZEndpointDollar (LZD) is the canonical USD-denominated fee token for LayerZero on Tempo. Because Tempo has no native gas token, EndpointV2Alt uses LZD as the ERC-20 token for all LayerZero messaging fees.The endpoint could accept a single TIP-20 token directly, but that would force users to hold one specific stablecoin. LZD is an ERC-20 wrapper around multiple whitelisted 6-decimal stablecoins (pathUSD, USDC.e, or USDT0), so users can pay fees with whichever USD stablecoin they have. Users wrap a supported stablecoin into LZD, then approve the endpoint or OFT to spend it.
Endpoint mode detection
On any EVM chain, you can check the endpoint type by calling nativeToken(). On Tempo, it returns the LZD address:
address feeToken = ILayerZeroEndpointV2(endpoint).nativeToken();if (feeToken == address(0)) { // Standard Endpoint: pay fees with native token (msg.value)} else { // Endpoint Alt: pay fees with ERC20 at feeToken address // On Tempo, feeToken = LZD address}
Fee payment flow
Paying LayerZero fees on Tempo requires wrapping a whitelisted stablecoin into LZD before sending:
Quote: call quoteSend(sendParam, _payInLzToken) to receive both nativeFee and lzTokenFee. LayerZero lets you choose the fee token via _payInLzToken. At the time of writing, _payInLzToken is not enabled on Tempo, so set it to false and use nativeFee (LZD).
Approve stablecoin: approve the LZD contract to spend your stablecoin.
Wrap: call LZD.wrap(feeToken, recipient, amount) to convert your stablecoin into LZD.
Approve LZD: approve the OFT contract to spend your LZD.
Send: call send() with msg.value = 0 and MessagingFee(nativeFee, 0).
// 1. Quote the feeMessagingFee memory fee = oft.quoteSend(sendParam, false);// 2. Approve stablecoin to LZDIERC20(usdce).approve(address(lzd), fee.nativeFee);// 3. Wrap USDC.e into LZDlzd.wrap(usdce, msg.sender, fee.nativeFee);// 4. Approve LZD to the OFTIERC20(address(lzd)).approve(address(oft), fee.nativeFee);// 5. Send with msg.value = 0oft.send{value: 0}(sendParam, fee, refundAddress);
At the time of writing, _payInLzToken is not enabled on Tempo, so set it to false.
API reference
wrap
function wrap(address _token, address _to, uint256 _amount) public nonReentrant onlyWhitelistedToken(_token)
Wraps a whitelisted stablecoin into LZD. Transfers the underlying token from msg.sender and mints LZD to _to.
Parameters
Name
Type
Description
_token
address
whitelisted stablecoin to wrap
_to
address
address to receive minted LZD
_amount
uint256
amount to wrap (6-decimal)
unwrap
function unwrap(address _token, address _to, uint256 _amount) public nonReentrant onlyWhitelistedToken(_token)
Unwraps LZD back into a whitelisted stablecoin. Burns LZD from msg.sender and transfers the underlying token to _to.
Parameters
Name
Type
Description
_token
address
whitelisted stablecoin to receive
_to
address
address to receive underlying tokens
_amount
uint256
amount to unwrap (6-decimal)
whitelistToken
function whitelistToken(address _token) public onlyOwner
Adds a token to the whitelist. This is an owner-only admin function, so new fee tokens can only be added by the LZD contract owner. The token must have exactly 6 decimals and must not already be whitelisted.
Parameters
Name
Type
Description
_token
address
token address to add
unwhitelistToken
function unwhitelistToken(address _token) public onlyOwner
Removes a token from the whitelist.
Parameters
Name
Type
Description
_token
address
token address to remove
isWhitelistedToken
function isWhitelistedToken(address _token) public view returns (bool isWhitelisted)
Returns whether a token is whitelisted.
Parameters
Name
Type
Description
_token
address
token to check
getWhitelistedTokens
function getWhitelistedTokens() public view returns (address[] memory tokens)
Returns all whitelisted token addresses.
getTokenBalance
function getTokenBalance(address _token) public view returns (uint256 balance)
Returns the contract’s balance of a specific underlying token.
Parameters
Name
Type
Description
_token
address
token to check
decimals
function decimals() public view returns (uint8)
Returns 6. LZD uses 6 decimals to match its underlying whitelisted stablecoins.
Emitted when a token is added to or removed from the whitelist.
Errors
Error
Cause
NotWhitelisted(token)
token is not on the whitelist
Whitelisted(token)
token is already whitelisted (duplicate add)
InvalidToken(token)
token is zero address or the LZD contract
InvalidTokenDecimals(token, decimals)
token does not have 6 decimals
Quoting fees
quoteSend() returns a MessagingFee with both nativeFee and lzTokenFee. LayerZero lets applications choose the payment token via _payInLzToken. At the time of writing, _payInLzToken is not enabled on Tempo, so set it to false and read the fee from nativeFee (LZD):
// false = quote in native fee token (LZD on Tempo)MessagingFee memory fee = oft.quoteSend(sendParam, false);// fee.nativeFee = amount of LZD required// fee.lzTokenFee = 0 on Tempo while _payInLzToken is disabled
msg.value behavior
Tempo’s EndpointV2Alt rejects any transaction that sends native value:
msg.value > 0 reverts with LZ_OnlyAltToken
There is no native drop. addExecutorNativeDropOption is not supported
Always set msg.value = 0 when calling send() on Tempo. Do not attach any native value to LayerZero transactions.
Failure modes
Revert reason
Cause
Mitigation
OFTAltCore__msg_value_not_zero
msg.value > 0 when calling send() on an OFTAlt
set msg.value = 0
LZ_OnlyAltToken
msg.value > 0 reaching the endpoint directly
set msg.value = 0
LZ_LzTokenUnavailable
quoteSend(_, true) called
use quoteSend(_, false)
NotWhitelisted(token)
fee token not whitelisted by LZD
use pathUSD, USDC.e, or USDT0
InvalidTokenDecimals(token, d)
token does not have 6 decimals
use a 6-decimal stablecoin
ERC-20 transfer failure
insufficient LZD balance or missing approval
wrap stablecoin into LZD and approve the OFT
Contract addresses
Contract
Address
LZEndpointDollar
0x0ceb237e109ee22374a567c6b09f373c73fa4cbb
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":""},"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":"6af38b67852f6902678b4207","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"Contracts \u0026 Deployments","count":191},{"language":"default","tag":"V2 Deployments","count":145},{"language":"default","tag":"Developers","count":132},{"language":"default","tag":"Mainnet Endpoints","count":130},{"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":26},{"language":"default","tag":"Testnet Endpoints","count":25},{"language":"default","tag":"Contract Standards","count":21}]},"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":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"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}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}:root{--background-light: 250 250 250 !important;--background-dark: 10 10 10 !important}.custom-button{display:inline-flex!important;align-items:center;justify-content:center;padding:0.5rem 1rem;border-radius:0.375rem;font-weight:600;transition:color 100ms, background-color 100ms, border-color 100ms;text-decoration:none!important;cursor:pointer}.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:0.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/index\"] svg,a[href=\"/chain\"] 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/canton/overview\"] svg{-webkit-mask-image:url('/images/icons/canton-mask.svg')!important;mask-image:url('/images/icons/canton-mask.svg')!important}a[href=\"/v2/developers/tempo/overview\"] svg,a[href=\"/v2/developers/tempo\"] 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 button,.lz-mobile-nav-dialog a{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, black 0%, black 50%, transparent 100%);-webkit-mask-image:linear-gradient(to bottom, black 0%, black 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:0.25}@media (min-width: 900px){.lz-content-video-bg{border-radius:12px}}.lz-mobile-card-header{display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.lz-mobile-icon-wrapper{display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0}.lz-mobile-icon-wrapper [data-rmiz],.lz-mobile-icon-wrapper [data-rmiz-content]{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, 0.1)}html[class~=\"dark\"] .lz-mobile-card-title{color:#fff}a[data-accent]>div{background-color:#ffffff!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/tempo/reference/lz-endpoint-dollar","slug":"/v2/developers/tempo/reference/lz-endpoint-dollar","pageMetadata":{"title":"LZEndpointDollar (LZD)","sidebarTitle":"LZEndpointDollar (LZD)","description":"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.","keywords":["LayerZero","Tempo","LZD","LZEndpointDollar","fee token","EndpointV2Alt"],"lastUpdated":"2026-02-23","author":"LayerZero","schema":"TechArticle","related":["/v2/developers/tempo/overview","/v2/developers/tempo/reference/oft-vs-oftalt","/v2/concepts/protocol/layerzero-endpoint-alt"],"href":"/v2/developers/tempo/reference/lz-endpoint-dollar"},"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: \"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.\"\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={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,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-is-lzd`,children:`What is LZD`}),`\n`,_jsxs(_components.p,{children:[`LZEndpointDollar (LZD) is the canonical USD-denominated fee token for LayerZero on Tempo. Because Tempo has no native gas token, `,_jsx(_components.code,{children:`EndpointV2Alt`}),` uses LZD as the ERC-20 token for all LayerZero messaging fees.`]}),`\n`,_jsx(_components.p,{children:`The endpoint could accept a single TIP-20 token directly, but that would force users to hold one specific stablecoin. LZD is an ERC-20 wrapper around multiple whitelisted 6-decimal stablecoins (pathUSD, USDC.e, or USDT0), so users can pay fees with whichever USD stablecoin they have. Users wrap a supported stablecoin into LZD, then approve the endpoint or OFT to spend it.`}),`\n`,_jsx(Heading,{level:`2`,id:`endpoint-mode-detection`,children:`Endpoint mode detection`}),`\n`,_jsxs(_components.p,{children:[`On any EVM chain, you can check the endpoint type by calling `,_jsx(_components.code,{children:`nativeToken()`}),`. On Tempo, it returns the LZD address:`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`8`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` feeToken `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ILayerZeroEndpointV2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(endpoint).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`nativeToken`}),_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\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (feeToken `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_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:` // Standard Endpoint: pay fees with native token (msg.value)`})}),`\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:`else`}),_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:` // Endpoint Alt: pay fees with ERC20 at feeToken address`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // On Tempo, feeToken = LZD address`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`fee-payment-flow`,children:`Fee payment flow`}),`\n`,_jsx(_components.p,{children:`Paying LayerZero fees on Tempo requires wrapping a whitelisted stablecoin into LZD before sending:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quote`}),`: call `,_jsx(_components.code,{children:`quoteSend(sendParam, _payInLzToken)`}),` to receive both `,_jsx(_components.code,{children:`nativeFee`}),` and `,_jsx(_components.code,{children:`lzTokenFee`}),`. LayerZero lets you choose the fee token via `,_jsx(_components.code,{children:`_payInLzToken`}),`. At the time of writing, `,_jsx(_components.code,{children:`_payInLzToken`}),` is not enabled on Tempo, so set it to `,_jsx(_components.code,{children:`false`}),` and use `,_jsx(_components.code,{children:`nativeFee`}),` (LZD).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Approve stablecoin`}),`: approve the LZD contract to spend your stablecoin.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Wrap`}),`: call `,_jsx(_components.code,{children:`LZD.wrap(feeToken, recipient, amount)`}),` to convert your stablecoin into LZD.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Approve LZD`}),`: approve the OFT contract to spend your LZD.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Send`}),`: call `,_jsx(_components.code,{children:`send()`}),` with `,_jsx(_components.code,{children:`msg.value = 0`}),` and `,_jsx(_components.code,{children:`MessagingFee(nativeFee, 0)`}),`.`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`14`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 1. Quote the fee`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`MessagingFee `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`memory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fee `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` oft.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`quoteSend`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(sendParam, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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. Approve stablecoin to LZD`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`IERC20`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(usdce).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`approve`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(lzd), fee.nativeFee);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 3. Wrap USDC.e into LZD`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`lzd.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`wrap`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(usdce, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, fee.nativeFee);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 4. Approve LZD to the OFT`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`IERC20`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(lzd)).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`approve`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(oft), fee.nativeFee);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 5. Send with msg.value = 0`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`oft.send{value`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}(sendParam, fee, refundAddress);`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`At the time of writing, `,_jsx(_components.code,{children:`_payInLzToken`}),` is not enabled on Tempo, so set it to `,_jsx(_components.code,{children:`false`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`api-reference`,children:`API reference`}),`\n`,_jsx(Heading,{level:`3`,id:`wrap`,children:`wrap`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` wrap`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _to`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` nonReentrant`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onlyWhitelistedToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`_token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Wraps a whitelisted stablecoin into LZD. Transfers the underlying token from `,_jsx(_components.code,{children:`msg.sender`}),` and mints LZD to `,_jsx(_components.code,{children:`_to`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`parameters`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_token`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`whitelisted stablecoin to wrap`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_to`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`address to receive minted LZD`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_amount`}),_jsx(_components.td,{children:`uint256`}),_jsx(_components.td,{children:`amount to wrap (6-decimal)`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`unwrap`,children:`unwrap`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` unwrap`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _to`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` nonReentrant`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onlyWhitelistedToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`_token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Unwraps LZD back into a whitelisted stablecoin. Burns LZD from `,_jsx(_components.code,{children:`msg.sender`}),` and transfers the underlying token to `,_jsx(_components.code,{children:`_to`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`parameters-2`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_token`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`whitelisted stablecoin to receive`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_to`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`address to receive underlying tokens`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_amount`}),_jsx(_components.td,{children:`uint256`}),_jsx(_components.td,{children:`amount to unwrap (6-decimal)`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`whitelisttoken`,children:`whitelistToken`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` whitelistToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onlyOwner`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Adds a token to the whitelist. This is an owner-only admin function, so new fee tokens can only be added by the LZD contract owner. The token must have exactly 6 decimals and must not already be whitelisted.`}),`\n`,_jsx(Heading,{level:`4`,id:`parameters-3`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_token`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`token address to add`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`unwhitelisttoken`,children:`unwhitelistToken`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` unwhitelistToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onlyOwner`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Removes a token from the whitelist.`}),`\n`,_jsx(Heading,{level:`4`,id:`parameters-4`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_token`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`token address to remove`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`iswhitelistedtoken`,children:`isWhitelistedToken`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` isWhitelistedToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` view`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` returns`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bool`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` isWhitelisted`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Returns whether a token is whitelisted.`}),`\n`,_jsx(Heading,{level:`4`,id:`parameters-5`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_token`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`token to check`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`getwhitelistedtokens`,children:`getWhitelistedTokens`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getWhitelistedTokens`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` view`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` returns`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`memory`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tokens`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Returns all whitelisted token addresses.`}),`\n`,_jsx(Heading,{level:`3`,id:`gettokenbalance`,children:`getTokenBalance`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getTokenBalance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` view`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` returns`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` balance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Returns the contract’s balance of a specific underlying token.`}),`\n`,_jsx(Heading,{level:`4`,id:`parameters-6`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`_token`}),_jsx(_components.td,{children:`address`}),_jsx(_components.td,{children:`token to check`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`decimals`,children:`decimals`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` decimals`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` view`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` returns`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint8`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Returns `,_jsx(_components.code,{children:`6`}),`. LZD uses 6 decimals to match its underlying whitelisted stablecoins.`]}),`\n`,_jsx(Heading,{level:`3`,id:`events`,children:`Events`}),`\n`,_jsx(Heading,{level:`4`,id:`tokenwrapped`,children:`TokenWrapped`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`event`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` TokenWrapped`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` to`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Emitted when a whitelisted token is wrapped into LZD.`}),`\n`,_jsx(Heading,{level:`4`,id:`tokenunwrapped`,children:`TokenUnwrapped`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`event`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` TokenUnwrapped`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` to`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Emitted when LZD is unwrapped back into a whitelisted token.`}),`\n`,_jsx(Heading,{level:`4`,id:`tokenwhitelisted`,children:`TokenWhitelisted`}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`1`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`event`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` TokenWhitelisted`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`address`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` indexed`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bool`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` whitelisted`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Emitted when a token is added to or removed from the whitelist.`}),`\n`,_jsx(Heading,{level:`3`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Error`}),_jsx(_components.th,{children:`Cause`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`NotWhitelisted(token)`})}),_jsx(_components.td,{children:`token is not on the whitelist`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Whitelisted(token)`})}),_jsx(_components.td,{children:`token is already whitelisted (duplicate add)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`InvalidToken(token)`})}),_jsx(_components.td,{children:`token is zero address or the LZD contract`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`InvalidTokenDecimals(token, decimals)`})}),_jsx(_components.td,{children:`token does not have 6 decimals`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`quoting-fees`,children:`Quoting fees`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`quoteSend()`}),` returns a `,_jsx(_components.code,{children:`MessagingFee`}),` with both `,_jsx(_components.code,{children:`nativeFee`}),` and `,_jsx(_components.code,{children:`lzTokenFee`}),`. LayerZero lets applications choose the payment token via `,_jsx(_components.code,{children:`_payInLzToken`}),`. At the time of writing, `,_jsx(_components.code,{children:`_payInLzToken`}),` is not enabled on Tempo, so set it to `,_jsx(_components.code,{children:`false`}),` and read the fee from `,_jsx(_components.code,{children:`nativeFee`}),` (LZD):`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`4`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// false = quote in native fee token (LZD on Tempo)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`MessagingFee `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`memory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fee `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` oft.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`quoteSend`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(sendParam, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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:`// fee.nativeFee = amount of LZD required`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// fee.lzTokenFee = 0 on Tempo while _payInLzToken is disabled`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`msg-value-behavior`,children:`msg.value behavior`}),`\n`,_jsxs(_components.p,{children:[`Tempo’s `,_jsx(_components.code,{children:`EndpointV2Alt`}),` rejects any transaction that sends native value:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`msg.value > 0`}),` reverts with `,_jsx(_components.code,{children:`LZ_OnlyAltToken`})]}),`\n`,_jsxs(_components.li,{children:[`There is no native drop. `,_jsx(_components.code,{children:`addExecutorNativeDropOption`}),` is not supported`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Always set `,_jsx(_components.code,{children:`msg.value = 0`}),` when calling `,_jsx(_components.code,{children:`send()`}),` on Tempo. Do not attach any native value to LayerZero transactions.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`failure-modes`,children:`Failure modes`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Revert reason`}),_jsx(_components.th,{children:`Cause`}),_jsx(_components.th,{children:`Mitigation`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OFTAltCore__msg_value_not_zero`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`msg.value > 0`}),` when calling `,_jsx(_components.code,{children:`send()`}),` on an OFTAlt`]}),_jsxs(_components.td,{children:[`set `,_jsx(_components.code,{children:`msg.value = 0`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LZ_OnlyAltToken`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`msg.value > 0`}),` reaching the endpoint directly`]}),_jsxs(_components.td,{children:[`set `,_jsx(_components.code,{children:`msg.value = 0`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LZ_LzTokenUnavailable`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`quoteSend(_, true)`}),` called`]}),_jsxs(_components.td,{children:[`use `,_jsx(_components.code,{children:`quoteSend(_, false)`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`NotWhitelisted(token)`})}),_jsx(_components.td,{children:`fee token not whitelisted by LZD`}),_jsx(_components.td,{children:`use pathUSD, USDC.e, or USDT0`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`InvalidTokenDecimals(token, d)`})}),_jsx(_components.td,{children:`token does not have 6 decimals`}),_jsx(_components.td,{children:`use a 6-decimal stablecoin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`ERC-20 transfer failure`}),_jsx(_components.td,{children:`insufficient LZD balance or missing approval`}),_jsx(_components.td,{children:`wrap stablecoin into LZD and approve the OFT`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`contract-addresses`,children:`Contract addresses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Contract`}),_jsx(_components.th,{children:`Address`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`LZEndpointDollar`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0x0ceb237e109ee22374a567c6b09f373c73fa4cbb`})})]})})]})]})}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":"LZEndpointDollar (LZD)","sidebarTitle":"LZEndpointDollar (LZD)","description":"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.","keywords":["LayerZero","Tempo","LZD","LZEndpointDollar","fee token","EndpointV2Alt"],"lastUpdated":"2026-02-23","author":"LayerZero","schema":"TechArticle","related":["/v2/developers/tempo/overview","/v2/developers/tempo/reference/oft-vs-oftalt","/v2/concepts/protocol/layerzero-endpoint-alt"],"href":"/v2/developers/tempo/reference/lz-endpoint-dollar"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is LZD","slug":"what-is-lzd","depth":2,"children":[]},{"title":"Endpoint mode detection","slug":"endpoint-mode-detection","depth":2,"children":[]},{"title":"Fee payment flow","slug":"fee-payment-flow","depth":2,"children":[]},{"title":"API reference","slug":"api-reference","depth":2,"children":[{"title":"wrap","slug":"wrap","depth":3,"children":[]},{"title":"Parameters","slug":"parameters","depth":4,"children":[]},{"title":"unwrap","slug":"unwrap","depth":3,"children":[]},{"title":"Parameters","slug":"parameters-2","depth":4,"children":[]},{"title":"whitelistToken","slug":"whitelisttoken","depth":3,"children":[]},{"title":"Parameters","slug":"parameters-3","depth":4,"children":[]},{"title":"unwhitelistToken","slug":"unwhitelisttoken","depth":3,"children":[]},{"title":"Parameters","slug":"parameters-4","depth":4,"children":[]},{"title":"isWhitelistedToken","slug":"iswhitelistedtoken","depth":3,"children":[]},{"title":"Parameters","slug":"parameters-5","depth":4,"children":[]},{"title":"getWhitelistedTokens","slug":"getwhitelistedtokens","depth":3,"children":[]},{"title":"getTokenBalance","slug":"gettokenbalance","depth":3,"children":[]},{"title":"Parameters","slug":"parameters-6","depth":4,"children":[]},{"title":"decimals","slug":"decimals","depth":3,"children":[]},{"title":"Events","slug":"events","depth":3,"children":[]},{"title":"TokenWrapped","slug":"tokenwrapped","depth":4,"children":[]},{"title":"TokenUnwrapped","slug":"tokenunwrapped","depth":4,"children":[]},{"title":"TokenWhitelisted","slug":"tokenwhitelisted","depth":4,"children":[]},{"title":"Errors","slug":"errors","depth":3,"children":[]}]},{"title":"Quoting fees","slug":"quoting-fees","depth":2,"children":[]},{"title":"msg.value behavior","slug":"msg-value-behavior","depth":2,"children":[]},{"title":"Failure modes","slug":"failure-modes","depth":2,"children":[]},{"title":"Contract addresses","slug":"contract-addresses","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/78c1baa1725ddc48/scripts/generate-chain-pages.js","/_mintlify/custom/layerzero/98fbe937cdf12e02/scripts/update-deployments/constants.js","/_mintlify/custom/layerzero/27a2c22e239bd904/scripts/update-deployments/index.js"],"subdomain":"layerzero","siteName":"LayerZero","title":"LZEndpointDollar (LZD) - LayerZero","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-16T22:02:51.384Z","originalFileLocation":"v2/developers/tempo/reference/lz-endpoint-dollar.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=\"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.\">\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=\"LZEndpointDollar (LZD) - LayerZero\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.\">\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/tempo/reference/lz-endpoint-dollar\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://layerzero.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=LZEndpointDollar+%28LZD%29\u0026amp;description=Reference+for+LZEndpointDollar%2C+the+canonical+USD-denominated+fee+token+used+by+LayerZero+on+Tempo.\u0026amp;theme=4ff8e107cd9daccb3719eb18\u0026amp;signature=0a91dfb262dc93b683f115aa43b96177423b51a2005b06a91ea4414ce380a321\">\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=\"LZEndpointDollar (LZD) - LayerZero\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://layerzero.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=LZEndpointDollar+%28LZD%29\u0026amp;description=Reference+for+LZEndpointDollar%2C+the+canonical+USD-denominated+fee+token+used+by+LayerZero+on+Tempo.\u0026amp;theme=4ff8e107cd9daccb3719eb18\u0026amp;signature=0a91dfb262dc93b683f115aa43b96177423b51a2005b06a91ea4414ce380a321\">\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/tempo/reference/lz-endpoint-dollar\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/developers/tempo/reference/lz-endpoint-dollar.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/tempo/reference/lz-endpoint-dollar#webpage\",\"url\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar\",\"name\":\"LZEndpointDollar (LZD)\",\"description\":\"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.\",\"dateModified\":\"2026-03-16T22:02:51.384Z\",\"isPartOf\":{\"@id\":\"https://docs.layerzero.network#website\"},\"breadcrumb\":{\"@id\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"LayerZero\",\"item\":\"https://docs.layerzero.network\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LZEndpointDollar (LZD)\",\"item\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar#article\",\"headline\":\"LZEndpointDollar (LZD)\",\"name\":\"LZEndpointDollar (LZD)\",\"description\":\"Reference for LZEndpointDollar, the canonical USD-denominated fee token used by LayerZero on Tempo.\",\"url\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar\",\"mainEntityOfPage\":{\"@id\":\"https://docs.layerzero.network/v2/developers/tempo/reference/lz-endpoint-dollar#webpage\"},\"dateModified\":\"2026-03-16T22:02:51.384Z\",\"keywords\":\"LayerZero, Tempo, LZD, LZEndpointDollar, fee token, EndpointV2Alt\",\"publisher\":{\"@id\":\"https://docs.layerzero.network/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.layerzero.network#website\"}}]}\u003c/script>","agentPointerHref":"/v2/developers/tempo/reference/lz-endpoint-dollar.md","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","pages":[{"title":"Aptos Move","href":"/v2/developers/aptos-move/overview"}]},{"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":"Canton","icon":"circle","pages":[{"title":"Canton","href":"/v2/developers/canton/overview"}]},{"item":"Tempo","icon":"circle","groups":[{"group":"LayerZero for Tempo","pages":[{"title":"LayerZero on Tempo","sidebarTitle":"Overview","href":"/v2/developers/tempo/overview"}]},{"group":"How-To","pages":[{"title":"Support OFTs and OApps on Tempo","sidebarTitle":"Support OFTs and OApps","description":"How to adapt OFT and OApp deployments for Tempo: fee payment with LZD, OFTAlt contracts, and the TempoOFTWrapper flow.","href":"/v2/developers/tempo/how-to/support-ofts-and-oapps"}]},{"group":"Reference","pages":[{"title":"LZEndpointDollar (LZD)","sidebarTitle":"LZEndpointDollar (LZD)","href":"/v2/developers/tempo/reference/lz-endpoint-dollar"},{"title":"OFT and OApp Alt Variants on Tempo","sidebarTitle":"Alt Variants (OFTAlt \u0026 OAppAlt)","description":"Why Tempo requires OFTAlt and OAppAlt instead of standard contracts, and how the ERC-20 fee path works with EndpointV2Alt.","href":"/v2/developers/tempo/reference/oft-vs-oftalt"},{"title":"TIP-20 Token Standard","sidebarTitle":"TIP-20 Token Standard","href":"/v2/developers/tempo/reference/tip-20-token-standard"},{"title":"Stargate UX on Tempo","sidebarTitle":"Stargate UX","href":"/v2/developers/tempo/reference/stargate-ux"}]}]},{"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":"LZEndpointDollar (LZD) - LayerZero","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":[],"chunks":[]}