{
"message": "Unable to find a quote for the requested transfer",
"errors": {}
}
Single-step quote
Get a quote for a token transfer
This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not.
The endpoint returns a Step object which contains information about the estimated result as well as a transactionRequest which can directly be sent to your wallet.
The estimated result can be found inside the estimate, containing the estimated toAmount of the requested Token and the toAmountMin, which is the guaranteed minimum value that the transfer will yield including slippage.
If you want to learn more about how to use this endpoint please have a look at our guide.
GET
/
v1
/
quote
Get a quote for a token transfer
curl --request GET \ --url https://li.quest/v1/quote
{
"message": "Unable to find a quote for the requested transfer",
"errors": {}
}
For preset options, use the preset query parameter. See the API presets overview. The stablecoin preset is ideal for stablecoin transfers and can be customized. To see supported stablecoins, use /v1/tokens?tags=stablecoin.
Use denyPools to exclude specific AMM pools or Solana venues from routing. Provide 1–100 identifiers and repeat the query parameter to exclude multiple entries:
Uniswap V2/V3: a non-zero EVM pool address (0x + 40 hex characters)
Uniswap V4:<poolManagerAddress>-<poolId>, where poolId is 0x + 64 hex characters
Solana: a venue’s program ID (base58), for example HumidiFi 9H6tua7jkLhdm3w8BvgpTn5LZNU7g4ZynDmCiNN3q6Rp. It excludes every pool of that venue. Individual Solana pool addresses are not supported.
Only some exchanges can exclude pools, so the entries restrict which exchanges a swap can use:
EVM pool entries restrict swaps on every chain except Solana to fly.
Solana program IDs restrict swaps on Solana to jupiter, titan and okx.
Swaps on a chain with no matching entries are not restricted.
Set slippageScope=route to make slippage the budget for the whole route instead of the tolerance for each step. toAmountMin is then a single floor, ceil(expected output × (1 − slippage)), which the returned transactionRequest enforces. The response carries a routeSlippage commitment.Supported for EVM routes with at most one swap. Routes that can’t be protected are refused with ROUTE_SLIPPAGE_UNSUPPORTED instead of falling back to per-step slippage. See Route-wide Slippage.
Which kind of route should be preferred FASTEST: This sorting criterion prioritizes routes with the shortest estimated execution time. Users who value speed and want their transactions to be completed as quickly as possible should choose the fastest routes. CHEAPEST: This criterion focuses on minimizing the cost of the transaction, whether in token amount or USD amount (USD amount minus gas cost). Users looking for the most economical option should choose the cheapest routes.
Scope of slippage. step (default, same as omitted): slippage applies to every step and toAmountMin combines the steps' minimums. route: slippage is the budget for the whole route, toAmountMin is one floor, ceil(expected output × (1 − slippage)), that the returned transaction enforces, and the response carries a routeSlippage commitment. Supported for EVM routes with at most one swap: a swap on one chain, or a bridge that delivers to the recipient with or without one swap before it. Other routes are refused with ROUTE_SLIPPAGE_UNSUPPORTED instead of falling back to step scope. When slippage is omitted, the budget is the default slippage. See Route-wide Slippage.
Optional array of partner-specified fee distributions. Each entry transfers its percentage of the source fromAmount to the receiver address in parallel with the integrator fee and any intermediary carve-out. On GET quote endpoints, encode entries with indexed query keys (distributionFees[0][receiver], distributionFees[0][percentage]); a JSON string in a single query parameter is rejected with a validation error. OpenAPI 3.0 does not define serialization for nested arrays of objects, so generated clients and API consoles must construct these indexed keys explicitly instead of using the default query serialization. On EVM and Tron this requires FeeForwarder on the source chain (legacy FeeCollector chains are rejected); on Solana each receiver is paid with its own transfer instruction and at most 2 entries are accepted. The receiver form must match the source chain: 0x-prefixed hex on EVM/Tron, base58 on Solana. Limits: 1..10 entries, each percentage in (0, 0.5); total of all distribution percentages plus the integrator fee must be strictly less than 1. Receivers are sanctions-screened at transaction-build time. On Solana swap-and-bridge routes the percentages apply to the swap output in the intermediate token.
List of bridges that are allowed for this transaction. Retrieve the current catalog from the /v1/tools endpoint. Also values all, none, default and [] are acceptable and mean all tools of the current type (all), no tools (for none and [] cases) and default tool's settings on the current stage.
Bridge tool identifier or keyword. Retrieve current bridge keys from the /v1/tools endpoint. Supported keywords: all, none, default, [].
List of exchanges that are allowed for this transaction. Retrieve the current catalog from the /v1/tools endpoint. Also values all, none, default and [] are acceptable and mean all tools of the current type (all), no tools (for none and [] cases) and default tool's settings on the current stage.
Exchange tool identifier or keyword. Retrieve current exchange keys from the /v1/tools endpoint. Supported keywords: all, none, default, [].
List of bridges that are not allowed for this transaction. Retrieve the current catalog from the /v1/tools endpoint. Also values all, none, default and [] are acceptable and mean all tools of the current type (all), no tools (for none and [] cases) and default tool's settings on the current stage.
Bridge tool identifier or keyword. Retrieve current bridge keys from the /v1/tools endpoint. Supported keywords: all, none, default, [].
List of exchanges that are not allowed for this transaction. Retrieve the current catalog from the /v1/tools endpoint. Also values all, none, default and [] are acceptable and mean all tools of the current type (all), no tools (for none and [] cases) and default tool's settings on the current stage.
Exchange tool identifier or keyword. Retrieve current exchange keys from the /v1/tools endpoint. Supported keywords: all, none, default, [].
One to 100 AMM pool or Solana venue identifiers to exclude from routing. Repeat the query parameter for multiple entries. Each entry is a non-zero Uniswap V2/V3 pool address (0x + 40 hex), a Uniswap V4 composite <poolManagerAddress>-<poolId> where poolId is a 32-byte hex string (0x + 64 hex), or a Solana venue program ID (base58), which excludes every pool of that venue. Identifiers of other chains are rejected; individual Solana pool addresses are not supported. Only some exchanges can exclude pools: EVM pool entries restrict swaps on every chain except Solana to the fly exchange, and Solana program IDs restrict swaps on Solana to jupiter, titan and okx. Swaps on a chain with no matching entries are not restricted.
List of bridges that should be preferred for this transaction. Retrieve the current catalog from the /v1/tools endpoint. Also values all, none, default and [] are acceptable and mean all tools of the current type (all), no tools (for none and [] cases) and default tool's settings on the current stage.
Bridge tool identifier or keyword. Retrieve current bridge keys from the /v1/tools endpoint. Supported keywords: all, none, default, [].
List of exchanges that should be preferred for this transaction. Retrieve the current catalog from the /v1/tools endpoint. Also values all, none, default and [] are acceptable and mean all tools of the current type (all), no tools (for none and [] cases) and default tool's settings on the current stage.
Exchange tool identifier or keyword. Retrieve current exchange keys from the /v1/tools endpoint. Supported keywords: all, none, default, [].
Whether swaps or other contract calls should be allowed as part of the destination transaction of a bridge transfer. Separate swap transactions on the destination chain are not affected by this flag. By default, parameter is true.
The price impact threshold above which routes are hidden. As an example, one should specify 0.15 (15%) to hide routes with more than 15% price impact. The default is 10%.
Timing setting to wait for a certain amount of swap rates. In the format minWaitTime-${minWaitTimeMs}-${startingExpectedResults}-${reduceEveryMs}. Please check docs.li.fi for more details.
Timing setting to wait for a certain amount of routes to be generated before chosing the best one. In the format minWaitTime-${minWaitTimeMs}-${startingExpectedResults}-${reduceEveryMs}. Please check docs.li.fi for more details.
Pre-configured routing optimization preset. The preset value stablecoin is supported for requesting swap and/or bridging operations involving stablecoin tokens. Each preset provides optimized default settings for slippage, price impact, and tool preferences that can be overridden by custom configuration parameters set in the request.
Maximum Solana transaction version the client can sign. Defaults to 0; omission or null uses v0. Set to 1 to allow V1 where enabled for the environment. Jito requests always use v0. Size overflow may fall back to v0. Read transactionRequest.svmTransactionVersion for the version actually built. Ignored for source chains other than Solana.
The type of the step. swap executes a DEX swap on a single chain, cross bridges assets between chains, lifi runs LiFi's internal multi-action logic, and protocol represents protocol-level actions such as fee collection or vault interactions executed inside LiFi managed contracts.
Present only when the route was requested with slippageScope=route. The route-wide slippage commitment: post it back unchanged with the step to /v1/advanced/stepTransaction.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LI.FI","description":"Get the best price execution for any swaps and bridging across EVM chains, Solana, Bitcoin and alt-VMs. Enable trading across all DEX aggregators, bridges, and intent-systems and save hundreds of developer hours.","colors":{"primary":"#5C67FF","light":"#fab6f4","dark":"#5C67FF"},"logo":{"light":"https://mintcdn.com/lifi/EmProAEgMrruLUbI/logo/light.png?fit=max\u0026auto=format\u0026n=EmProAEgMrruLUbI\u0026q=85\u0026s=f435348680e682acea6e3b9af339ed7a","dark":"https://mintcdn.com/lifi/EmProAEgMrruLUbI/logo/dark.png?fit=max\u0026auto=format\u0026n=EmProAEgMrruLUbI\u0026q=85\u0026s=d02539147db168291d7c711beb45d10b"},"favicon":"https://mintcdn.com/lifi/jEGN0oG6bNsdv0a3/logo/favicon.svg?fit=max\u0026auto=format\u0026n=jEGN0oG6bNsdv0a3\u0026q=85\u0026s=35fb6353ca8815e24daf1025135fef38","api":{"openapi":"openapi.yaml"},"appearance":{"default":"dark"},"background":{"color":{"light":"#FAFAFF","dark":"#000B29"}},"navbar":{"links":[{"href":"https://lifihelp.zendesk.com/hc/en-us","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://portal.li.fi/signup"}},"footer":{"socials":{"x":"https://x.com/lifiprotocol","github":"https://github.com/lifinance","website":"https://li.fi/"},"links":[{"header":"Company","items":[{"label":"Careers","href":"https://li.fi/careers"},{"label":"Brand Assets","href":"https://li.fi/brand-assets"},{"label":"About","href":"https://li.fi/"}]},{"header":"Tools","items":[{"label":"LI.FI Explorer","href":"https://explorer.li.fi/?utm_source=lifi\u0026utm_medium=footer_link_tools\u0026utm_campaign=lifi_to_explorer"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://li.fi/legal/privacy-policy"},{"label":"Terms of Service","href":"https://li.fi/legal/terms-and-conditions"},{"label":"Imprint","href":"https://li.fi/legal/imprint"}]}]},"styling":{"eyebrows":"section","codeblocks":"system","latex":false},"integrations":{"ga4":{"measurementId":"G-NTE1P73M4Q"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"introduction/introduction"},{"language":"zh-Hans","href":"zh-Hans/introduction/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lifi","hasAudioNarration":false,"actualSubdomain":"lifi","customDomains":["docs.li.fi"],"gitSource":{"type":"github","owner":"lifinance","repo":"public-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4467b6255dab49421940b","collectionId":"fe96f741-47cb-43b3-b1b9-c7bfc174e641","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4467b6255dab49421940b"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4467b6255dab49421940b","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"en","tag":"Overview","count":48},{"language":"en","tag":"Composer","count":46},{"language":"zh-Hans","tag":"Composer","count":46},{"language":"zh-Hans","tag":"概述","count":44},{"language":"en","tag":"API Reference","count":34},{"language":"en","tag":"Intents \u0026 Solvers","count":32},{"language":"zh-Hans","tag":"意图与求解器","count":32},{"language":"en","tag":"Integrate via Composer API","count":30},{"language":"zh-Hans","tag":"通过 Composer API 集成","count":30},{"language":"zh-Hans","tag":"API 参考","count":29},{"language":"en","tag":"Reference","count":23},{"language":"en","tag":"For Agents","count":21},{"language":"en","tag":"Widget","count":20},{"language":"zh-Hans","tag":"Widget","count":20},{"language":"zh-Hans","tag":"参考文档","count":19},{"language":"en","tag":"Getting Started","count":16},{"language":"en","tag":"General API","count":16},{"language":"zh-Hans","tag":"通用 API","count":16},{"language":"zh-Hans","tag":"企业级功能","count":15},{"language":"zh-Hans","tag":"入门","count":14}]},"assistantConfig":{},"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":false},"customCss":[],"page":{"pagePath":"api-reference/get-a-quote-for-a-token-transfer","slug":"/api-reference/get-a-quote-for-a-token-transfer","pageMetadata":{"openapi":"get /v1/quote","title":"Get a quote for a token transfer","description":"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not.\nThe endpoint returns a `Step` object which contains information about the estimated result as well as a `transactionRequest` which can directly be sent to your wallet.\nThe estimated result can be found inside the `estimate`, containing the estimated `toAmount` of the requested `Token` and the `toAmountMin`, which is the guaranteed minimum value that the transfer will yield including slippage.\nIf you want to learn more about how to use this endpoint please have a look at our [guide](/introduction/user-flows-and-examples/requesting-route-fetching-quote).","href":"/api-reference/get-a-quote-for-a-token-transfer"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not.\\nThe endpoint returns a \", _jsx(_components.code, {\n children: \"Step\"\n }), \" object which contains information about the estimated result as well as a \", _jsx(_components.code, {\n children: \"transactionRequest\"\n }), \" which can directly be sent to your wallet.\\nThe estimated result can be found inside the \", _jsx(_components.code, {\n children: \"estimate\"\n }), \", containing the estimated \", _jsx(_components.code, {\n children: \"toAmount\"\n }), \" of the requested \", _jsx(_components.code, {\n children: \"Token\"\n }), \" and the \", _jsx(_components.code, {\n children: \"toAmountMin\"\n }), \", which is the guaranteed minimum value that the transfer will yield including slippage.\\nIf you want to learn more about how to use this endpoint please have a look at our \", _jsx(_components.a, {\n href: \"/introduction/user-flows-and-examples/requesting-route-fetching-quote\",\n children: \"guide\"\n }), \".\"]\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`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Info}=_components;if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[`For preset options, use the `,_jsx(_components.code,{children:`preset`}),` query parameter. See the `,_jsx(_components.a,{href:`/api-reference/presets/overview`,children:`API presets overview`}),`. The `,_jsx(_components.a,{href:`/api-reference/presets/stablecoin`,children:`stablecoin preset`}),` is ideal for stablecoin transfers and can be customized. To see supported stablecoins, use `,_jsx(_components.code,{children:`/v1/tokens?tags=stablecoin`}),`.`]})}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`denyPools`}),` to exclude specific AMM pools or Solana venues from routing. Provide 1–100 identifiers and repeat the query parameter to exclude multiple entries:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Uniswap V2/V3:`}),` a non-zero EVM pool address (`,_jsx(_components.code,{children:`0x`}),` + 40 hex characters)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Uniswap V4:`}),` `,_jsx(_components.code,{children:`\u003cpoolManagerAddress>-\u003cpoolId>`}),`, where `,_jsx(_components.code,{children:`poolId`}),` is `,_jsx(_components.code,{children:`0x`}),` + 64 hex characters`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Solana:`}),` a venue’s program ID (base58), for example HumidiFi `,_jsx(_components.code,{children:`9H6tua7jkLhdm3w8BvgpTn5LZNU7g4ZynDmCiNN3q6Rp`}),`. It excludes every pool of that venue. Individual Solana pool addresses are not supported.`]}),`\n`]}),_jsx(_components.p,{children:`Only some exchanges can exclude pools, so the entries restrict which exchanges a swap can use:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`EVM pool entries restrict swaps on every chain except Solana to `,_jsx(_components.code,{children:`fly`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Solana program IDs restrict swaps on Solana to `,_jsx(_components.code,{children:`jupiter`}),`, `,_jsx(_components.code,{children:`titan`}),` and `,_jsx(_components.code,{children:`okx`}),`.`]}),`\n`,_jsx(_components.li,{children:`Swaps on a chain with no matching entries are not restricted.`}),`\n`]})]}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`slippageScope=route`}),` to make `,_jsx(_components.code,{children:`slippage`}),` the budget for the whole route instead of the tolerance for each step. `,_jsx(_components.code,{children:`toAmountMin`}),` is then a single floor, `,_jsx(_components.code,{children:`ceil(expected output × (1 − slippage))`}),`, which the returned `,_jsx(_components.code,{children:`transactionRequest`}),` enforces. The response carries a `,_jsx(_components.code,{children:`routeSlippage`}),` commitment.`]}),_jsxs(_components.p,{children:[`Supported for EVM routes with at most one swap. Routes that can’t be protected are refused with `,_jsx(_components.code,{children:`ROUTE_SLIPPAGE_UNSUPPORTED`}),` instead of falling back to per-step slippage. See `,_jsx(_components.a,{href:`/guides/route-wide-slippage`,children:`Route-wide Slippage`}),`.`]})]})]})}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":{"codeStyling":"system","config":{},"pageMetadata":{"openapi":"get /v1/quote","title":"Get a quote for a token transfer","description":"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not.\nThe endpoint returns a `Step` object which contains information about the estimated result as well as a `transactionRequest` which can directly be sent to your wallet.\nThe estimated result can be found inside the `estimate`, containing the estimated `toAmount` of the requested `Token` and the `toAmountMin`, which is the guaranteed minimum value that the transfer will yield including slippage.\nIf you want to learn more about how to use this endpoint please have a look at our [guide](/introduction/user-flows-and-examples/requesting-route-fetching-quote).","href":"/api-reference/get-a-quote-for-a-token-transfer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/lifi/951d8dd0c2dbce84/plausible.js","/_mintlify/custom/lifi/8e3c41579c236ea7/scripts/translate-docs.js","/_mintlify/custom/lifi/b34903975490ec23/scripts/generate-md-redirects.js","/_mintlify/custom/lifi/516472b23ab068ad/scripts/check-links.js","/_mintlify/custom/lifi/70364f7a7384bb43/scripts/markdown-chunker.js","/_mintlify/custom/lifi/6c99617851837b30/scripts/translation-config.js","/_mintlify/custom/lifi/8f88293865b45873/scripts/verify-translation-coverage.js"],"openApiReferenceData":{"operation":{"parameters":["a9fe5c68-7aa3-4d36-8284-e27fb531ef53","cd7c2973-2e4d-4b4e-bf6c-7fdc64648b42","1ca501b7-4154-464e-a30f-356821242630","25a84003-55a5-41e9-99ea-ad2cd85b6bc8","0858b912-c2d3-478d-97af-ce90717f2fda","94f5839a-a54b-4848-afbf-bebdde903f1e","32130c10-be9d-4017-ab7d-3094aaa64f1e","e8804242-246d-415d-b06a-cbc59ecc459d","f0a167eb-e419-4512-9dca-a79e193e4733","46f25aee-1600-45f5-af03-2b704ecc48ae","4fb929fa-4be3-48dc-a6dd-04eea793ed54","f036437c-1762-4585-9a93-9d531ad2bf01","ac5fe8f7-05a6-4ad7-9116-d1c339e2be39","a82673dc-ea98-4c13-912a-df8eb606be8d","65f3b47b-2a0d-4dc1-8862-70b57095e38c","861fff12-f4b1-4191-bce9-452ab324e064","102fd98d-0475-4c7c-8784-8d0bf368b3a8","859fc825-99df-42ff-974d-ce7b5aaf399b","1599a631-43b1-4a6e-882d-c79bb3c90e57","4cebbb44-23e5-4884-acbf-08dfbb0db1e0","0c8b8cd1-9ea6-4ef3-b1ac-dacee9ebaa0d","abd69911-fdf1-447b-8cc2-6f344adf6ba5","b5b5a380-0d93-43fe-9aee-a8362d52832c","22254372-44c5-4e0d-aa8a-138a69a12579","c5cdbe24-4fcb-4392-8d34-0209b3a1bb03","fe11f115-1798-4d9f-9dec-c7c4e26c53b2","e3a3edb9-7361-418d-a007-0a88cb9bec8e","32b415c9-87d5-4374-8ed2-e872241ed427","f09241d1-3a7c-4fb9-b4ab-a70eca3a03aa","9e07f1ca-dd49-4215-b3b6-3f0a920b9ed3","354ef510-70fe-4762-8b9d-0948b902162e"],"responses":{"200":"164bce56-0fbe-4567-86b6-d35c866b6de5","400":"f77ff004-e6b4-4878-9992-56210700a8a0","404":"8ca19f7a-acd6-4b9a-b05a-531f5f0858da"},"summary":"Get a quote for a token transfer","description":"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not.\nThe endpoint returns a `Step` object which contains information about the estimated result as well as a `transactionRequest` which can directly be sent to your wallet.\nThe estimated result can be found inside the `estimate`, containing the estimated `toAmount` of the requested `Token` and the `toAmountMin`, which is the guaranteed minimum value that the transfer will yield including slippage.\nIf you want to learn more about how to use this endpoint please have a look at our [guide](/introduction/user-flows-and-examples/requesting-route-fetching-quote).","method":"get","type":"path","servers":["2d571c46-53ec-43a1-9793-fbf2719d026d","ea026e35-a5ad-4fd4-9864-837362b78550"],"security":[],"path":"/v1/quote","baseUrlOptions":["https://li.quest","https://staging.li.quest"],"title":"Get a quote for a token transfer","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a9fe5c68-7aa3-4d36-8284-e27fb531ef53":{"example":"DAI","name":"fromChain","description":"The sending chain. Can be the chain id or chain key","schema":{"type":"string","isRequired":true,"description":"The sending chain. Can be the chain id or chain key","uniqueKey":"","typeLabel":"string"},"in":"query","required":true},"cd7c2973-2e4d-4b4e-bf6c-7fdc64648b42":{"example":"POL","name":"toChain","description":"The receiving chain. Can be the chain id or chain key","schema":{"type":"string","isRequired":true,"description":"The receiving chain. Can be the chain id or chain key","uniqueKey":"","typeLabel":"string"},"in":"query","required":true},"1ca501b7-4154-464e-a30f-356821242630":{"example":"0x4ecaba5870353805a9f068101a40e0f32ed605c6","name":"fromToken","description":"The token that should be transferred. Can be the address or the symbol","schema":{"type":"string","isRequired":true,"description":"The token that should be transferred. Can be the address or the symbol","uniqueKey":"","typeLabel":"string"},"in":"query","required":true},"25a84003-55a5-41e9-99ea-ad2cd85b6bc8":{"example":"0x2791bca1f2de4661ed88a30c99a7a9449aa84174","name":"toToken","description":"The token that should be transferred to. Can be the address or the symbol","schema":{"type":"string","isRequired":true,"description":"The token that should be transferred to. Can be the address or the symbol","uniqueKey":"","typeLabel":"string"},"in":"query","required":true},"0858b912-c2d3-478d-97af-ce90717f2fda":{"example":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0","name":"fromAddress","description":"The sending wallet address","schema":{"type":"string","isRequired":true,"description":"The sending wallet address","uniqueKey":"","typeLabel":"string"},"in":"query","required":true},"94f5839a-a54b-4848-afbf-bebdde903f1e":{"example":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0","name":"toAddress","description":"The receiving wallet address. If none is provided, the fromAddress will be used","schema":{"type":"string","isRequired":false,"description":"The receiving wallet address. If none is provided, the fromAddress will be used","uniqueKey":"","typeLabel":"string"},"in":"query","required":false},"32130c10-be9d-4017-ab7d-3094aaa64f1e":{"example":"1000000","name":"fromAmount","description":"The amount that should be sent including all decimals (e.g. 1000000 for 1 USDC (6 decimals))","schema":{"type":"string","isRequired":true,"description":"The amount that should be sent including all decimals (e.g. 1000000 for 1 USDC (6 decimals))","uniqueKey":"","typeLabel":"string"},"in":"query","required":true},"e8804242-246d-415d-b06a-cbc59ecc459d":{"name":"order","description":"Which kind of route should be preferred **FASTEST**: This sorting criterion prioritizes routes with the shortest estimated execution time. Users who value speed and want their transactions to be completed as quickly as possible should choose the fastest routes. **CHEAPEST**: This criterion focuses on minimizing the cost of the transaction, whether in token amount or USD amount (USD amount minus gas cost). Users looking for the most economical option should choose the cheapest routes.","schema":{"enum":["FASTEST","CHEAPEST"],"type":"string","description":"Which kind of route should be preferred **FASTEST**: This sorting criterion prioritizes routes with the shortest estimated execution time. Users who value speed and want their transactions to be completed as quickly as possible should choose the fastest routes. **CHEAPEST**: This criterion focuses on minimizing the cost of the transaction, whether in token amount or USD amount (USD amount minus gas cost). Users looking for the most economical option should choose the cheapest routes.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"in":"query"},"f0a167eb-e419-4512-9dca-a79e193e4733":{"example":0.005,"name":"slippage","description":"The maximum allowed slippage for the transaction as a decimal value. 0.005 represents 0.5%.","schema":{"maximum":1,"minimum":0,"type":"number","description":"The maximum allowed slippage for the transaction as a decimal value. 0.005 represents 0.5%.","uniqueKey":"","typeLabel":"number"},"in":"query"},"46f25aee-1600-45f5-af03-2b704ecc48ae":{"example":"route","name":"slippageScope","description":"Scope of `slippage`. `step` (default, same as omitted): `slippage` applies to every step and `toAmountMin` combines the steps' minimums. `route`: `slippage` is the budget for the whole route, `toAmountMin` is one floor, `ceil(expected output × (1 − slippage))`, that the returned transaction enforces, and the response carries a `routeSlippage` commitment. Supported for EVM routes with at most one swap: a swap on one chain, or a bridge that delivers to the recipient with or without one swap before it. Other routes are refused with `ROUTE_SLIPPAGE_UNSUPPORTED` instead of falling back to step scope. When `slippage` is omitted, the budget is the default slippage. See [Route-wide Slippage](/guides/route-wide-slippage).","schema":{"enum":["step","route"],"type":"string","description":"Scope of `slippage`. `step` (default, same as omitted): `slippage` applies to every step and `toAmountMin` combines the steps' minimums. `route`: `slippage` is the budget for the whole route, `toAmountMin` is one floor, `ceil(expected output × (1 − slippage))`, that the returned transaction enforces, and the response carries a `routeSlippage` commitment. Supported for EVM routes with at most one swap: a swap on one chain, or a bridge that delivers to the recipient with or without one swap before it. Other routes are refused with `ROUTE_SLIPPAGE_UNSUPPORTED` instead of falling back to step scope. When `slippage` is omitted, the budget is the default slippage. See [Route-wide Slippage](/guides/route-wide-slippage).","uniqueKey":"","typeLabel":"enum\u003cstring>"},"in":"query"},"4fb929fa-4be3-48dc-a6dd-04eea793ed54":{"example":"fee-demo","name":"integrator","description":"A string containing tracking information about the integrator of the API","schema":{"type":"string","description":"A string containing tracking information about the integrator of the API","uniqueKey":"","typeLabel":"string"},"in":"query"},"f036437c-1762-4585-9a93-9d531ad2bf01":{"example":0.02,"name":"fee","description":"The percent of the integrator's fee that is taken from every transaction. 0.02 represents 2%. The maximum fee amount should be less than 100%.","schema":{"maximum":1,"exclusiveMaximum":true,"minimum":0,"type":"number","description":"The percent of the integrator's fee that is taken from every transaction. 0.02 represents 2%. The maximum fee amount should be less than 100%.","uniqueKey":"","typeLabel":"number"},"in":"query"},"ac5fe8f7-05a6-4ad7-9116-d1c339e2be39":{"name":"distributionFees","description":"Optional array of partner-specified fee distributions. Each entry transfers its `percentage` of the source `fromAmount` to the `receiver` address in parallel with the integrator fee and any intermediary carve-out. On GET quote endpoints, encode entries with indexed query keys (`distributionFees[0][receiver]`, `distributionFees[0][percentage]`); a JSON string in a single query parameter is rejected with a validation error. OpenAPI 3.0 does not define serialization for nested arrays of objects, so generated clients and API consoles must construct these indexed keys explicitly instead of using the default query serialization. On EVM and Tron this requires FeeForwarder on the source chain (legacy FeeCollector chains are rejected); on Solana each receiver is paid with its own transfer instruction and at most 2 entries are accepted. The `receiver` form must match the source chain: 0x-prefixed hex on EVM/Tron, base58 on Solana. Limits: 1..10 entries, each `percentage` in (0, 0.5); total of all distribution percentages plus the integrator `fee` must be strictly less than 1. Receivers are sanctions-screened at transaction-build time. On Solana swap-and-bridge routes the percentages apply to the swap output in the intermediate token.","schema":{"type":"array","minItems":1,"maxItems":10,"items":{"title":"Root Type for DistributionFeeEntry","description":"Partner-specified fee distribution entry. The `percentage` of the original `fromAmount` is transferred to `receiver` in parallel with the integrator fee and any intermediary carve-out — via the FeeForwarder contract on EVM/Tron, as a dedicated transfer instruction on Solana. On Solana swap-and-bridge routes, the percentage applies to the swap output in the intermediate token instead of fromAmount.","required":["percentage","receiver"],"type":"object","properties":{"percentage":{"description":"Fraction of the source token's `fromAmount` to transfer to the receiver (on Solana swap-and-bridge routes, use the swap output in the intermediate token instead). Must be greater than 0 and strictly less than 0.5 per entry; the total of all distributionFees percentages plus the integrator `fee` must remain strictly less than 1.","format":"double","maximum":0.5,"exclusiveMaximum":true,"minimum":0,"exclusiveMinimum":true,"type":"number","isRequired":true,"uniqueKey":"items.[INDEX].percentage","typeLabel":"number\u003cdouble>"},"receiver":{"description":"Recipient address in the form of the source chain: 20-byte 0x-prefixed hex on EVM/Tron (all-lowercase or a valid EIP-55 checksum), base58 public key on Solana. A receiver whose form does not match the source chain is rejected.","type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","isRequired":true,"uniqueKey":"items.[INDEX].receiver","typeLabel":"string"}},"uniqueKey":"items.[INDEX]","typeLabel":"Root Type for DistributionFeeEntry · object"},"description":"Optional array of partner-specified fee distributions. Each entry transfers its `percentage` of the source `fromAmount` to the `receiver` address in parallel with the integrator fee and any intermediary carve-out. On GET quote endpoints, encode entries with indexed query keys (`distributionFees[0][receiver]`, `distributionFees[0][percentage]`); a JSON string in a single query parameter is rejected with a validation error. OpenAPI 3.0 does not define serialization for nested arrays of objects, so generated clients and API consoles must construct these indexed keys explicitly instead of using the default query serialization. On EVM and Tron this requires FeeForwarder on the source chain (legacy FeeCollector chains are rejected); on Solana each receiver is paid with its own transfer instruction and at most 2 entries are accepted. The `receiver` form must match the source chain: 0x-prefixed hex on EVM/Tron, base58 on Solana. Limits: 1..10 entries, each `percentage` in (0, 0.5); total of all distribution percentages plus the integrator `fee` must be strictly less than 1. Receivers are sanctions-screened at transaction-build time. On Solana swap-and-bridge routes the percentages apply to the swap output in the intermediate token.","uniqueKey":"","typeLabel":"Root Type for DistributionFeeEntry · object[]"},"in":"query"},"a82673dc-ea98-4c13-912a-df8eb606be8d":{"name":"referrer","description":"A string containing tracking information about the referrer of the integrator","schema":{"type":"string","isRequired":false,"description":"A string containing tracking information about the referrer of the integrator","uniqueKey":"","typeLabel":"string"},"in":"query","required":false},"65f3b47b-2a0d-4dc1-8862-70b57095e38c":{"example":"hop,cbridge","name":"allowBridges","description":"List of bridges that are allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","schema":{"type":"array","items":{"type":"string","description":"Bridge tool identifier or keyword. Retrieve current bridge keys from the `/v1/tools` endpoint. Supported keywords: `all`, `none`, `default`, `[]`.","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"List of bridges that are allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"861fff12-f4b1-4191-bce9-452ab324e064":{"name":"allowExchanges","description":"List of exchanges that are allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","schema":{"type":"array","items":{"type":"string","description":"Exchange tool identifier or keyword. Retrieve current exchange keys from the `/v1/tools` endpoint. Supported keywords: `all`, `none`, `default`, `[]`.","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"List of exchanges that are allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"102fd98d-0475-4c7c-8784-8d0bf368b3a8":{"example":"relay","name":"denyBridges","description":"List of bridges that are not allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","schema":{"type":"array","items":{"type":"string","description":"Bridge tool identifier or keyword. Retrieve current bridge keys from the `/v1/tools` endpoint. Supported keywords: `all`, `none`, `default`, `[]`.","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"List of bridges that are not allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"859fc825-99df-42ff-974d-ce7b5aaf399b":{"name":"denyExchanges","description":"List of exchanges that are not allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","schema":{"type":"array","items":{"type":"string","description":"Exchange tool identifier or keyword. Retrieve current exchange keys from the `/v1/tools` endpoint. Supported keywords: `all`, `none`, `default`, `[]`.","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"List of exchanges that are not allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"1599a631-43b1-4a6e-882d-c79bb3c90e57":{"example":"0xd0b53D9277642d899DF5C87A3966A349A798F224","name":"denyPools","description":"One to 100 AMM pool or Solana venue identifiers to exclude from routing. Repeat the query parameter for multiple entries. Each entry is a non-zero Uniswap V2/V3 pool address (`0x` + 40 hex), a Uniswap V4 composite `\u003cpoolManagerAddress>-\u003cpoolId>` where `poolId` is a 32-byte hex string (`0x` + 64 hex), or a Solana venue program ID (base58), which excludes every pool of that venue. Identifiers of other chains are rejected; individual Solana pool addresses are not supported. Only some exchanges can exclude pools: EVM pool entries restrict swaps on every chain except Solana to the `fly` exchange, and Solana program IDs restrict swaps on Solana to `jupiter`, `titan` and `okx`. Swaps on a chain with no matching entries are not restricted.","schema":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"One to 100 AMM pool or Solana venue identifiers to exclude from routing. Repeat the query parameter for multiple entries. Each entry is a non-zero Uniswap V2/V3 pool address (`0x` + 40 hex), a Uniswap V4 composite `\u003cpoolManagerAddress>-\u003cpoolId>` where `poolId` is a 32-byte hex string (`0x` + 64 hex), or a Solana venue program ID (base58), which excludes every pool of that venue. Identifiers of other chains are rejected; individual Solana pool addresses are not supported. Only some exchanges can exclude pools: EVM pool entries restrict swaps on every chain except Solana to the `fly` exchange, and Solana program IDs restrict swaps on Solana to `jupiter`, `titan` and `okx`. Swaps on a chain with no matching entries are not restricted.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"4cebbb44-23e5-4884-acbf-08dfbb0db1e0":{"name":"preferBridges","description":"List of bridges that should be preferred for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","schema":{"type":"array","items":{"type":"string","description":"Bridge tool identifier or keyword. Retrieve current bridge keys from the `/v1/tools` endpoint. Supported keywords: `all`, `none`, `default`, `[]`.","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"List of bridges that should be preferred for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"0c8b8cd1-9ea6-4ef3-b1ac-dacee9ebaa0d":{"name":"preferExchanges","description":"List of exchanges that should be preferred for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","schema":{"type":"array","items":{"type":"string","description":"Exchange tool identifier or keyword. Retrieve current exchange keys from the `/v1/tools` endpoint. Supported keywords: `all`, `none`, `default`, `[]`.","uniqueKey":"items.[INDEX]","typeLabel":"string"},"description":"List of exchanges that should be preferred for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint. Also values `all`, `none`, `default` and `[]` are acceptable and mean all tools of the current type (`all`), no tools (for `none` and `[]` cases) and default tool's settings on the current stage.","uniqueKey":"","typeLabel":"string[]"},"in":"query"},"abd69911-fdf1-447b-8cc2-6f344adf6ba5":{"name":"allowDestinationCall","description":"Whether swaps or other contract calls should be allowed as part of the destination transaction of a bridge transfer. Separate swap transactions on the destination chain are not affected by this flag. By default, parameter is `true`.","schema":{"type":"boolean","description":"Whether swaps or other contract calls should be allowed as part of the destination transaction of a bridge transfer. Separate swap transactions on the destination chain are not affected by this flag. By default, parameter is `true`.","uniqueKey":"","typeLabel":"boolean"},"in":"query"},"b5b5a380-0d93-43fe-9aee-a8362d52832c":{"name":"fromAmountForGas","description":"The amount of the token to convert to gas on the destination side.","schema":{"type":"string","isRequired":false,"description":"The amount of the token to convert to gas on the destination side.","uniqueKey":"","typeLabel":"string"},"in":"query","required":false},"22254372-44c5-4e0d-aa8a-138a69a12579":{"name":"maxPriceImpact","description":"The price impact threshold above which routes are hidden. As an example, one should specify 0.15 (15%) to hide routes with more than 15% price impact. The default is 10%.","schema":{"type":"number","description":"The price impact threshold above which routes are hidden. As an example, one should specify 0.15 (15%) to hide routes with more than 15% price impact. The default is 10%.","uniqueKey":"","typeLabel":"number"},"in":"query"},"c5cdbe24-4fcb-4392-8d34-0209b3a1bb03":{"name":"swapStepTimingStrategies","description":"Timing setting to wait for a certain amount of swap rates. In the format `minWaitTime-${minWaitTimeMs}-${startingExpectedResults}-${reduceEveryMs}`. Please check [docs.li.fi](https://docs.li.fi) for more details.","schema":{"type":"array","items":{"type":"string","example":"minWaitTime-600-4-300","uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"Timing setting to wait for a certain amount of swap rates. In the format `minWaitTime-${minWaitTimeMs}-${startingExpectedResults}-${reduceEveryMs}`. Please check [docs.li.fi](https://docs.li.fi) for more details.","uniqueKey":"","typeLabel":"string[]"},"in":"query","required":false},"fe11f115-1798-4d9f-9dec-c7c4e26c53b2":{"name":"routeTimingStrategies","description":"Timing setting to wait for a certain amount of routes to be generated before chosing the best one. In the format `minWaitTime-${minWaitTimeMs}-${startingExpectedResults}-${reduceEveryMs}`. Please check [docs.li.fi](https://docs.li.fi) for more details.","schema":{"type":"array","items":{"type":"string","example":"minWaitTime-600-4-300","uniqueKey":"items.[INDEX]","typeLabel":"string"},"isRequired":false,"description":"Timing setting to wait for a certain amount of routes to be generated before chosing the best one. In the format `minWaitTime-${minWaitTimeMs}-${startingExpectedResults}-${reduceEveryMs}`. Please check [docs.li.fi](https://docs.li.fi) for more details.","uniqueKey":"","typeLabel":"string[]"},"in":"query","required":false},"e3a3edb9-7361-418d-a007-0a88cb9bec8e":{"name":"skipSimulation","description":"Parameter to skip transaction simulation. The quote will be returned faster but the transaction gas limit won't be accurate.","schema":{"type":"boolean","isRequired":false,"description":"Parameter to skip transaction simulation. The quote will be returned faster but the transaction gas limit won't be accurate.","uniqueKey":"","typeLabel":"boolean"},"in":"query","required":false},"32b415c9-87d5-4374-8ed2-e872241ed427":{"name":"preset","description":"Pre-configured routing optimization preset. The preset value `stablecoin` is supported for requesting swap and/or bridging operations involving stablecoin tokens. Each preset provides optimized default settings for slippage, price impact, and tool preferences that can be overridden by custom configuration parameters set in the request.","schema":{"type":"string","pattern":"^[a-zA-Z0-9-_]+$","minLength":1,"maxLength":50,"isRequired":false,"description":"Pre-configured routing optimization preset. The preset value `stablecoin` is supported for requesting swap and/or bridging operations involving stablecoin tokens. Each preset provides optimized default settings for slippage, price impact, and tool preferences that can be overridden by custom configuration parameters set in the request.","uniqueKey":"","typeLabel":"string"},"in":"query","required":false,"example":"stablecoin"},"f09241d1-3a7c-4fb9-b4ab-a70eca3a03aa":{"name":"svmMaxSupportedTransactionVersion","description":"Maximum Solana transaction version the client can sign. Defaults to 0; omission or null uses v0. Set to 1 to allow V1 where enabled for the environment. Jito requests always use v0. Size overflow may fall back to v0. Read transactionRequest.svmTransactionVersion for the version actually built. Ignored for source chains other than Solana.","schema":{"oneOf":[{"type":"number","enum":[0,1],"default":0,"description":"Maximum Solana transaction version the client can sign. Defaults to 0; omission or null uses v0. Set to 1 to allow V1 where enabled for the environment. Jito requests always use v0. Size overflow may fall back to v0. Read transactionRequest.svmTransactionVersion for the version actually built. Ignored for source chains other than Solana.","uniqueKey":"oneOf.0","typeLabel":"enum\u003cnumber>"},{"type":"null","enum":[0,1],"default":0,"description":"Maximum Solana transaction version the client can sign. Defaults to 0; omission or null uses v0. Set to 1 to allow V1 where enabled for the environment. Jito requests always use v0. Size overflow may fall back to v0. Read transactionRequest.svmTransactionVersion for the version actually built. Ignored for source chains other than Solana.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cnumber> | null"},"in":"query","required":false},"9e07f1ca-dd49-4215-b3b6-3f0a920b9ed3":{"name":"svmPriorityFeeLevel","description":"Priority fee level for Solana Virtual Machine (SVM) transactions.","schema":{"enum":["NORMAL","FAST","ULTRA"],"type":"string","isRequired":false,"description":"Priority fee level for Solana Virtual Machine (SVM) transactions.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"in":"query","required":false},"354ef510-70fe-4762-8b9d-0948b902162e":{"name":"x-lifi-api-key","description":"Authentication header, register in the LI.FI Partner Portal (https://portal.li.fi/ ) to get your API Key.","schema":{"type":"string","description":"Authentication header, register in the LI.FI Partner Portal (https://portal.li.fi/ ) to get your API Key.","uniqueKey":"","typeLabel":"string"},"in":"header"}},"responses":{"164bce56-0fbe-4567-86b6-d35c866b6de5":{"content":{"application/json":{"schema":{"title":"Root Type for Step","description":"Object that represents one step of a `Route`","required":["id","action","tool","type"],"type":"object","properties":{"id":{"description":"Unique identifier of the step","type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"type":{"description":"The type of the step. `swap` executes a DEX swap on a single chain, `cross` bridges assets between chains, `lifi` runs LiFi's internal multi-action logic, and `protocol` represents protocol-level actions such as fee collection or vault interactions executed inside LiFi managed contracts.","enum":["swap","cross","lifi","protocol"],"type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"tool":{"description":"The tool used for this step. E.g. `relay`","type":"string","isRequired":true,"uniqueKey":"tool","typeLabel":"string"},"action":{"title":"Root Type for Action","description":"The action of the step","required":["fromToken","fromAmount","fromChainId","toChainId","toToken"],"type":"object","properties":{"fromChainId":{"format":"number","description":"The id of the chain where the transfer should start","type":"number","isRequired":true,"uniqueKey":"action.fromChainId","typeLabel":"number\u003cnumber>"},"fromAmount":{"description":"The amount that should be transferred including all decimals","type":"string","isRequired":true,"uniqueKey":"action.fromAmount","typeLabel":"string"},"fromToken":{"title":"Root Type for Token","description":"The sending token","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"action.fromToken.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"action.fromToken.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"action.fromToken.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"action.fromToken.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"action.fromToken.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"action.fromToken.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"action.fromToken.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"action.fromToken.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"action.fromToken","typeLabel":"Root Type for Token · object"},"toChainId":{"format":"number","description":"The id of the chain where the transfer should end","type":"number","isRequired":true,"uniqueKey":"action.toChainId","typeLabel":"number\u003cnumber>"},"toToken":{"title":"Root Type for Token","description":"The token that should be transferred to","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"action.toToken.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"action.toToken.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"action.toToken.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"action.toToken.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"action.toToken.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"action.toToken.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"action.toToken.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"action.toToken.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"action.toToken","typeLabel":"Root Type for Token · object"},"slippage":{"format":"double","description":"The maximum allowed slippage","type":"number","uniqueKey":"action.slippage","typeLabel":"number\u003cdouble>"},"fromAddress":{"description":"The sending wallet address","type":"string","uniqueKey":"action.fromAddress","typeLabel":"string"},"toAddress":{"description":"The receiving wallet address","type":"string","uniqueKey":"action.toAddress","typeLabel":"string"}},"example":{"fromChainId":100,"fromAmount":"1000000000000000000","fromToken":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.0455272371751059","logoURI":""},"toChainId":137,"toToken":{"address":"0xc0b2983a17573660053beeed6fdb1053107cf387","symbol":"MIVA","decimals":18,"chainId":137,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0","logoURI":""},"slippage":0.003},"isRequired":true,"uniqueKey":"action","typeLabel":"Root Type for Action · object"},"toolDetails":{"description":"The details of the tool used for this step. E.g. `relay`","type":"object","properties":{"key":{"description":"The tool key","type":"string","uniqueKey":"toolDetails.key","typeLabel":"string"},"name":{"description":"The tool name","type":"string","uniqueKey":"toolDetails.name","typeLabel":"string"},"logoURI":{"description":"The tool logo URL","type":"string","uniqueKey":"toolDetails.logoURI","typeLabel":"string"}},"uniqueKey":"toolDetails","typeLabel":"object"},"estimate":{"title":"Root Type for Estimate","description":"The estimation for the step","required":["fromAmount","approvalAddress","toAmount","toAmountMin","tool","executionDuration"],"type":"object","properties":{"tool":{"description":"The tools that is being used for this step","type":"string","isRequired":true,"uniqueKey":"estimate.tool","typeLabel":"string"},"fromAmount":{"description":"The amount that should be transferred including all decimals","type":"string","isRequired":true,"uniqueKey":"estimate.fromAmount","typeLabel":"string"},"toAmount":{"description":"The estimated resulting amount of the `toToken` including all decimals","type":"string","isRequired":true,"uniqueKey":"estimate.toAmount","typeLabel":"string"},"toAmountMin":{"description":"The minimal outcome of the transfer including all decimals. It may reflect applicable slippage and known fee-on-transfer tax adjustments.","type":"string","isRequired":true,"uniqueKey":"estimate.toAmountMin","typeLabel":"string"},"approvalAddress":{"description":"The contract address for the approval","type":"string","isRequired":true,"uniqueKey":"estimate.approvalAddress","typeLabel":"string"},"executionDuration":{"description":"The time needed to complete the following step","type":"number","isRequired":true,"uniqueKey":"estimate.executionDuration","typeLabel":"number"},"fromAmountUSD":{"description":"The amount that should be transferred in USD equivalent","type":"string","uniqueKey":"estimate.fromAmountUSD","typeLabel":"string"},"toAmountUSD":{"description":"The estimated resulting amount of the `toToken` in USD equivalent","type":"string","uniqueKey":"estimate.toAmountUSD","typeLabel":"string"},"skipApproval":{"description":"Optional flag indicating that this step needs no token approval, because the executing contract moves funds under the authorization already carried by the signed transaction or message.","type":"boolean","uniqueKey":"estimate.skipApproval","typeLabel":"boolean"},"feeCosts":{"description":"Fees charged on the transfer. On a `lifi` step this array is the concatenation of the fee costs of every entry in `includedSteps`, so it already contains them. Do not add both together.","type":"array","items":{"title":"Root Type for FeeCost","description":"A protocol, integrator, or execution fee charged on the transfer. Fee costs cover everything that is charged as a fee rather than paid as network gas by the sender, including destination execution costs that a bridge or solver bills as a fee. See [Gas costs and fee costs](https://docs.li.fi/guides/gas-and-fee-costs) for how to read and display these values.","required":["token","percentage","name","amountUSD","included"],"type":"object","properties":{"name":{"description":"Human-readable name of the fee, for example `LIFI Fixed Fee` or `Relayer Gas fee`. Names are tool-specific free text and are not a stable enum. Do not branch on this value.","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].name","typeLabel":"string"},"percentage":{"description":"The fee expressed as a fraction of the transferred amount, for example `0.0025` for 0.25%. A fee whose name contains `Fixed` may still report a non-zero fraction; do not infer the fee model from `name` or assume fixed-fee entries report `0`.","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].percentage","typeLabel":"string"},"token":{"title":"Root Type for Token","description":"The `Token` the fee is denominated in. `token.chainId` identifies the chain of that token, not necessarily the chain where the underlying work happens. A destination execution fee is commonly denominated in the source-chain token the user is already sending.","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].token.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].token.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].token.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].token.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].token.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].token.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].token.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].token.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].token","typeLabel":"Root Type for Token · object"},"amountUSD":{"description":"The amount of fees in USD","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].amountUSD","typeLabel":"string"},"included":{"description":"`true` means the fee is already accounted for in the quoted amounts and must not be added again as a separate user payment. `false` means the user pays it on top of `fromAmount`.","type":"boolean","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].included","typeLabel":"boolean"},"description":{"description":"Description of the fee costs","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].description","typeLabel":"string"},"amount":{"description":"The fee amount in the smallest unit of `token`, before decimals are applied. Divide by `10 ** token.decimals` for a human-readable amount.","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].amount","typeLabel":"string"},"feeSplit":{"description":"Response-only breakdown of this fee entry's `amount` into the parties that share it. Returned for the LI.FI/integrator fee entry and for a separate `Distributions` entry when distributions are present; omitted for fees such as a relayer or bridge gas fee.\nFor the LI.FI/integrator entry, `lifiFee`, `integratorFee`, and `intermediaryFee` (when present) are disjoint slices of its `amount`. For the `Distributions` entry, `lifiFee` and `integratorFee` are both \"0\"; its `amount` is the sum of its distribution recipients. `recipients[]` describes only the parent fee entry. It is a breakdown of that entry's `amount`, not an additional charge.\nThis field is returned, not accepted: the API ignores a `feeSplit` posted in a request body, so integrations must read the split from the response instead of echoing back a previously quoted one.","type":"object","properties":{"lifiFee":{"description":"LI.FI's slice of `amount`, in the smallest unit of `token`.","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.lifiFee","typeLabel":"string"},"integratorFee":{"description":"The integrator's slice of `amount`, in the smallest unit of `token`. It excludes intermediary fees (reported separately as `intermediaryFee`) and distributions (reported in a separate `Distributions` fee entry). It is \"0\" on the `Distributions` entry.","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.integratorFee","typeLabel":"string"},"intermediaryFee":{"description":"The intermediary's slice of `amount`, in the smallest unit of `token`. Present only when an intermediary participates in the split.","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.intermediaryFee","typeLabel":"string"},"recipients":{"description":"Per-recipient breakdown of this fee entry's `amount`. The LI.FI/integrator entry lists its own recipients, excluding partner-specified distributions. Those are listed in the separate `Distributions` entry's own `feeSplit.recipients[]`, with type `DISTRIBUTION` and one record per distribution.","type":"array","items":{"title":"Root Type for FeeRecipient","description":"One party receiving a share of this fee entry.","type":"object","required":["name","fee"],"properties":{"name":{"description":"Recipient identifier, to be read together with `type`: `lifi` for the LI.FI platform recipient, the integrator id for the integrator's own fee, the intermediary id for an `INTERMEDIARY` entry, or the recipient wallet address for a `DISTRIBUTION` entry. Do not render it directly in a user-facing UI without type-aware formatting.","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].name","typeLabel":"string"},"fee":{"description":"The amount credited to this recipient, in the smallest unit of this fee entry's `token`.","type":"string","isRequired":true,"uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].fee","typeLabel":"string"},"type":{"description":"How this recipient's fee was calculated. Currently one of `FIXED`, `SHARED`, `DYNAMIC`, `INTERMEDIARY`, or `DISTRIBUTION`, and deliberately not modelled as an enum because the set can grow without a breaking change. May be absent when the calculation type cannot be determined statically, so null-check before reading and keep a default branch when matching on it.\n`FIXED` and `SHARED` are the standard fee models. `DYNAMIC` means LI.FI resolved its rate for this quote under approved Dynamic Pricing, so the same integration can report a different rate on another quote. `INTERMEDIARY` marks a third-party recipient carving a configured share, and `DISTRIBUTION` marks a partner-specified recipient within the separate `Distributions` fee entry's own `feeSplit.recipients[]`.\nTo detect Dynamic Pricing on a quote, look for a recipient whose `type` is `DYNAMIC`.","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].type","typeLabel":"string"},"walletAddress":{"description":"The recipient's wallet address on the source chain.","type":"string","uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].walletAddress","typeLabel":"string"}},"uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX]","typeLabel":"Root Type for FeeRecipient · object"},"uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit.recipients","typeLabel":"Root Type for FeeRecipient · object[]"}},"uniqueKey":"estimate.feeCosts.items.[INDEX].feeSplit","typeLabel":"object"}},"example":{"name":"Relayer Gas fee","description":"Relay bridge gas fee","percentage":"0.0000","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"1116","amountUSD":"0.0011","included":true},"uniqueKey":"estimate.feeCosts.items.[INDEX]","typeLabel":"Root Type for FeeCost · object"},"uniqueKey":"estimate.feeCosts","typeLabel":"Root Type for FeeCost · object[]"},"gasCosts":{"description":"Estimated network gas for the transfer. On a `lifi` step this is a single estimate for the transaction that is actually submitted. It aggregates raw gas costs from source-chain entries in `includedSteps` and, for EVM transactions, adds estimated LI.FI contract overhead. It may differ from and often exceed the sum of the source-chain per-step entries. Raw destination-chain gas costs are not added directly. Do not add the top-level and included-step arrays together.","type":"array","items":{"title":"Root Type for GasCost","description":"An estimate of the network gas the sender pays for a transaction. Gas costs are always denominated in the native gas token of the chain the transaction is sent on. See [Gas costs and fee costs](https://docs.li.fi/guides/gas-and-fee-costs) for how gas costs relate to `feeCosts` and to destination-chain execution.","required":["token","type","amount"],"type":"object","properties":{"type":{"description":"The kind of gas cost this entry represents.\n\n- `SEND`: estimated network gas for the transaction the sender submits, normally on the source chain. This is the only value the API currently returns.\n- `APPROVE`: estimated network gas for a separate ERC-20 approval transaction. Reserved; approval gas is not currently returned as its own entry.\n- `FEE`: an execution cost charged as a fee rather than as a transaction the user signs. Reserved; such costs are currently reported in `feeCosts` instead.\n- `SUM`: an aggregate of the other entries. Reserved and not currently returned.\n\nTreat `APPROVE`, `FEE`, and `SUM` as forward-compatible values: handle them if they appear, but do not build a flow that depends on them.","type":"string","enum":["SUM","APPROVE","SEND","FEE"],"example":"SEND","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"description":"The estimated total gas cost in the smallest unit of the gas token. For EVM entries this is `estimate` multiplied by `price`. Other ecosystems may use chain-specific units and rounding, so consumers should treat `amount` as authoritative rather than reconstructing it from the other fields. Divide by `10 ** token.decimals` for a human-readable amount.","type":"string","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].amount","typeLabel":"string"},"token":{"title":"Root Type for Token","description":"The native gas token of the chain the transaction is sent on. `token.chainId` is the chain that consumes the gas.","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].token.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].token.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].token.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].token.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].token.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].token.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].token.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].token.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"estimate.gasCosts.items.[INDEX].token","typeLabel":"Root Type for Token · object"},"price":{"description":"Gas price used for the estimate, in the smallest unit of the gas token per unit of gas (wei per gas on EVM chains).","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].price","typeLabel":"string"},"estimate":{"description":"Estimated units of gas the transaction consumes","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].estimate","typeLabel":"string"},"limit":{"description":"Suggested gas limit: `estimate` plus a safety buffer. Use this value when submitting the transaction, not `estimate`.","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].limit","typeLabel":"string"},"amountUSD":{"description":"Amount of the gas cost in USD","type":"string","uniqueKey":"estimate.gasCosts.items.[INDEX].amountUSD","typeLabel":"string"}},"example":{"type":"SEND","price":"128468782","estimate":"459000","limit":"596700","amount":"58967170938000","amountUSD":"0.1156","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"ETH","decimals":18,"chainId":1,"name":"ETH","coinKey":"ETH","priceUSD":"1959.83","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"}},"uniqueKey":"estimate.gasCosts.items.[INDEX]","typeLabel":"Root Type for GasCost · object"},"uniqueKey":"estimate.gasCosts","typeLabel":"Root Type for GasCost · object[]"},"data":{"description":"Arbitrary data that depends on the the used tool","type":"object","properties":{"bid":{"type":"object","properties":{"user":{"type":"string","uniqueKey":"estimate.data.bid.user","typeLabel":"string"},"router":{"type":"string","uniqueKey":"estimate.data.bid.router","typeLabel":"string"},"initiator":{"type":"string","uniqueKey":"estimate.data.bid.initiator","typeLabel":"string"},"sendingChainId":{"format":"number","type":"number","uniqueKey":"estimate.data.bid.sendingChainId","typeLabel":"number\u003cnumber>"},"sendingAssetId":{"type":"string","uniqueKey":"estimate.data.bid.sendingAssetId","typeLabel":"string"},"amount":{"type":"string","uniqueKey":"estimate.data.bid.amount","typeLabel":"string"},"receivingChainId":{"format":"number","type":"number","uniqueKey":"estimate.data.bid.receivingChainId","typeLabel":"number\u003cnumber>"},"receivingAssetId":{"type":"string","uniqueKey":"estimate.data.bid.receivingAssetId","typeLabel":"string"},"amountReceived":{"type":"string","uniqueKey":"estimate.data.bid.amountReceived","typeLabel":"string"},"receivingAddress":{"type":"string","uniqueKey":"estimate.data.bid.receivingAddress","typeLabel":"string"},"transactionId":{"type":"string","uniqueKey":"estimate.data.bid.transactionId","typeLabel":"string"},"expiry":{"format":"number","type":"number","uniqueKey":"estimate.data.bid.expiry","typeLabel":"number\u003cnumber>"},"callDataHash":{"type":"string","uniqueKey":"estimate.data.bid.callDataHash","typeLabel":"string"},"callTo":{"type":"string","uniqueKey":"estimate.data.bid.callTo","typeLabel":"string"},"encryptedCallData":{"type":"string","uniqueKey":"estimate.data.bid.encryptedCallData","typeLabel":"string"},"sendingChainTxManagerAddress":{"type":"string","uniqueKey":"estimate.data.bid.sendingChainTxManagerAddress","typeLabel":"string"},"receivingChainTxManagerAddress":{"type":"string","uniqueKey":"estimate.data.bid.receivingChainTxManagerAddress","typeLabel":"string"},"bidExpiry":{"format":"number","type":"number","uniqueKey":"estimate.data.bid.bidExpiry","typeLabel":"number\u003cnumber>"}},"uniqueKey":"estimate.data.bid","typeLabel":"object"},"bidSignature":{"type":"string","uniqueKey":"estimate.data.bidSignature","typeLabel":"string"},"gasFeeInReceivingToken":{"type":"string","uniqueKey":"estimate.data.gasFeeInReceivingToken","typeLabel":"string"},"totalFee":{"type":"string","uniqueKey":"estimate.data.totalFee","typeLabel":"string"},"metaTxRelayerFee":{"type":"string","uniqueKey":"estimate.data.metaTxRelayerFee","typeLabel":"string"},"routerFee":{"type":"string","uniqueKey":"estimate.data.routerFee","typeLabel":"string"}},"uniqueKey":"estimate.data","typeLabel":"object"}},"example":{"tool":"relaydepository","fromAmount":"50000000","fromAmountUSD":"49.9789","toAmount":"76673","toAmountMin":"76290","toAmountUSD":"50.0577","executionDuration":2,"approvalAddress":"0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE","feeCosts":[{"name":"LIFI Fixed Fee","description":"Fixed LIFI fee, independent of any other fee","percentage":"0.0025","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"125000","amountUSD":"0.1249","included":true},{"name":"Relayer Gas fee","description":"Relay bridge gas fee","percentage":"0.0000","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"1116","amountUSD":"0.0011","included":true},{"name":"Relayer Service fee","description":"Relay bridge service fee","percentage":"0.0011","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"53822","amountUSD":"0.0538","included":true}],"gasCosts":[{"type":"SEND","price":"128468782","estimate":"459000","limit":"596700","amount":"58967170938000","amountUSD":"0.1156","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"ETH","decimals":18,"chainId":1,"name":"ETH","coinKey":"ETH","priceUSD":"1959.83","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"}}]},"uniqueKey":"estimate","typeLabel":"Root Type for Estimate · object"},"routeSlippage":{"title":"Root Type for RouteSlippageCommitment","description":"Present only when the route was requested with `slippageScope=route`. The route-wide slippage commitment: post it back unchanged with the step to `/v1/advanced/stepTransaction`.","required":["scope","slippage","referenceToAmount","minimumToAmount","toChainId","toTokenAddress","settlement","checkpoints"],"type":"object","properties":{"scope":{"enum":["route"],"type":"string","isRequired":true,"uniqueKey":"routeSlippage.scope","typeLabel":"enum\u003cstring>"},"slippage":{"description":"The budget for the whole route, as a decimal string, for example `0.01`","type":"string","isRequired":true,"uniqueKey":"routeSlippage.slippage","typeLabel":"string"},"referenceToAmount":{"description":"The expected output the floor was computed from, in base units of the destination token","type":"string","isRequired":true,"uniqueKey":"routeSlippage.referenceToAmount","typeLabel":"string"},"minimumToAmount":{"description":"The floor, in base units of the destination token. Also returned as `toAmountMin`.","type":"string","isRequired":true,"uniqueKey":"routeSlippage.minimumToAmount","typeLabel":"string"},"toChainId":{"description":"The chain the floor applies to","type":"integer","isRequired":true,"uniqueKey":"routeSlippage.toChainId","typeLabel":"integer"},"toTokenAddress":{"description":"The token the floor applies to","type":"string","isRequired":true,"uniqueKey":"routeSlippage.toTokenAddress","typeLabel":"string"},"settlement":{"description":"`atomic`: a single transaction; a delivery below the floor reverts it. `conditional`: a cross-chain transfer. The source transaction enforces the source checkpoint, and the bridge holds the floor from there: Mayan, Across and Stargate V2 carry it in their own order, and other bridges are built only when their own minimum reaches it. A bridge that can't deliver its minimum refunds or recovers instead, which `/v1/status` reports as `NOT_FULFILLED`.","enum":["atomic","conditional"],"type":"string","isRequired":true,"uniqueKey":"routeSlippage.settlement","typeLabel":"enum\u003cstring>"},"checkpoints":{"description":"Amounts enforced along the way. `atomic`: one entry, the floor. `conditional`: the source checkpoint (the minimum the source transaction must hand to the bridge, in the bridged token) followed by the floor.","type":"array","items":{"type":"object","required":["stepId","chainId","tokenAddress","minimumAmount"],"properties":{"stepId":{"type":"string","isRequired":true,"uniqueKey":"routeSlippage.checkpoints.items.[INDEX].stepId","typeLabel":"string"},"chainId":{"type":"integer","isRequired":true,"uniqueKey":"routeSlippage.checkpoints.items.[INDEX].chainId","typeLabel":"integer"},"tokenAddress":{"type":"string","isRequired":true,"uniqueKey":"routeSlippage.checkpoints.items.[INDEX].tokenAddress","typeLabel":"string"},"minimumAmount":{"type":"string","isRequired":true,"uniqueKey":"routeSlippage.checkpoints.items.[INDEX].minimumAmount","typeLabel":"string"}},"uniqueKey":"routeSlippage.checkpoints.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"routeSlippage.checkpoints","typeLabel":"object[]"},"toAddress":{"description":"The recipient the delivery is measured at","type":"string","uniqueKey":"routeSlippage.toAddress","typeLabel":"string"}},"example":{"scope":"route","slippage":"0.01","referenceToAmount":"400000000000000000","minimumToAmount":"396000000000000000","toChainId":42161,"toTokenAddress":"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","toAddress":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0","settlement":"atomic","checkpoints":[{"stepId":"0x48f0a2f93b0d0a9dab992d07c46bca38516c945101e8f8e08ca42af05b9e6aa9","chainId":42161,"tokenAddress":"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","minimumAmount":"396000000000000000"}]},"uniqueKey":"routeSlippage","typeLabel":"Root Type for RouteSlippageCommitment · object"},"integrator":{"description":"A string containing tracking information about the integrator of the API","type":"string","uniqueKey":"integrator","typeLabel":"string"},"includedSteps":{"type":"array","items":{"title":"Root Type for Internal Step","description":"Object that represents one step of an `IncludedSteps` array in `Route`","required":["id","action","estimate","tool","type","toolDetails"],"type":"object","properties":{"id":{"description":"Unique identifier of the step","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].id","typeLabel":"string"},"type":{"description":"The type of the step. `swap` executes a DEX swap on a single chain, `cross` bridges assets between chains, `lifi` runs LiFi's internal multi-action logic, and `protocol` represents protocol-level actions such as fee collection or vault interactions executed inside LiFi managed contracts.","enum":["swap","cross","lifi","protocol"],"type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"tool":{"description":"The tool used for this step. E.g. `allbridge`","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].tool","typeLabel":"string"},"toolDetails":{"description":"The details of the tool used for this step. E.g. `allbridge`","type":"object","properties":{"key":{"description":"The tool key","type":"string","uniqueKey":"includedSteps.items.[INDEX].toolDetails.key","typeLabel":"string"},"name":{"description":"The tool name","type":"string","uniqueKey":"includedSteps.items.[INDEX].toolDetails.name","typeLabel":"string"},"logoURI":{"description":"The tool logo URL","type":"string","uniqueKey":"includedSteps.items.[INDEX].toolDetails.logoURI","typeLabel":"string"}},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].toolDetails","typeLabel":"object"},"action":{"title":"Root Type for Action","description":"Object describing what happens in a `Step`","required":["fromToken","fromAmount","fromChainId","toChainId","toToken"],"type":"object","properties":{"fromChainId":{"format":"number","description":"The id of the chain where the transfer should start","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromChainId","typeLabel":"number\u003cnumber>"},"fromAmount":{"description":"The amount that should be transferred including all decimals","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromAmount","typeLabel":"string"},"fromToken":{"title":"Root Type for Token","description":"The sending token","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromToken.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromToken.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromToken.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromToken.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromToken.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.fromToken.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.fromToken.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.fromToken.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.fromToken","typeLabel":"Root Type for Token · object"},"toChainId":{"format":"number","description":"The id of the chain where the transfer should end","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toChainId","typeLabel":"number\u003cnumber>"},"toToken":{"title":"Root Type for Token","description":"The token that should be transferred to","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toToken.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toToken.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toToken.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toToken.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toToken.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.toToken.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.toToken.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.toToken.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action.toToken","typeLabel":"Root Type for Token · object"},"slippage":{"format":"double","description":"The maximum allowed slippage","type":"number","uniqueKey":"includedSteps.items.[INDEX].action.slippage","typeLabel":"number\u003cdouble>"},"fromAddress":{"description":"The sending wallet address","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.fromAddress","typeLabel":"string"},"toAddress":{"description":"The receiving wallet address","type":"string","uniqueKey":"includedSteps.items.[INDEX].action.toAddress","typeLabel":"string"}},"example":{"fromChainId":100,"fromAmount":"1000000000000000000","fromToken":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.0455272371751059","logoURI":""},"toChainId":137,"toToken":{"address":"0xc0b2983a17573660053beeed6fdb1053107cf387","symbol":"MIVA","decimals":18,"chainId":137,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0","logoURI":""},"slippage":0.003},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].action","typeLabel":"Root Type for Action · object"},"estimate":{"title":"Root Type for Estimate","description":"An estimate for the current transfer","required":["fromAmount","approvalAddress","toAmount","toAmountMin","tool","executionDuration"],"type":"object","properties":{"tool":{"description":"The tools that is being used for this step","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.tool","typeLabel":"string"},"fromAmount":{"description":"The amount that should be transferred including all decimals","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.fromAmount","typeLabel":"string"},"toAmount":{"description":"The estimated resulting amount of the `toToken` including all decimals","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.toAmount","typeLabel":"string"},"toAmountMin":{"description":"The minimal outcome of the transfer including all decimals. It may reflect applicable slippage and known fee-on-transfer tax adjustments.","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.toAmountMin","typeLabel":"string"},"approvalAddress":{"description":"The contract address for the approval","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.approvalAddress","typeLabel":"string"},"executionDuration":{"description":"The time needed to complete the following step","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.executionDuration","typeLabel":"number"},"fromAmountUSD":{"description":"The amount that should be transferred in USD equivalent","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.fromAmountUSD","typeLabel":"string"},"toAmountUSD":{"description":"The estimated resulting amount of the `toToken` in USD equivalent","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.toAmountUSD","typeLabel":"string"},"skipApproval":{"description":"Optional flag indicating that this step needs no token approval, because the executing contract moves funds under the authorization already carried by the signed transaction or message.","type":"boolean","uniqueKey":"includedSteps.items.[INDEX].estimate.skipApproval","typeLabel":"boolean"},"feeCosts":{"description":"Fees charged on the transfer. On a `lifi` step this array is the concatenation of the fee costs of every entry in `includedSteps`, so it already contains them. Do not add both together.","type":"array","items":{"title":"Root Type for FeeCost","description":"A protocol, integrator, or execution fee charged on the transfer. Fee costs cover everything that is charged as a fee rather than paid as network gas by the sender, including destination execution costs that a bridge or solver bills as a fee. See [Gas costs and fee costs](https://docs.li.fi/guides/gas-and-fee-costs) for how to read and display these values.","required":["token","percentage","name","amountUSD","included"],"type":"object","properties":{"name":{"description":"Human-readable name of the fee, for example `LIFI Fixed Fee` or `Relayer Gas fee`. Names are tool-specific free text and are not a stable enum. Do not branch on this value.","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].name","typeLabel":"string"},"percentage":{"description":"The fee expressed as a fraction of the transferred amount, for example `0.0025` for 0.25%. A fee whose name contains `Fixed` may still report a non-zero fraction; do not infer the fee model from `name` or assume fixed-fee entries report `0`.","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].percentage","typeLabel":"string"},"token":{"title":"Root Type for Token","description":"The `Token` the fee is denominated in. `token.chainId` identifies the chain of that token, not necessarily the chain where the underlying work happens. A destination execution fee is commonly denominated in the source-chain token the user is already sending.","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].token","typeLabel":"Root Type for Token · object"},"amountUSD":{"description":"The amount of fees in USD","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].amountUSD","typeLabel":"string"},"included":{"description":"`true` means the fee is already accounted for in the quoted amounts and must not be added again as a separate user payment. `false` means the user pays it on top of `fromAmount`.","type":"boolean","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].included","typeLabel":"boolean"},"description":{"description":"Description of the fee costs","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].description","typeLabel":"string"},"amount":{"description":"The fee amount in the smallest unit of `token`, before decimals are applied. Divide by `10 ** token.decimals` for a human-readable amount.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].amount","typeLabel":"string"},"feeSplit":{"description":"Response-only breakdown of this fee entry's `amount` into the parties that share it. Returned for the LI.FI/integrator fee entry and for a separate `Distributions` entry when distributions are present; omitted for fees such as a relayer or bridge gas fee.\nFor the LI.FI/integrator entry, `lifiFee`, `integratorFee`, and `intermediaryFee` (when present) are disjoint slices of its `amount`. For the `Distributions` entry, `lifiFee` and `integratorFee` are both \"0\"; its `amount` is the sum of its distribution recipients. `recipients[]` describes only the parent fee entry. It is a breakdown of that entry's `amount`, not an additional charge.\nThis field is returned, not accepted: the API ignores a `feeSplit` posted in a request body, so integrations must read the split from the response instead of echoing back a previously quoted one.","type":"object","properties":{"lifiFee":{"description":"LI.FI's slice of `amount`, in the smallest unit of `token`.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.lifiFee","typeLabel":"string"},"integratorFee":{"description":"The integrator's slice of `amount`, in the smallest unit of `token`. It excludes intermediary fees (reported separately as `intermediaryFee`) and distributions (reported in a separate `Distributions` fee entry). It is \"0\" on the `Distributions` entry.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.integratorFee","typeLabel":"string"},"intermediaryFee":{"description":"The intermediary's slice of `amount`, in the smallest unit of `token`. Present only when an intermediary participates in the split.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.intermediaryFee","typeLabel":"string"},"recipients":{"description":"Per-recipient breakdown of this fee entry's `amount`. The LI.FI/integrator entry lists its own recipients, excluding partner-specified distributions. Those are listed in the separate `Distributions` entry's own `feeSplit.recipients[]`, with type `DISTRIBUTION` and one record per distribution.","type":"array","items":{"title":"Root Type for FeeRecipient","description":"One party receiving a share of this fee entry.","type":"object","required":["name","fee"],"properties":{"name":{"description":"Recipient identifier, to be read together with `type`: `lifi` for the LI.FI platform recipient, the integrator id for the integrator's own fee, the intermediary id for an `INTERMEDIARY` entry, or the recipient wallet address for a `DISTRIBUTION` entry. Do not render it directly in a user-facing UI without type-aware formatting.","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].name","typeLabel":"string"},"fee":{"description":"The amount credited to this recipient, in the smallest unit of this fee entry's `token`.","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].fee","typeLabel":"string"},"type":{"description":"How this recipient's fee was calculated. Currently one of `FIXED`, `SHARED`, `DYNAMIC`, `INTERMEDIARY`, or `DISTRIBUTION`, and deliberately not modelled as an enum because the set can grow without a breaking change. May be absent when the calculation type cannot be determined statically, so null-check before reading and keep a default branch when matching on it.\n`FIXED` and `SHARED` are the standard fee models. `DYNAMIC` means LI.FI resolved its rate for this quote under approved Dynamic Pricing, so the same integration can report a different rate on another quote. `INTERMEDIARY` marks a third-party recipient carving a configured share, and `DISTRIBUTION` marks a partner-specified recipient within the separate `Distributions` fee entry's own `feeSplit.recipients[]`.\nTo detect Dynamic Pricing on a quote, look for a recipient whose `type` is `DYNAMIC`.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].type","typeLabel":"string"},"walletAddress":{"description":"The recipient's wallet address on the source chain.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX].walletAddress","typeLabel":"string"}},"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.recipients.items.[INDEX]","typeLabel":"Root Type for FeeRecipient · object"},"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit.recipients","typeLabel":"Root Type for FeeRecipient · object[]"}},"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX].feeSplit","typeLabel":"object"}},"example":{"name":"Relayer Gas fee","description":"Relay bridge gas fee","percentage":"0.0000","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"1116","amountUSD":"0.0011","included":true},"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts.items.[INDEX]","typeLabel":"Root Type for FeeCost · object"},"uniqueKey":"includedSteps.items.[INDEX].estimate.feeCosts","typeLabel":"Root Type for FeeCost · object[]"},"gasCosts":{"description":"Estimated network gas for the transfer. On a `lifi` step this is a single estimate for the transaction that is actually submitted. It aggregates raw gas costs from source-chain entries in `includedSteps` and, for EVM transactions, adds estimated LI.FI contract overhead. It may differ from and often exceed the sum of the source-chain per-step entries. Raw destination-chain gas costs are not added directly. Do not add the top-level and included-step arrays together.","type":"array","items":{"title":"Root Type for GasCost","description":"An estimate of the network gas the sender pays for a transaction. Gas costs are always denominated in the native gas token of the chain the transaction is sent on. See [Gas costs and fee costs](https://docs.li.fi/guides/gas-and-fee-costs) for how gas costs relate to `feeCosts` and to destination-chain execution.","required":["token","type","amount"],"type":"object","properties":{"type":{"description":"The kind of gas cost this entry represents.\n\n- `SEND`: estimated network gas for the transaction the sender submits, normally on the source chain. This is the only value the API currently returns.\n- `APPROVE`: estimated network gas for a separate ERC-20 approval transaction. Reserved; approval gas is not currently returned as its own entry.\n- `FEE`: an execution cost charged as a fee rather than as a transaction the user signs. Reserved; such costs are currently reported in `feeCosts` instead.\n- `SUM`: an aggregate of the other entries. Reserved and not currently returned.\n\nTreat `APPROVE`, `FEE`, and `SUM` as forward-compatible values: handle them if they appear, but do not build a flow that depends on them.","type":"string","enum":["SUM","APPROVE","SEND","FEE"],"example":"SEND","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"description":"The estimated total gas cost in the smallest unit of the gas token. For EVM entries this is `estimate` multiplied by `price`. Other ecosystems may use chain-specific units and rounding, so consumers should treat `amount` as authoritative rather than reconstructing it from the other fields. Divide by `10 ** token.decimals` for a human-readable amount.","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].amount","typeLabel":"string"},"token":{"title":"Root Type for Token","description":"The native gas token of the chain the transaction is sent on. `token.chainId` is the chain that consumes the gas.","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.address","typeLabel":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.decimals","typeLabel":"number\u003cnumber>"},"symbol":{"description":"Symbol of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.symbol","typeLabel":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.chainId","typeLabel":"number\u003cnumber>"},"name":{"description":"Name of the token","type":"string","isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.name","typeLabel":"string"},"coinKey":{"description":"Identifier for the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.coinKey","typeLabel":"string"},"logoURI":{"description":"Logo of the token","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.logoURI","typeLabel":"string"},"priceUSD":{"description":"Token price in USD","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token.priceUSD","typeLabel":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].token","typeLabel":"Root Type for Token · object"},"price":{"description":"Gas price used for the estimate, in the smallest unit of the gas token per unit of gas (wei per gas on EVM chains).","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].price","typeLabel":"string"},"estimate":{"description":"Estimated units of gas the transaction consumes","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].estimate","typeLabel":"string"},"limit":{"description":"Suggested gas limit: `estimate` plus a safety buffer. Use this value when submitting the transaction, not `estimate`.","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].limit","typeLabel":"string"},"amountUSD":{"description":"Amount of the gas cost in USD","type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX].amountUSD","typeLabel":"string"}},"example":{"type":"SEND","price":"128468782","estimate":"459000","limit":"596700","amount":"58967170938000","amountUSD":"0.1156","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"ETH","decimals":18,"chainId":1,"name":"ETH","coinKey":"ETH","priceUSD":"1959.83","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"}},"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts.items.[INDEX]","typeLabel":"Root Type for GasCost · object"},"uniqueKey":"includedSteps.items.[INDEX].estimate.gasCosts","typeLabel":"Root Type for GasCost · object[]"},"data":{"description":"Arbitrary data that depends on the the used tool","type":"object","properties":{"bid":{"type":"object","properties":{"user":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.user","typeLabel":"string"},"router":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.router","typeLabel":"string"},"initiator":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.initiator","typeLabel":"string"},"sendingChainId":{"format":"number","type":"number","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.sendingChainId","typeLabel":"number\u003cnumber>"},"sendingAssetId":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.sendingAssetId","typeLabel":"string"},"amount":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.amount","typeLabel":"string"},"receivingChainId":{"format":"number","type":"number","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.receivingChainId","typeLabel":"number\u003cnumber>"},"receivingAssetId":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.receivingAssetId","typeLabel":"string"},"amountReceived":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.amountReceived","typeLabel":"string"},"receivingAddress":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.receivingAddress","typeLabel":"string"},"transactionId":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.transactionId","typeLabel":"string"},"expiry":{"format":"number","type":"number","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.expiry","typeLabel":"number\u003cnumber>"},"callDataHash":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.callDataHash","typeLabel":"string"},"callTo":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.callTo","typeLabel":"string"},"encryptedCallData":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.encryptedCallData","typeLabel":"string"},"sendingChainTxManagerAddress":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.sendingChainTxManagerAddress","typeLabel":"string"},"receivingChainTxManagerAddress":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.receivingChainTxManagerAddress","typeLabel":"string"},"bidExpiry":{"format":"number","type":"number","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid.bidExpiry","typeLabel":"number\u003cnumber>"}},"uniqueKey":"includedSteps.items.[INDEX].estimate.data.bid","typeLabel":"object"},"bidSignature":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.bidSignature","typeLabel":"string"},"gasFeeInReceivingToken":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.gasFeeInReceivingToken","typeLabel":"string"},"totalFee":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.totalFee","typeLabel":"string"},"metaTxRelayerFee":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.metaTxRelayerFee","typeLabel":"string"},"routerFee":{"type":"string","uniqueKey":"includedSteps.items.[INDEX].estimate.data.routerFee","typeLabel":"string"}},"uniqueKey":"includedSteps.items.[INDEX].estimate.data","typeLabel":"object"}},"example":{"tool":"relaydepository","fromAmount":"50000000","fromAmountUSD":"49.9789","toAmount":"76673","toAmountMin":"76290","toAmountUSD":"50.0577","executionDuration":2,"approvalAddress":"0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE","feeCosts":[{"name":"LIFI Fixed Fee","description":"Fixed LIFI fee, independent of any other fee","percentage":"0.0025","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"125000","amountUSD":"0.1249","included":true},{"name":"Relayer Gas fee","description":"Relay bridge gas fee","percentage":"0.0000","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"1116","amountUSD":"0.0011","included":true},{"name":"Relayer Service fee","description":"Relay bridge service fee","percentage":"0.0011","token":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC","decimals":6,"chainId":1,"name":"USD Coin","coinKey":"USDC","priceUSD":"0.999578177","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"},"amount":"53822","amountUSD":"0.0538","included":true}],"gasCosts":[{"type":"SEND","price":"128468782","estimate":"459000","limit":"596700","amount":"58967170938000","amountUSD":"0.1156","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"ETH","decimals":18,"chainId":1,"name":"ETH","coinKey":"ETH","priceUSD":"1959.83","logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"}}]},"isRequired":true,"uniqueKey":"includedSteps.items.[INDEX].estimate","typeLabel":"Root Type for Estimate · object"}},"uniqueKey":"includedSteps.items.[INDEX]","typeLabel":"Root Type for Internal Step · object"},"uniqueKey":"includedSteps","typeLabel":"Root Type for Internal Step · object[]"},"referrer":{"description":"A string containing tracking information about the referrer of the integrator","type":"string","uniqueKey":"referrer","typeLabel":"string"},"execution":{"description":"An objection containing status information about the execution","uniqueKey":"execution","typeLabel":"any"},"transactionRequest":{"description":"An ether.js TransactionRequest that can be triggered using a wallet provider. (https://docs.ethers.io/v5/api/providers/types/#providers-TransactionRequest) Solana responses also include svmTransactionVersion (0 or 1), the version actually built. This may be lower than the requested maximum.","type":"object","properties":{"svmTransactionVersion":{"description":"Solana transaction version actually built; Jito always uses 0.","type":"number","enum":[0,1],"uniqueKey":"transactionRequest.svmTransactionVersion","typeLabel":"enum\u003cnumber>"}},"uniqueKey":"transactionRequest","typeLabel":"object"}},"example":{"id":"0x48f0a2f93b0d0a9dab992d07c46bca38516c945101e8f8e08ca42af05b9e6aa9","type":"cross","tool":"relay","action":{"fromChainId":100,"toChainId":137,"fromToken":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.04547537276751318","logoURI":""},"toToken":{"address":"0xc0b2983a17573660053beeed6fdb1053107cf387","symbol":"MIVA","decimals":18,"chainId":137,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0","logoURI":""},"fromAmount":"1000000000000000000","slippage":0.003},"estimate":{"fromAmount":"1000000000000000000","toAmount":"999500000000000000","toAmountMin":"999500000000000000","approvalAddress":"0x115909BDcbaB21954bEb4ab65FC2aBEE9866fa93","feeCosts":[{"name":"Gas Fee","description":"Covers gas expense for sending funds to user on receiving chain.","percentage":"0","token":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.04547537276751318","logoURI":""},"amount":"0","amountUSD":"0.00","included":true},{"name":"Relay Fee","description":"Covers gas expense for claiming user funds on receiving chain.","percentage":"0","token":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.04547537276751318","logoURI":""},"amount":"0","amountUSD":"0.00","included":true},{"name":"Router Fee","description":"Router service fee.","percentage":"0.0005","token":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.04547537276751318","logoURI":""},"amount":"500000000000000","amountUSD":"0.00","included":true}],"gasCosts":[{"type":"SEND","price":"1260000000","estimate":"140000","limit":"175000","amount":"176400000000000","amountUSD":"0.00","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"xDai","decimals":18,"chainId":100,"name":"xDai","coinKey":"xDai","priceUSD":"1","logoURI":"https://static.debank.com/image/xdai_token/logo_url/xdai/1207e67652b691ef3bfe04f89f4b5362.png"}}],"data":{"bid":{"user":"0x53F68B2186E4a4aB4dD976eD32de68db45BA360b","router":"0xeE2Ef40F688607CB23618d9312d62392786d13EB","initiator":"0x53F68B2186E4a4aB4dD976eD32de68db45BA360b","sendingChainId":100,"sendingAssetId":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","amount":"1000000000000000000","receivingChainId":137,"receivingAssetId":"0xc0b2983a17573660053beeed6fdb1053107cf387","amountReceived":"999500000000000000","receivingAddress":"0x10fBFF9b9450D3A2d9d1612d6dE3726fACD8809E","transactionId":"0x48f0a2f93b0d0a9dab992d07c46bca38516c945101e8f8e08ca42af05b9e6aa9","expiry":1643364189,"callDataHash":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","callTo":"0x0000000000000000000000000000000000000000","encryptedCallData":"0x","sendingChainTxManagerAddress":"0x115909BDcbaB21954bEb4ab65FC2aBEE9866fa93","receivingChainTxManagerAddress":"0x6090De2EC76eb1Dc3B5d632734415c93c44Fd113","bidExpiry":1643105290},"gasFeeInReceivingToken":"0","totalFee":"500000000000000","metaTxRelayerFee":"0","routerFee":"500000000000000"}},"integrator":"fee-demo"},"uniqueKey":"","typeLabel":"Root Type for Step · object"},"examples":{"StepResponseExample":{"title":"StepResponseExample","value":{"id":"a8dc011a-f52d-4492-9e99-21de64b5453a","type":"lifi","tool":"1inch","toolDetails":{"key":"1inch","logoURI":"https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/exchanges/oneinch.svg","name":"1inch"},"action":{"fromChainId":100,"toChainId":100,"fromToken":{"address":"0x0000000000000000000000000000000000000000","symbol":"xDai","decimals":18,"chainId":100,"name":"xDai","coinKey":"xDai","priceUSD":"1","logoURI":"https://static.debank.com/image/xdai_token/logo_url/xdai/1207e67652b691ef3bfe04f89f4b5362.png"},"toToken":{"name":"Minerva Wallet SuperToken","symbol":"MIVA","coinKey":"MIVA","decimals":18,"chainId":100,"logoURI":"https://minerva.digital/i/MIVA-Token_200x200.png","address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51"},"fromAmount":"1000000000000000000","slippage":0.003,"fromAddress":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0","toAddress":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0"},"estimate":{"fromAmount":"1000000000000000000","toAmount":"21922914496086353975","toAmountMin":"21265227061203763356","approvalAddress":"0x1111111254fb6c44bac0bed2854e76f90643097d","feeCosts":[],"gasCosts":[{"type":"SEND","price":"1000000000","estimate":"252364","limit":"315455","amount":"252364000000000","amountUSD":"0.00","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"xDai","decimals":18,"chainId":100,"name":"xDai","coinKey":"xDai","priceUSD":"1","logoURI":"https://static.debank.com/image/xdai_token/logo_url/xdai/1207e67652b691ef3bfe04f89f4b5362.png"}}],"data":{"fromToken":{"name":"xDAI","address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","symbol":"xDAI","decimals":18,"logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png"},"toToken":{"name":"Minerva Wallet SuperToken","address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"logoURI":"https://minerva.digital/i/MIVA-Token_200x200.png"},"toTokenAmount":"21922914496086353975","fromTokenAmount":"1000000000000000000","protocols":[{"name":"GNOSIS_HONEYSWAP","part":100,"fromTokenAddress":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","toTokenAddress":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51"}],"estimatedGas":252364}},"integrator":"fee-demo","transactionRequest":{"from":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0","to":"0x1111111254fb6c44bac0bed2854e76f90643097d","chainId":100,"data":"0x...","value":"0x0de0b6b3a7640000","gasPrice":"0xb2d05e00","gasLimit":"0x0e9cb2"},"includedSteps":[{"id":"a8dc011a-f52d-4492-9e99-21de64b5453a","type":"swap","tool":"1inch","toolDetails":{"key":"1inch","logoURI":"https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/exchanges/oneinch.svg","name":"1inch"},"action":{"fromChainId":100,"toChainId":100,"fromToken":{"address":"0x0000000000000000000000000000000000000000","symbol":"xDai","decimals":18,"chainId":100,"name":"xDai","coinKey":"xDai","priceUSD":"1","logoURI":"https://static.debank.com/image/xdai_token/logo_url/xdai/1207e67652b691ef3bfe04f89f4b5362.png"},"toToken":{"name":"Minerva Wallet SuperToken","symbol":"MIVA","coinKey":"MIVA","decimals":18,"chainId":100,"logoURI":"https://minerva.digital/i/MIVA-Token_200x200.png","address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51"},"fromAmount":"1000000000000000000","slippage":0.003,"fromAddress":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0","toAddress":"0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0"},"estimate":{"fromAmount":"1000000000000000000","toAmount":"21922914496086353975","toAmountMin":"21265227061203763356","approvalAddress":"0x1111111254fb6c44bac0bed2854e76f90643097d","feeCosts":[],"gasCosts":[{"type":"SEND","price":"1000000000","estimate":"252364","limit":"315455","amount":"252364000000000","amountUSD":"0.00","token":{"address":"0x0000000000000000000000000000000000000000","symbol":"xDai","decimals":18,"chainId":100,"name":"xDai","coinKey":"xDai","priceUSD":"1","logoURI":"https://static.debank.com/image/xdai_token/logo_url/xdai/1207e67652b691ef3bfe04f89f4b5362.png"}}],"data":{"fromToken":{"name":"xDAI","address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","symbol":"xDAI","decimals":18,"logoURI":"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png"},"toToken":{"name":"Minerva Wallet SuperToken","address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"logoURI":"https://minerva.digital/i/MIVA-Token_200x200.png"},"toTokenAmount":"21922914496086353975","fromTokenAmount":"1000000000000000000","protocols":[{"name":"GNOSIS_HONEYSWAP","part":100,"fromTokenAddress":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","toTokenAddress":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51"}],"estimatedGas":252364}}}]}}},"exampleType":"examples"}},"description":"The step populated with the transaction data","exampleType":"examples"},"f77ff004-e6b4-4878-9992-56210700a8a0":{"description":"Invalid quote request","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"8ca19f7a-acd6-4b9a-b05a-531f5f0858da":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"description":"The error message","type":"string","example":"Unable to find a quote for the requested transfer","uniqueKey":"message","typeLabel":"string"},"errors":{"type":"object","items":{"type":"object","properties":{"filteredOut":{"description":"An object containing information about routes that were intentionally filtered out.","type":"array","items":{"properties":{"overallPath":{"description":"The complete representation of the attempted route.","type":"string","example":"100:USDC-hop-137:USDC-137:USDC~137:SUSHI"},"reason":{"description":"Out best attempt at describing the failure.","type":"string"}},"type":"object"}},"failed":{"description":"An object containing information about failed routes.","type":"array","items":{"properties":{"overallPath":{"description":"The complete representation of the attempted route.","type":"string","example":"100:USDC-hop-137:USDC-137:USDC~137:SUSHI"},"subpaths":{"description":"An object with all subpaths that generated one or more errors","type":"object","additionalProperties":{"title":"An error returned by a tool (Exchange or Bridge)","description":"Describes why a certain operation (like a quote request) failed.","type":"object","properties":{"errorType":{"description":"The type of error that occurred.","enum":["NO_QUOTE"],"type":"string"},"code":{"description":"The error code.","enum":["NO_POSSIBLE_ROUTE","INSUFFICIENT_LIQUIDITY","TOOL_TIMEOUT","UNKNOWN_ERROR","RPC_ERROR","AMOUNT_TOO_LOW","AMOUNT_TOO_HIGH","FEES_HIGHER_THAN_AMOUNT","DIFFERENT_RECIPIENT_NOT_SUPPORTED","TOOL_SPECIFIC_ERROR","CANNOT_GUARANTEE_MIN_AMOUNT","RATE_LIMIT_EXCEEDED"],"type":"string"},"action":{"title":"Root Type for Action","description":"Object describing what happens in a `Step`","required":["fromToken","fromAmount","fromChainId","toChainId","toToken"],"type":"object","properties":{"fromChainId":{"format":"number","description":"The id of the chain where the transfer should start","type":"number"},"fromAmount":{"description":"The amount that should be transferred including all decimals","type":"string"},"fromToken":{"title":"Root Type for Token","description":"The sending token","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number"},"symbol":{"description":"Symbol of the token","type":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number"},"coinKey":{"description":"Identifier for the token","type":"string"},"name":{"description":"Name of the token","type":"string"},"logoURI":{"description":"Logo of the token","type":"string"},"priceUSD":{"description":"Token price in USD","type":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"}},"toChainId":{"format":"number","description":"The id of the chain where the transfer should end","type":"number"},"toToken":{"title":"Root Type for Token","description":"The token that should be transferred to","required":["address","chainId","decimals","name","symbol"],"type":"object","properties":{"address":{"description":"Address of the token","type":"string"},"decimals":{"format":"number","description":"Number of decimals the token uses","type":"number"},"symbol":{"description":"Symbol of the token","type":"string"},"chainId":{"format":"number","description":"Id of the token's chain","type":"number"},"coinKey":{"description":"Identifier for the token","type":"string"},"name":{"description":"Name of the token","type":"string"},"logoURI":{"description":"Logo of the token","type":"string"},"priceUSD":{"description":"Token price in USD","type":"string"}},"example":{"address":"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063","symbol":"DAI","decimals":18,"chainId":137,"name":"(PoS) Dai Stablecoin","coinKey":"DAI","priceUSD":"1","logoURI":"https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"}},"slippage":{"format":"double","description":"The maximum allowed slippage","type":"number"},"fromAddress":{"description":"The sending wallet address","type":"string"},"toAddress":{"description":"The receiving wallet address","type":"string"}},"example":{"fromChainId":100,"fromAmount":"1000000000000000000","fromToken":{"address":"0x63e62989d9eb2d37dfdb1f93a22f063635b07d51","symbol":"MIVA","decimals":18,"chainId":100,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0.0455272371751059","logoURI":""},"toChainId":137,"toToken":{"address":"0xc0b2983a17573660053beeed6fdb1053107cf387","symbol":"MIVA","decimals":18,"chainId":137,"name":"Minerva Wallet SuperToken","coinKey":"MIVA","priceUSD":"0","logoURI":""},"slippage":0.003}},"tool":{"description":"The tool that emitted the error.","type":"string"},"message":{"description":"A human-readable message describing the error.","type":"string"}}}}},"type":"object"}}}},"uniqueKey":"errors","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Unable to find a quote for the requested transfer","errors":{}}}},"exampleType":"generated"}},"description":"Unable to find a quote for the requested transfer.","exampleType":"generated"}},"security":{},"servers":{"2d571c46-53ec-43a1-9793-fbf2719d026d":{"url":"https://li.quest","description":"LI.FI Production Environment"},"ea026e35-a5ad-4fd4-9864-837362b78550":{"url":"https://staging.li.quest","description":"LI.FI Staging Environment"}}},"originalFileLocation":"openapi.yaml"},"subdomain":"lifi","siteName":"LI.FI","title":"Get a quote for a token transfer - LI.FI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/get-a-quote-for-a-token-transfer","matchLevel":0},"zh-Hans":{"href":"/zh-Hans/introduction/introduction","matchLevel":4}}},"lastModified":"2026-10-29T06:58:53.294Z","originalFileLocation":"api-reference/get-a-quote-for-a-token-transfer.mdx","locale":"en"},"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=\"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not. The endpoint returns a Step object which contains information about the estimated result as well as a transactionRequest which can directly be sent to your wallet. The estimated result can be found inside the estimate, containing the estimated toAmount of the requested Token and the toAmountMin, which is the guaranteed minimum value that the transfer will yield including slippage. If you want to learn more about how to use this endpoint please have a look at our guide.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LI.FI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_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/lifi/uhSlA1vHRUBoEVMw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get a quote for a token transfer - LI.FI\">\u003cmeta data-mint-head property=\"og:description\" content=\"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not. The endpoint returns a Step object which contains information about the estimated result as well as a transactionRequest which can directly be sent to your wallet. The estimated result can be found inside the estimate, containing the estimated toAmount of the requested Token and the toAmountMin, which is the guaranteed minimum value that the transfer will yield including slippage. If you want to learn more about how to use this endpoint please have a look at our guide.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LI.FI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lifi.mintlify.app/_mintlify/api/og/v2?division=Single-step+quote\u0026amp;title=Get+a+quote+for+a+token+transfer\u0026amp;description=This+endpoint+can+be+used+to+request+a+quote+for+a+transfer+of+one+token+to+another%2C+cross+chain+or+not.%0AThe+endpoint+returns+a+%60Step%60+object+which+contains+inf\u0026amp;theme=bbd760f308f6962e114ab426\u0026amp;signature=179ef91838bce403b51d82c9534f3f767e325a9d25eae26ba39681b73045704f\">\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=\"Get a quote for a token transfer - LI.FI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not. The endpoint returns a Step object which contains information about the estimated result as well as a transactionRequest which can directly be sent to your wallet. The estimated result can be found inside the estimate, containing the estimated toAmount of the requested Token and the toAmountMin, which is the guaranteed minimum value that the transfer will yield including slippage. If you want to learn more about how to use this endpoint please have a look at our guide.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lifi.mintlify.app/_mintlify/api/og/v2?division=Single-step+quote\u0026amp;title=Get+a+quote+for+a+token+transfer\u0026amp;description=This+endpoint+can+be+used+to+request+a+quote+for+a+transfer+of+one+token+to+another%2C+cross+chain+or+not.%0AThe+endpoint+returns+a+%60Step%60+object+which+contains+inf\u0026amp;theme=bbd760f308f6962e114ab426\u0026amp;signature=179ef91838bce403b51d82c9534f3f767e325a9d25eae26ba39681b73045704f\">\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/lifi/uhSlA1vHRUBoEVMw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LI.FI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5C67FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/get-a-quote-for-a-token-transfer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.li.fi/#organization\",\"name\":\"LI.FI\",\"url\":\"https://docs.li.fi\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lifi/EmProAEgMrruLUbI/logo/light.png?fit=max\u0026auto=format\u0026n=EmProAEgMrruLUbI\u0026q=85\u0026s=f435348680e682acea6e3b9af339ed7a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.li.fi#website\",\"name\":\"LI.FI\",\"url\":\"https://docs.li.fi\",\"publisher\":{\"@id\":\"https://docs.li.fi/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer#webpage\",\"url\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer\",\"name\":\"Get a quote for a token transfer\",\"description\":\"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not. The endpoint returns a Step object which contains information about the estimated result as well as a transactionRequest which can directly be sent to your wallet. The estimated result can be found inside the estimate, containing the estimated toAmount of the requested Token and the toAmountMin, which is the guaranteed minimum value that the transfer will yield including slippage. If you want to learn more about how to use this endpoint please have a look at our guide.\",\"dateModified\":\"2026-10-29T06:58:53.294Z\",\"isPartOf\":{\"@id\":\"https://docs.li.fi#website\"},\"breadcrumb\":{\"@id\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Requesting a quote\",\"item\":\"https://docs.li.fi/api-reference/presets/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get a quote for a token transfer\",\"item\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer#apireference\",\"headline\":\"Get a quote for a token transfer\",\"name\":\"Get a quote for a token transfer\",\"description\":\"This endpoint can be used to request a quote for a transfer of one token to another, cross chain or not. The endpoint returns a Step object which contains information about the estimated result as well as a transactionRequest which can directly be sent to your wallet. The estimated result can be found inside the estimate, containing the estimated toAmount of the requested Token and the toAmountMin, which is the guaranteed minimum value that the transfer will yield including slippage. If you want to learn more about how to use this endpoint please have a look at our guide.\",\"url\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer\",\"mainEntityOfPage\":{\"@id\":\"https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer#webpage\"},\"dateModified\":\"2026-10-29T06:58:53.294Z\",\"publisher\":{\"@id\":\"https://docs.li.fi/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.li.fi#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LI.FI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"LI.FI","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/introduction/introduction"}]},{"tab":"Enterprise (New)","pages":[{"title":"Enterprise (New)","href":"/enterprise/overview"}]},{"tab":"API Reference","groups":[{"group":"About APIs","pages":[{"title":"Overview","href":"/api-reference/introduction"},{"title":"OpenAPI Specification","href":"/api-reference/openapi-spec"},{"title":"Rate Limits and API Authentication","href":"/api-reference/rate-limits"},{"title":"API Key Security","href":"/api-reference/api-key-security"},{"title":"Error Codes","href":"/api-reference/error-codes"}]},{"group":"General API","pages":[{"group":"Chains","pages":[{"openapi":"openapi.yaml GET /v1/chains","title":"Get information about all currently supported chains","href":"/api-reference/get-information-about-all-currently-supported-chains"}]},{"group":"Tokens","pages":[{"title":"Fetch all known tokens","openapi":"get /v1/tokens","href":"/api-reference/fetch-all-known-tokens"},{"openapi":"get /v1/token","title":"Fetch information about a Token","href":"/api-reference/fetch-information-about-a-token"}]},{"group":"Tools","pages":[{"openapi":"get /v1/tools","title":"Get available bridges and exchanges","href":"/api-reference/get-available-bridges-and-exchanges"}]},{"group":"Connections","pages":[{"openapi":"get /v1/connections","title":"Returns all possible connections between two chains.","href":"/api-reference/returns-all-possible-connections-based-on-a-from-or-tochain"}]},{"group":"Gas endpoints","pages":[{"openapi":"get /v1/gas/prices/{chainId}","title":"Get gas price for the specified chainId","href":"/api-reference/gas/get-gas-price-for-the-specified-chainid"},{"openapi":"get /v1/gas/prices","title":"Get gas prices for enabled chains","href":"/api-reference/gas/get-gas-prices-for-enabled-chains"},{"openapi":"get /v1/gas/suggestion/{chain}","title":"Get a gas suggestion for the specified chain","href":"/api-reference/get-a-gas-suggestion-for-the-specified-chain"},{"openapi":"get /v1/gas/status","title":"Get status information about a lifuel transaction","href":"/api-reference/get-status-information-about-a-lifuel-transaction"},{"openapi":"get /v1/gas/refetch","title":"In case a transaction was missed by a relayer, this endpoint can be used to force a tx to be re-fetched.","href":"/api-reference/in-case-a-transaction-was-missed-by-a-relayer-this-endpoint-can-be-used-to-force-a-tx-to-be-re-fetched"}]},{"group":"Transaction status","pages":[{"openapi":"get /v1/status","title":"Check the status of a cross chain transfer","href":"/api-reference/check-the-status-of-a-cross-chain-transfer"}]},{"group":"Integrator fee information","pages":[{"openapi":"get /v1/integrators/{integratorId}/withdraw/{chainId}","title":"Get transaction request for withdrawing collected integrator's fees by chain","href":"/api-reference/get-transaction-request-for-withdrawing-collected-integrators-fees-by-chain"},{"openapi":"get /v1/integrators/{integratorId}","title":"Get integrator's collected fees data for all supported chains","href":"/api-reference/get-integrators-collected-fees-data-for-all-supported-chains"}]},{"group":"Analytics","pages":[{"openapi":"get /v1/analytics/transfers/summary","title":"Get the total amount of a token received on a specific chain, for cross-chain transfers.","href":"/api-reference/get-the-total-amount-of-a-token-received-on-a-specific-chain-for-cross-chain-transfers"},{"openapi":"get /v1/analytics/transfers","title":"Get a list of filtered transfers","href":"/api-reference/get-a-list-of-filtered-transfers"},{"openapi":"get /v2/analytics/transfers","title":"Get a paginated list of filtered transfers","href":"/api-reference/get-a-paginated-list-of-filtered-transfers"}]}]},{"group":"Requesting a quote","pages":[{"group":"API presets","pages":[{"title":"API Presets","href":"/api-reference/presets/overview"},{"title":"Stablecoin preset","description":"Stablecoin-focused routing defaults for LI.FI quotes and advanced routes.","href":"/api-reference/presets/stablecoin"}]},{"group":"Single-step quote","pages":[{"openapi":"get /v1/quote","title":"Get a quote for a token transfer","href":"/api-reference/get-a-quote-for-a-token-transfer"},{"openapi":"get /v1/quote/toAmount","title":"Get a quote for a token transfer","description":"This endpoint is an alternative to the `v1/quote` endpoint, taking a `toAmount` value rather than `fromAmount`. This endpoint will calculate an appropriate `fromAmount` based on the specified `toAmount`, and use this value to generate the quote data.\nThis endpoint can be used to request a quote for a transfer of one token to another, cross chain or not.\nThe endpoint returns a `Step` object which contains information about the estimated result as well as a `transactionRequest` which can directly be sent to your wallet.\nThe estimated result can be found inside the `estimate`, containing the estimated required `fromAmount` of the sending `Token` to meet the `toAmountMin` of the receiving token, which is the guaranteed minimum value that the transfer will yield including slippage.\nIf you want to learn more about how to use this endpoint please have a look at our [guide](/introduction/user-flows-and-examples/requesting-route-fetching-quote).","href":"/api-reference/get-a-quote-for-a-token-transfer-1"},{"openapi":"post /v1/quote/contractCalls","title":"Perform multiple contract calls across blockchains (BETA)","href":"/api-reference/perform-multiple-contract-calls-across-blockchains-beta"}]},{"group":"Advanced routes","pages":[{"openapi":"post /v1/advanced/routes","title":"Get a set of routes for a request that describes a transfer of tokens","href":"/api-reference/advanced/get-a-set-of-routes-for-a-request-that-describes-a-transfer-of-tokens"},{"openapi":"post /v1/advanced/stepTransaction","title":"Populate a step with transaction data","href":"/api-reference/advanced/populate-a-step-with-transaction-data"}]},{"group":"Parse transaction call data","pages":[{"openapi":"get /v1/calldata/parse","title":"Parse transaction call data (BETA)","href":"/api-reference/parse-transaction-call-data-beta"}]}]}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/overview"}]},{"tab":"Widget","pages":[{"title":"Widget","href":"/widget/overview"}]},{"tab":"Composer","pages":[{"title":"Composer","href":"/composer/overview"}]},{"tab":"Earn","pages":[{"title":"Earn","href":"/earn/overview"}]},{"tab":"Perps","pages":[{"title":"Perps","href":"/perps/overview"}]},{"tab":"Intents \u0026 Solvers","pages":[{"title":"Intents \u0026 Solvers","href":"/lifi-intents/introduction"}]},{"tab":"For Agents","pages":[{"title":"For Agents","href":"/agents/overview"}]},{"tab":"Widget Playground","href":"https://playground.li.fi/"},{"tab":"Bigmi","pages":[{"title":"Bigmi","href":"/bigmi/overview"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/gas-options"}]},{"tab":"FAQs","pages":[{"title":"FAQs","href":"/faqs/fees-monetization"}]}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/introduction/introduction"}]}]},"basePath":"","title":"Get a quote for a token transfer - LI.FI","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}