Returns one executable, signed quote for moving a stablecoin between chains, or within a chain, for source.funder. type fixes either source.amount (exact-in) or destination.amount (exact-out); custom requires user-authored destination.calls. dappId is required. The response is a top-level quote object with the transaction to send from the funder (execution.transaction), the decoded intent, destination.amountOut and minAmountOut, fees, per-step intents, and expiresAt. signature verifies against the source chain’s quoteSigner from GET /v1/chains. For routes with multiple intents, inspect steps[].intents[] to identify the delivery intent before tracking status. See Intent types.An unsupported chain returns 422 chain-not-supported. Routes no solver will fill (unlisted tokens, unavailable liquidity, amounts above what solvers hold) can return 502 solver-error; upstream failures can return the same code.Requires x-api-key. Partner pricing, attribution, and enabled features are tied to the key. Without a key the gateway can answer 403 with a plain JSON body ({"Message": "User is not authorized ..."}); a key that is unknown, revoked, or not enabled for v1 answers 401 invalid-api-key. No requests-per-second quota is published. Handle 429 and honor Retry-After when present. See Errors and retries for common errors and retry handling.Examples use mainnet token and contract addresses with placeholder wallets, hashes, signatures, and IDs. They are illustrative and must not be used to transfer funds.
Which amount is fixed. exact-in specifies source.amount and returns the quoted destination.minAmountOut. exact-out specifies destination.amount and returns the required source.amount. custom: source.amount is spent and the supplied destination.calls execute on the destination chain.
Ordered legs of the route. Each step names its provider and lists the intents it is realized by, with the full decoded intent. A stitched-destination intent credits the recipient on a multi-hop route and is the one to track for delivery; bucket-candidate entries are alternative routes, not all of which fill.
Everything needed to fund the quote: the ready-to-send transaction, the decoded intent (route and reward), and the vault the source Portal funds the intent through, which is also the counterparty for gasless submits. Sent as-is.
EIP-712 signature by the source chain's quoteSigner (see GET /v1/chains) over Quote(string id, bytes32[] intentHashes, uint64 expiresAt) with domain { name: "EcoQuoteV1", version: "1", chainId: source.chainId }. intentHashes is intentHash plus every steps[].intents[].intentHash, lowercased, de-duplicated, sorted ascending.
Every competing quote, ranked best first, when options.allQuotes is true; each entry is independently signed. Null otherwise. The top-level object is always the winner.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Eco Docs","description":"Build stablecoin transfers, deposit flows, and onchain programs with Eco. Documentation for the Routes API, CLI, Sauce SDK, and protocol contracts.","colors":{"primary":"#3b82f6","light":"#3b82f6","dark":"#3b82f6"},"logo":{"light":"https://mintcdn.com/ecoinc/DtIf8WKVQ-UcXs2M/~/files/logos/logo.png?fit=max\u0026auto=format\u0026n=DtIf8WKVQ-UcXs2M\u0026q=85\u0026s=4d88ec61010fb99d770ca35604355e16","dark":"https://mintcdn.com/ecoinc/s85zM0i2kAgkNof5/~/files/logos/Logo_white.svg?fit=max\u0026auto=format\u0026n=s85zM0i2kAgkNof5\u0026q=85\u0026s=b6bb8580004e1b4feceb27c5430df3ae","href":"https://docs.eco.com/home"},"favicon":"https://mintcdn.com/ecoinc/DtIf8WKVQ-UcXs2M/~/files/logos/favicon.png?fit=max\u0026auto=format\u0026n=DtIf8WKVQ-UcXs2M\u0026q=85\u0026s=f6ff28e4c243dfb29036f5f04bf20bae","appearance":{"default":"dark","strict":true},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://portal.eco.com/","label":"Bridge"},{"href":"mailto:contact@eco.com","label":"Support"}],"primary":{"type":"button","label":"Get API key","href":"mailto:contact@eco.com?subject=Eco%20API%20key"}},"footer":{"socials":{"x":"https://x.com/eco","github":"https://github.com/eco","website":"https://eco.com","youtube":"https://www.youtube.com/@ecoprotocol?sub_confirmation=1","linkedin":"https://www.linkedin.com/company/ecoproto"},"links":[{"header":"Company","items":[{"label":"Careers","href":"https://job-boards.greenhouse.io/ecoinc"},{"label":"About","href":"https://eco.com/"}]},{"header":"Tools","items":[{"label":"Eco Portal","href":"https://portal.eco.com/"},{"label":"Build with AI agents","href":"https://docs.eco.com/get-started/build-with-agents"}]},{"header":"Resources","items":[{"label":"Changelog","href":"https://docs.eco.com/resources/changelog/docs"},{"label":"FAQ","href":"https://docs.eco.com/resources/faq"},{"label":"Audits","href":"https://cantina.xyz/portfolio/f4ef1cd6-860e-4f58-82de-09751baea324"},{"label":"Contact","href":"mailto:contact@eco.com"},{"label":"Discord","href":"https://discord.com/invite/ecommunity"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://eco.com/privacy-policy"},{"label":"Terms of Service","href":"https://eco.com/tos"}]}]},"search":{"prompt":"Search Eco docs or ask a question..."},"seo":{"metatags":{"og:site_name":"Eco Docs","og:type":"website","twitter:card":"summary_large_image","twitter:site":"@eco","keywords":"Eco, stablecoin API, cross-chain stablecoin transfers, USDC bridge API, stablecoin swaps, intent-based routing, deposit addresses, Circle Gateway deposits, programmable transactions, Eco Routes"},"indexing":"navigable"},"integrations":{"ga4":{"measurementId":"G-KN3SEBFY15"},"gtm":{"tagId":"GTM-T2ND46NV"},"intercom":{"appId":"bswxc49x"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/ecoinc/s85zM0i2kAgkNof5/~/files/meta/preview.svg?fit=max\u0026auto=format\u0026n=s85zM0i2kAgkNof5\u0026q=85\u0026s=cc560167fba2be2683fdc3bdc0d8a5a1"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ecoinc","hasAudioNarration":false,"actualSubdomain":"ecoinc","customDomains":["docs.eco.com"],"gitSource":{"type":"github","owner":"eco-incorp","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac6096d8afbd364e1abfcb5","collectionId":"300d22af-aa30-4608-90d0-cd1888620349","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac6096d8afbd364e1abfcb5"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae14a6fc9cad114ccceef9d","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Sauce SDK","count":443},{"language":"default","tag":"Chains and protocols","count":186},{"language":"default","tag":"@eco-incorp/sauce","count":159},{"language":"default","tag":"Protocols","count":134},{"language":"default","tag":"svm venues","count":88},{"language":"default","tag":"Chains","count":50},{"language":"default","tag":"Quickstarts","count":42},{"language":"default","tag":"Integration guides","count":40},{"language":"default","tag":"Developer platform","count":32},{"language":"default","tag":"svm","count":27}]},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"home.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Fragment Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/fragmentmono/v6/4iCr6K5wfMRRjxp0DA6-2CLnB45HhrUI.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Fragment Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/fragmentmono/v6/4iCr6K5wfMRRjxp0DA6-2CLnB41HhrUI.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Fragment Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/fragmentmono/v6/4iCr6K5wfMRRjxp0DA6-2CLnB4NHhg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@keyframes eco-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}.eco-landing{--bg:#000000;--bg-card:#0a0a0a;--bg-card-2:#131313;--bg-card-3:#171717;--bg-light:#ffffff;--bg-soft-light:#f7f7f7;--bg-blue:#1c53bd;--border-faint:#1f1f1f;--border:#222222;--border-mid:#363636;--border-strong:#3a3a3a;--text:#ffffff;--text-dim:rgba(255,255,255,0.8);--text-mute:#d2d2d2;--text-faint:#a2a2a2;--text-fainter:#7c7c7c;--accent:#1c53bd;--accent-light:#6092f2;--accent-soft:#d0e0ff;--btn-grad:radial-gradient(50% 109.4% at 50% 50%, #6092f2 0%, #1c53bd 100%);--btn-shadow:inset 0 4px 4px rgba(255,255,255,0.12);--glass:rgba(255,255,255,0.08);--glass-2:rgba(255,255,255,0.12);--font-display:'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:'Fragment Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;--r:6px;background:var(--bg);color:var(--text);font-family:var(--font-display);font-feature-settings:\"ss01\" on,\"cv11\" on;letter-spacing:-.011em;margin:0;width:100%;max-width:100%;min-height:100vh;padding:0;overflow-x:clip}.eco-landing *{box-sizing:border-box}.eco-landing a{color:inherit;text-decoration:none}.eco-container{max-width:1340px;margin:0 auto;padding:0 clamp(20px,4vw,60px)}.eco-landing{--eco-header-h:112px}.eco-hero,.eco-hero-inner{position:relative;align-items:center}.eco-hero{padding:clamp(40px,6vh,80px) 0;overflow:hidden;border-bottom:1px solid var(--border-faint);display:flex;min-height:calc(100vh - var(--eco-header-h));min-height:calc(100svh - var(--eco-header-h))}.eco-hero>.eco-container{width:100%}.eco-hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(900px 500px at 80% 20%,rgba(96,146,242,.1),transparent 60%),radial-gradient(600px 400px at 10% 90%,rgba(28,83,189,.07),transparent 60%);pointer-events:none}.eco-hero-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px)}.eco-hero-inner>.eco-panel{width:100%;max-width:640px;justify-self:end;min-width:0}.eco-hero-inner>div:first-child{min-width:0}.eco-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:.9;letter-spacing:-.02em;text-transform:uppercase;color:var(--text-faint);margin-bottom:20px}.eco-h1{font-family:var(--font-display);font-size:clamp(34px,2.4vw + 16px,56px);line-height:1.06;letter-spacing:-.03em;font-weight:500;margin:0 0 clamp(16px,2vw,24px);color:var(--text);max-width:none;text-wrap:balance}.eco-h1-dim{color:var(--text-faint)}.eco-lede{font-size:clamp(15px,.4vw + 11px,17px);line-height:1.55;color:var(--text-dim);max-width:56ch;margin:0 0 clamp(24px,2.5vw,32px);letter-spacing:-.015em}.eco-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.eco-cta-row.center{justify-content:center}.eco-btn{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:14px;font-weight:400;line-height:1;letter-spacing:-.02em;text-transform:uppercase;border-radius:var(--r);transition:transform .12s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;border:1px solid transparent;cursor:pointer;white-space:nowrap}.eco-btn-primary{background:var(--btn-grad);box-shadow:var(--btn-shadow);color:var(--text);padding:7px 8px 9px 16px;gap:40px;height:46px}.eco-btn-primary:hover{transform:translateY(-1px)}.eco-btn-arrow-box{width:30px;height:30px;background:var(--text);border-radius:var(--r);display:inline-flex;align-items:center;justify-content:center;flex:none}.eco-btn-arrow-box svg{color:var(--accent);display:block}.eco-btn-ghost{background:0 0;color:var(--text);border-color:rgba(255,255,255,.2);padding:0 16px 2px;height:46px}.eco-btn-ghost:hover{background:var(--glass);border-color:rgba(255,255,255,.4)}.eco-btn-white{background:var(--text);color:var(--bg);padding:0 16px 2px;height:46px}.eco-btn-white:hover{transform:translateY(-1px)}.eco-microstats{display:flex;gap:20px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--border-faint);font-family:var(--font-mono);font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:-.02em}.eco-microstats strong{color:var(--text);font-weight:400;margin-right:6px;font-variant-numeric:tabular-nums}.eco-panel{background:var(--bg-card-2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}.eco-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.eco-panel>input[type=radio]{display:none;position:absolute}.eco-tabs{display:flex;gap:4px}.eco-tabs input{display:none}.eco-live,.eco-tab-label{font-family:var(--font-mono);font-size:12px;color:var(--text-faint);letter-spacing:-.02em;text-transform:uppercase}.eco-tab-label{font-weight:400;line-height:.9;padding:8px 12px;border-radius:var(--r);cursor:pointer;transition:all .15s ease}.eco-tab-label:hover{color:var(--text-dim)}.eco-live{display:inline-flex;align-items:center;gap:8px}.eco-live-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:eco-pulse 2s infinite}.eco-panel-body{padding:20px;min-height:320px}.eco-tab-pane{display:none}#eco-tab-addr:checked~.eco-panel-body .eco-tab-pane[data-tab=addr],#eco-tab-routes:checked~.eco-panel-body .eco-tab-pane[data-tab=routes],#eco-tab-tx:checked~.eco-panel-body .eco-tab-pane[data-tab=tx]{display:block}#eco-tab-addr:checked~.eco-panel-head .eco-tabs label[for=eco-tab-addr],#eco-tab-routes:checked~.eco-panel-head .eco-tabs label[for=eco-tab-routes],#eco-tab-tx:checked~.eco-panel-head .eco-tabs label[for=eco-tab-tx]{background:var(--glass-2);color:var(--text)}.eco-flow-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:20px 22px}.eco-flow-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center}.eco-chip,.eco-flow-side .label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:-.02em}.eco-flow-side .label{color:var(--text-faint);margin-bottom:8px}.eco-flow-side .amount{font-family:var(--font-display);font-size:24px;font-weight:500;letter-spacing:-.02em;margin-bottom:10px;font-variant-numeric:tabular-nums}.eco-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r);background:var(--glass);border:1px solid var(--border);color:var(--text-mute)}.eco-chip-dot{width:7px;height:7px;border-radius:50%}.dot-base{background:#2151f5}.dot-arb{background:#28a0f0}.dot-op{background:#ff0420}.dot-poly{background:#8247e5}.dot-eth{background:#627eea}.eco-flow-arrow,.eco-timeline-row .t{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:-.02em;text-transform:uppercase}.eco-flow-arrow{display:flex;flex-direction:column;align-items:center;font-size:10px}.eco-flow-arrow-line{width:64px;height:1px;background:linear-gradient(to right,transparent,var(--border-mid),transparent);position:relative;margin-bottom:6px}.eco-flow-arrow-line::after{content:\"\";position:absolute;right:0;top:-3px;width:0;height:0;border-left:5px solid var(--border-mid);border-top:3px solid transparent;border-bottom:3px solid transparent}.eco-timeline{margin-top:14px;display:grid;gap:6px}.eco-mini-code,.eco-timeline-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);color:var(--text-mute)}.eco-timeline-row{display:grid;grid-template-columns:72px 14px 1fr;align-items:center;gap:12px;padding:11px 14px;font-size:13px;letter-spacing:-.01em}.eco-timeline-row .t{font-size:11px;font-variant-numeric:tabular-nums}.eco-timeline-row .dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint);margin:0 auto}.eco-timeline-row.done .dot{background:#22c55e}.eco-mini-code{padding:16px 18px;font-family:var(--font-mono);font-size:12.5px;line-height:1.7;overflow-x:auto}.eco-mini-code>div{white-space:nowrap}.eco-mini-code .kw{color:#c4b5fd}.eco-mini-code .fn{color:#93c5fd}.eco-mini-code .str{color:#86efac}.eco-mini-code .num{color:#fbbf24}.eco-mini-code .cm,.eco-mini-code .pun{color:var(--text-faint)}.eco-strip{padding:40px 0;border-bottom:1px solid var(--border-faint)}.eco-strip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.eco-strip-cell .num{font-family:var(--font-display);font-size:28px;font-weight:500;letter-spacing:-.03em;color:var(--text);line-height:1.1}.eco-strip-cell .lbl{font-family:var(--font-mono);font-size:12px;color:var(--text-faint);margin-top:10px;letter-spacing:-.02em;text-transform:uppercase;line-height:1.4}.eco-section{padding:clamp(56px,8vw,100px) 0;position:relative;border-bottom:1px solid var(--border-faint)}.eco-landing>section:last-child{border-bottom:0}.eco-section-head{margin-bottom:clamp(36px,5vw,64px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(24px,6vw,80px);align-items:end}.eco-section-tag{font-family:var(--font-mono);font-size:18px;font-weight:400;line-height:.9;letter-spacing:-.02em;text-transform:uppercase;color:var(--text-faint);margin-bottom:18px}.eco-h2,.eco-section-sub{margin:0;letter-spacing:-.02em}.eco-h2{font-family:var(--font-display);font-size:clamp(30px,2.4vw + 12px,56px);text-wrap:balance;line-height:1;font-weight:500;color:var(--text)}.eco-section-sub{font-size:16px;color:var(--text-mute);line-height:1.4}.eco-personas{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.eco-persona{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--bg-card);transition:border-color .2s ease,transform .2s ease,background .2s ease;display:flex;flex-direction:column}.eco-persona:hover{border-color:var(--border-strong);transform:translateY(-2px);background:var(--bg-card-2)}.eco-persona-art{height:132px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg);border-bottom:1px solid var(--border)}.eco-persona-art::before{background-image:linear-gradient(to right,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.025) 1px,transparent 1px);background-size:24px 24px}.eco-persona-art::after,.eco-persona-art::before{content:\"\";position:absolute;inset:0}.art-wallets::after{background:radial-gradient(circle at 50% 50%,rgba(96,146,242,.2),transparent 60%)}.art-protocols::after{background:radial-gradient(circle at 50% 50%,rgba(244,114,182,.14),transparent 60%)}.art-solvers::after{background:radial-gradient(circle at 50% 50%,rgba(34,197,94,.14),transparent 60%)}.art-treasury::after{background:radial-gradient(circle at 50% 50%,rgba(251,191,36,.12),transparent 60%)}.eco-persona-art svg{position:relative;z-index:1;color:var(--text-mute)}.eco-persona-body{padding:24px;display:flex;flex-direction:column;gap:8px;flex:1}.eco-persona-title{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--text)}.eco-persona-desc{font-size:14px;color:var(--text-faint);line-height:1.5;margin:0 0 16px;flex:1}.eco-persona-link{font-family:var(--font-mono);font-size:12px;color:var(--text);display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:-.02em}.eco-persona-link svg{transition:transform .15s ease}.eco-persona:hover .eco-persona-link svg{transform:translateX(2px)}.eco-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.eco-steps.eco-steps-3{grid-template-columns:repeat(3,1fr);gap:60px}.eco-step{padding-top:24px;border-top:1px solid var(--border-mid)}.eco-step-num,.eco-step-title{font-family:var(--font-mono);font-size:18px;color:var(--text-faint);letter-spacing:-.02em;margin-bottom:24px}.eco-step-title{font-family:var(--font-display);font-size:24px;font-weight:500;margin-bottom:16px;color:var(--text);line-height:1.2}.eco-step-desc{font-size:14px;color:var(--text-faint);line-height:1.55}.eco-products{display:grid;gap:0}.eco-product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,80px);align-items:center;padding:clamp(48px,6vw,80px) 0;border-top:1px solid var(--border)}.eco-product:first-child{border-top:0;padding-top:0}.eco-product.flip{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.eco-product>*{min-width:0}.eco-product.flip .eco-product-content{order:2}.eco-product.flip .eco-product-visual{order:1}.eco-product-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:20px}.eco-badge,.eco-product-num{font-family:var(--font-mono);font-size:14px;color:var(--text-faint);letter-spacing:-.02em;text-transform:uppercase}.eco-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--border-mid);font-size:11px;font-weight:400;line-height:1}.eco-badge.stable{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.3);color:#86efac}.eco-product-h{font-family:var(--font-display);font-size:clamp(28px,1.8vw + 10px,46px);text-wrap:balance;line-height:1.05;letter-spacing:-.02em;font-weight:500;margin:0 0 20px}.eco-product-h .eco-badge{display:inline-block;font-size:11px;padding:5px 10px;margin-left:0;vertical-align:middle;position:relative;top:-4px;white-space:nowrap}.eco-product-desc{font-size:16px;color:var(--text-mute);line-height:1.4;margin:0 0 28px;letter-spacing:-.02em}.eco-product-list{list-style:none;padding:0;margin:0 0 32px;display:grid;gap:12px}.eco-product-list li{font-size:14px;color:var(--text-mute);padding-left:24px;position:relative;line-height:1.5;letter-spacing:-.01em}.eco-product-list li::before{content:\"\";position:absolute;left:4px;top:9px;width:4px;height:4px;border-radius:50%;background:var(--accent-light)}.eco-code{background:var(--bg-card-2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;font-family:var(--font-mono);box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}.eco-code-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:rgba(0,0,0,.4)}.eco-code-dots{display:flex;gap:6px}.eco-code-dots span{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.08)}.eco-code-lang,.eco-code-name{font-size:12px;color:var(--text-faint);letter-spacing:-.02em}.eco-code-lang{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--text-fainter)}.eco-code-body{padding:22px;font-size:13px;line-height:1.75;color:var(--text-mute);overflow-x:auto}.eco-code-body .kw{color:#c4b5fd}.eco-code-body .fn{color:#93c5fd}.eco-code-body .str{color:#86efac}.eco-code-body .num{color:#fbbf24}.eco-code-body .cm{font-style:italic}.eco-code-body .cm,.eco-code-body .pun{color:var(--text-faint)}.eco-code-body .pr{color:#f9a8d4}.eco-coverage-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:start}.eco-chains{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--bg)}.eco-chain{padding:32px 14px;text-align:center;font-family:var(--font-display);font-size:15px;font-weight:400;letter-spacing:-.02em;color:var(--text);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background .15s ease;text-decoration:none;display:flex;align-items:center;justify-content:center;min-height:92px}.eco-chain:hover{background:rgba(255,255,255,.03);color:var(--text)}.eco-chain:nth-child(4n){border-right:0}.eco-chain:nth-last-child(-n+4){border-bottom:0}.eco-chain.muted{color:var(--text-faint);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:-.02em}.eco-why{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.eco-why-card{padding:40px;background:var(--bg);border-right:1px solid var(--border);transition:background .2s ease;display:flex;flex-direction:column;gap:20px}.eco-why-card:last-child{border-right:0}.eco-why-card:hover{background:rgba(255,255,255,.02)}.eco-why-icon{width:40px;height:40px;border-radius:var(--r);background:rgba(96,146,242,.12);display:flex;align-items:center;justify-content:center;color:var(--accent-light)}.eco-docmap-col h4,.eco-why-title{font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.02em;color:var(--text);line-height:1.2}.eco-why-desc{font-size:14px;color:var(--text-faint);line-height:1.55}.eco-docmap{display:grid;grid-template-columns:repeat(4,1fr);gap:60px}.eco-docmap-col h4{font-family:var(--font-mono);font-size:14px;font-weight:400;line-height:.9;text-transform:uppercase;color:var(--text-fainter);margin:0 0 24px}.eco-docmap-col ul{list-style:none;padding:0;margin:0;display:grid;gap:16px}.eco-docmap-col li a{font-size:14px;transition:color .15s ease;display:inline-block}.eco-docmap-col li a:hover{color:var(--accent-light)}.eco-cta-section{padding:120px 0;position:relative;overflow:hidden;text-align:center;background:var(--accent);background-image:radial-gradient(800px 400px at 50% 0,rgba(96,146,242,.55),transparent 70%),radial-gradient(700px 300px at 50% 100%,rgba(0,0,0,.35),transparent 70%)}.eco-cta-section::after{content:\"\";position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%)}.eco-cta-h,.eco-docmap-col li a{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text)}.eco-cta-h{font-size:clamp(30px,2.4vw + 12px,56px);text-wrap:balance;line-height:1;font-weight:500;margin:0 auto 24px;max-width:800px;position:relative}.eco-cta-sub{font-size:16px;color:var(--accent-soft);margin:0 auto 36px;max-width:560px;letter-spacing:-.02em}.eco-cta-section .eco-cta-row,.eco-cta-sub{position:relative}.eco-cta-section .eco-btn-primary{background:var(--text);color:var(--bg);box-shadow:none}.eco-cta-section .eco-btn-primary .eco-btn-arrow-box{background:var(--accent)}.eco-cta-section .eco-btn-primary .eco-btn-arrow-box svg{color:var(--text)}.eco-cta-section .eco-btn-ghost{border-color:rgba(255,255,255,.45);color:var(--text)}.eco-cta-section .eco-btn-ghost:hover{background:rgba(255,255,255,.08);border-color:var(--text)}@media (max-width:1200px){.eco-hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}}@media (max-width:1024px){.eco-landing{--eco-header-h:120px}.eco-hero{padding:clamp(40px,6vw,64px) 0}.eco-hero-inner>.eco-panel{justify-self:stretch;max-width:none}.eco-h1{max-width:22ch}.eco-lede{max-width:60ch}.eco-coverage-inner,.eco-hero-inner,.eco-product,.eco-product.flip,.eco-section-head{grid-template-columns:1fr;gap:40px}.eco-product.flip .eco-product-content{order:1}.eco-product.flip .eco-product-visual{order:2}.eco-personas,.eco-steps,.eco-strip-grid{grid-template-columns:repeat(2,1fr)}.eco-strip-grid{row-gap:32px}.eco-steps{gap:40px}.eco-why{grid-template-columns:1fr}.eco-why-card{border-right:0;border-bottom:1px solid var(--border)}.eco-why-card:last-child{border-bottom:0}.eco-docmap{grid-template-columns:repeat(2,1fr);gap:40px}}@media (max-width:640px){.eco-hero{padding:40px 0 48px}.eco-hero-inner{gap:32px}.eco-h1{max-width:none}.eco-cta-row .eco-btn{flex:1 1 auto;justify-content:center}.eco-panel-body{min-height:0;padding:16px}.eco-section-tag{font-size:14px}.eco-flow-grid,.eco-personas,.eco-steps,.eco-strip-grid{grid-template-columns:1fr}.eco-flow-arrow{transform:rotate(90deg)}.eco-chains{grid-template-columns:repeat(2,1fr)}.eco-chain:nth-child(4n){border-right:1px solid var(--border)}.eco-chain:nth-child(2n){border-right:0}.eco-chain:nth-last-child(-n+4){border-bottom:1px solid var(--border)}.eco-chain:nth-last-child(-n+2){border-bottom:0}.eco-docmap{grid-template-columns:1fr;gap:32px}}.eco-personas.cols-3{grid-template-columns:repeat(3,1fr)}.art-agents::after{background:radial-gradient(circle at 50% 50%,rgba(167,139,250,.16),transparent 60%)}.art-trading::after{background:radial-gradient(circle at 50% 50%,rgba(45,212,191,.14),transparent 60%)}.eco-inline-link{display:block;margin-top:12px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:-.02em;color:var(--accent-light)}.eco-inline-link:hover{color:var(--text)}.eco-product-list code{font-family:var(--font-mono);font-size:13px;color:var(--text-mute);background:rgba(255,255,255,.06);padding:1px 5px;border-radius:4px}.eco-badge.closed{background:rgba(251,191,36,.1);border-color:rgba(251,191,36,.3);color:#fcd34d}.eco-caps-head{margin:72px 0 24px}.eco-caps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.eco-cap{padding:28px 24px;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:12px;transition:background .2s ease}.eco-cap:last-child{border-right:0}.eco-cap:hover{background:rgba(255,255,255,.03)}.eco-cap-top{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.eco-cap-title{font-family:var(--font-display);font-size:17px;font-weight:500;letter-spacing:-.02em;color:var(--text);line-height:1.25}.eco-cap-desc{font-size:13.5px;color:var(--text-faint);line-height:1.5;margin:0}@media (max-width:1024px){.eco-caps,.eco-personas.cols-3{grid-template-columns:repeat(2,1fr)}.eco-cap{border-bottom:1px solid var(--border)}.eco-cap:nth-child(2n){border-right:0}.eco-cap:nth-last-child(-n+2){border-bottom:0}}@media (max-width:640px){.eco-caps,.eco-personas.cols-3{grid-template-columns:1fr}.eco-cap{border-right:0;border-bottom:1px solid var(--border)}.eco-cap:last-child{border-bottom:0}}.eco-core-eyebrow{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:-.02em;color:var(--text-fainter);margin-bottom:12px}.eco-section-tight{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(48px,5vw,72px);border-bottom:0}.eco-section-tight .eco-caps-head{margin:0 0 clamp(16px,2vw,24px)}.eco-section-tight .eco-section-tag{margin-bottom:0;line-height:1}"}],"page":{"pagePath":"routes-api/v1/quotes","slug":"/routes-api/v1/quotes","pageMetadata":{"title":"Request a quote","description":"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.","openapi":"api-v1.openapi.json POST /v1/quotes","href":"/routes-api/v1/quotes"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.\"\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`,p:`p`,..._provideComponents(),...props.components};return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Returns one executable, signed quote for moving a stablecoin between chains, or within a chain, for `,_jsx(_components.code,{children:`source.funder`}),`. `,_jsx(_components.code,{children:`type`}),` fixes either `,_jsx(_components.code,{children:`source.amount`}),` (`,_jsx(_components.code,{children:`exact-in`}),`) or `,_jsx(_components.code,{children:`destination.amount`}),` (`,_jsx(_components.code,{children:`exact-out`}),`); `,_jsx(_components.code,{children:`custom`}),` requires user-authored `,_jsx(_components.code,{children:`destination.calls`}),`. `,_jsx(_components.code,{children:`dappId`}),` is required. The response is a top-level quote object with the transaction to send from the funder (`,_jsx(_components.code,{children:`execution.transaction`}),`), the decoded intent, `,_jsx(_components.code,{children:`destination.amountOut`}),` and `,_jsx(_components.code,{children:`minAmountOut`}),`, fees, per-step intents, and `,_jsx(_components.code,{children:`expiresAt`}),`. `,_jsx(_components.code,{children:`signature`}),` verifies against the source chain’s `,_jsx(_components.code,{children:`quoteSigner`}),` from `,_jsx(_components.code,{children:`GET /v1/chains`}),`. For routes with multiple intents, inspect `,_jsx(_components.code,{children:`steps[].intents[]`}),` to identify the delivery intent before tracking status. See `,_jsx(_components.a,{href:`/resources/intent-types`,children:`Intent types`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`An unsupported chain returns `,_jsx(_components.code,{children:`422 chain-not-supported`}),`. Routes no solver will fill (unlisted tokens, unavailable liquidity, amounts above what solvers hold) can return `,_jsx(_components.code,{children:`502 solver-error`}),`; upstream failures can return the same code.`]}),`\n`,_jsxs(_components.p,{children:[`Requires `,_jsx(_components.code,{children:`x-api-key`}),`. Partner pricing, attribution, and enabled features are tied to the key. Without a key the gateway can answer `,_jsx(_components.code,{children:`403`}),` with a plain JSON body (`,_jsx(_components.code,{children:`{\"Message\": \"User is not authorized ...\"}`}),`); a key that is unknown, revoked, or not enabled for v1 answers `,_jsx(_components.code,{children:`401 invalid-api-key`}),`. No requests-per-second quota is published. Handle `,_jsx(_components.code,{children:`429`}),` and honor `,_jsx(_components.code,{children:`Retry-After`}),` when present. See `,_jsx(_components.a,{href:`/routes-api/errors`,children:`Errors and retries`}),` for common errors and retry handling.`]}),`\n`,_jsx(_components.p,{children:`Examples use mainnet token and contract addresses with placeholder wallets, hashes, signatures, and IDs. They are illustrative and must not be used to transfer funds.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Request a quote","description":"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.","openapi":"api-v1.openapi.json POST /v1/quotes","href":"/routes-api/v1/quotes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"quotes.create","summary":"Request a quote","tags":["quotes"],"requestBody":"47614bf7-481c-4dc8-857e-acee38150780","responses":{"200":"34d92a1f-1d9e-44c1-914a-7b51626b86c1","400":"9dd6ff58-ebf7-423a-a130-99397e8a5bb7","401":"ecfb7542-12b4-430a-bd72-79e758e53c14","403":"4beb2964-c624-4cb1-995e-ead4460ea0b9","422":"b688512b-67d6-4689-ab2f-a5174230ace6","429":"8d68766f-cd03-4719-b318-d0f513d8de14","500":"f36b08c4-4ac2-403c-bcac-fedc9bc4b0cf","502":"f75e6640-3b73-4309-a7e3-9cb03477774b","default":"39ccbd35-fe6e-4cd2-93b3-8d13f9cab161"},"security":["f4c3bba9-42f7-4dcf-97ee-f9b1364e7db1"],"description":"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.","x-audience":"keyed","parameters":[],"method":"post","type":"path","servers":["95bbb810-cd3e-469f-9359-3a8cbf620b75"],"path":"/v1/quotes","baseUrlOptions":["https://api.eco.com"],"title":"Request a quote","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["exact-in","exact-out","custom"],"description":"Which amount is fixed. `exact-in` specifies `source.amount` and returns the quoted `destination.minAmountOut`. `exact-out` specifies `destination.amount` and returns the required `source.amount`. `custom`: `source.amount` is spent and the supplied `destination.calls` execute on the destination chain.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"source":{"type":"object","properties":{"chainId":{"type":"integer","exclusiveMinimum":0,"isRequired":true,"uniqueKey":"source.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"source.token","typeLabel":"string"},"funder":{"description":"Wallet that funds the intent on the source chain. The quote, its intent, and its signature are built for this address. Address on the source chain: `0x…` hex for EVM chains, base58 for Solana.","type":"string","isRequired":true,"uniqueKey":"source.funder","typeLabel":"string"},"amount":{"type":"string","maxLength":78,"description":"Base-10 unsigned integer string in smallest units; must be greater than 0","uniqueKey":"source.amount","typeLabel":"string"}},"required":["chainId","token","funder"],"additionalProperties":false,"isRequired":true,"uniqueKey":"source","typeLabel":"object"},"destination":{"type":"object","properties":{"chainId":{"type":"integer","exclusiveMinimum":0,"isRequired":true,"uniqueKey":"destination.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"destination.token","typeLabel":"string"},"recipient":{"description":"Required. Receives the output on the destination chain. Address on the destination chain: `0x…` hex for EVM chains, base58 for Solana.","type":"string","isRequired":true,"uniqueKey":"destination.recipient","typeLabel":"string"},"amount":{"type":"string","maxLength":78,"description":"Base-10 unsigned integer string in smallest units; must be greater than 0","uniqueKey":"destination.amount","typeLabel":"string"},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"destination.calls.items.[INDEX].target","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"destination.calls.items.[INDEX].data","typeLabel":"string"},"value":{"type":"string","maxLength":78,"isRequired":true,"uniqueKey":"destination.calls.items.[INDEX].value","typeLabel":"string"},"tokenOut":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","uniqueKey":"destination.calls.items.[INDEX].tokenOut","typeLabel":"string"},"gasLimit":{"type":"string","maxLength":78,"uniqueKey":"destination.calls.items.[INDEX].gasLimit","typeLabel":"string"}},"required":["target","data","value"],"additionalProperties":false,"uniqueKey":"destination.calls.items.[INDEX]","typeLabel":"object"},"description":"Destination calls to execute, for `type: custom` only. Each call is `target`, `data`, and a base-unit `value` string; `tokenOut` and `gasLimit` are optional.","uniqueKey":"destination.calls","typeLabel":"object[]"}},"required":["chainId","token","recipient"],"additionalProperties":false,"isRequired":true,"uniqueKey":"destination","typeLabel":"object"},"dappId":{"type":"string","minLength":1,"maxLength":128,"description":"Required. Attribution label for the integration. Does not authenticate and does not change pricing.","isRequired":true,"uniqueKey":"dappId","typeLabel":"string"},"refundRecipient":{"description":"Receives the source funds if the intent is refunded. Defaults to `source.funder`. Address on the source chain.","type":"string","uniqueKey":"refundRecipient","typeLabel":"string"},"slippage":{"type":"number","description":"Decimal fraction of the destination amount: 0.005 = 0.5%. Range 0.0001-1; a percent-style 0.5 would mean 50%.","minimum":0.0001,"maximum":1,"uniqueKey":"slippage","typeLabel":"number"},"options":{"type":"object","properties":{"deadlineSec":{"type":"integer","exclusiveMinimum":0,"description":"Requested intent deadline, in seconds from now.","uniqueKey":"options.deadlineSec","typeLabel":"integer"},"allQuotes":{"type":"boolean","description":"Return every competing quote in `quotes`, ranked best first and each independently signed. Default: winner only, `quotes: null`.","uniqueKey":"options.allQuotes","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"options","typeLabel":"object"}},"required":["type","source","destination","dappId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"exact-in":{"title":"exact-in","value":{"type":"exact-in","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"},"destination":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},"slippage":0.005,"dappId":"your-app"}},"exact-out":{"title":"exact-out","value":{"type":"exact-out","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"},"destination":{"chainId":42161,"token":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","amount":"25000000","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},"dappId":"your-app"}},"all-quotes":{"title":"all-quotes","value":{"type":"exact-in","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"},"destination":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},"slippage":0.005,"dappId":"your-app","options":{"allQuotes":true}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"34d92a1f-1d9e-44c1-914a-7b51626b86c1":{"description":"The winning quote. Verify `signature` against the source chain's `quoteSigner`, then fund before `expiresAt`.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Quote ID, prefixed `quote:`. Status lookups take the bare UUID.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"type":{"type":"string","enum":["exact-in","exact-out","custom"],"description":"Echo of the request `type`.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"source":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"source.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"source.token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"source.amount","typeLabel":"string"},"funder":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"source.funder","typeLabel":"string"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"source.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"source.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"source.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"source.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"source.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"source.decimals","typeLabel":"integer | null"}},"required":["chainId","token","amount","funder","symbol","decimals"],"isRequired":true,"uniqueKey":"source","typeLabel":"object"},"destination":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"destination.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"destination.token","typeLabel":"string"},"amountOut":{"type":"string","description":"Expected output amount in base units.","isRequired":true,"uniqueKey":"destination.amountOut","typeLabel":"string"},"minAmountOut":{"type":"string","description":"Minimum destination output reported by the selected solver, in base units. Verify the route enforces the required outcome before funding; refund eligibility is separate from refund completion.","isRequired":true,"uniqueKey":"destination.minAmountOut","typeLabel":"string"},"recipient":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"destination.recipient.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"destination.recipient.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"destination.recipient","typeLabel":"string | null"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"destination.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"destination.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"destination.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"destination.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"destination.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"destination.decimals","typeLabel":"integer | null"}},"required":["chainId","token","amountOut","minAmountOut","recipient","symbol","decimals"],"isRequired":true,"uniqueKey":"destination","typeLabel":"object"},"slippage":{"type":"number","description":"Tolerance actually bound into destination.minAmountOut, as a decimal fraction","isRequired":true,"uniqueKey":"slippage","typeLabel":"number"},"fees":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["gas","proving","protocol","gateway"],"isRequired":true,"uniqueKey":"fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","isRequired":true,"uniqueKey":"fees.items.[INDEX].amount","typeLabel":"string"},"token":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"fees.items.[INDEX].token.chainId","typeLabel":"integer"},"address":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"fees.items.[INDEX].token.address","typeLabel":"string"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"fees.items.[INDEX].token.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"fees.items.[INDEX].token.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fees.items.[INDEX].token.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"fees.items.[INDEX].token.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"fees.items.[INDEX].token.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fees.items.[INDEX].token.decimals","typeLabel":"integer | null"}},"required":["chainId","address","symbol","decimals"],"isRequired":true,"uniqueKey":"fees.items.[INDEX].token","typeLabel":"object"},"estimate":{"type":"boolean","isRequired":true,"uniqueKey":"fees.items.[INDEX].estimate","typeLabel":"boolean"}},"required":["type","amount","token","estimate"],"uniqueKey":"fees.items.[INDEX]","typeLabel":"object"},"description":"Fees charged for the whole quote, by `type` (`gas`, `proving`, `protocol`, `gateway`). `estimate: false` means the amount is binding.","isRequired":true,"uniqueKey":"fees","typeLabel":"object[]"},"steps":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["swap","bridge","deposit","transfer"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"provider":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].provider","typeLabel":"string"},"from":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].from.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].from.token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].from.amount","typeLabel":"string"}},"required":["chainId","token","amount"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].from","typeLabel":"object"},"to":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].to.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].to.token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].to.amount","typeLabel":"string"}},"required":["chainId","token","amount"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].to","typeLabel":"object"},"fees":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["gas","proving","protocol","gateway"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].amount","typeLabel":"string"},"token":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.chainId","typeLabel":"integer"},"address":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.address","typeLabel":"string"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token.decimals","typeLabel":"integer | null"}},"required":["chainId","address","symbol","decimals"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].token","typeLabel":"object"},"estimate":{"type":"boolean","isRequired":true,"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX].estimate","typeLabel":"boolean"}},"required":["type","amount","token","estimate"],"uniqueKey":"steps.items.[INDEX].fees.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].fees","typeLabel":"object[]"},"estimatedDurationSec":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].estimatedDurationSec","typeLabel":"integer"},"intents":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["local","bucket-candidate","stitched-destination"],"description":"`local`: same-chain leg. `stitched-destination`: final leg that credits the recipient. `bucket-candidate`: one of several candidate routes.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"intentHash":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intentHash","typeLabel":"string"},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.salt","typeLabel":"string"},"deadline":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.deadline","typeLabel":"integer"},"source":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.source","typeLabel":"integer"},"destination":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.destination","typeLabel":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.portal","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens","typeLabel":"object[]"},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX].target","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX].data","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX].value","typeLabel":"string"}},"required":["target","data","value"],"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route.calls","typeLabel":"object[]"}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.route","typeLabel":"object"},"reward":{"type":"object","properties":{"deadline":{"type":"integer","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.deadline","typeLabel":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.creator","typeLabel":"string"},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.prover","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens","typeLabel":"object[]"}},"required":["deadline","creator","prover","nativeAmount","tokens"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent.reward","typeLabel":"object"}},"required":["route","reward"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].intent","typeLabel":"object"},"routeHash":{"type":"string","uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].routeHash","typeLabel":"string"},"bucketIndex":{"type":"integer","uniqueKey":"steps.items.[INDEX].intents.items.[INDEX].bucketIndex","typeLabel":"integer"}},"required":["role","intentHash","intent"],"uniqueKey":"steps.items.[INDEX].intents.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].intents","typeLabel":"object[]"},"aggregator":{"type":"string","uniqueKey":"steps.items.[INDEX].aggregator","typeLabel":"string"}},"required":["type","provider","from","to","fees","estimatedDurationSec","intents"],"uniqueKey":"steps.items.[INDEX]","typeLabel":"object"},"description":"Ordered legs of the route. Each step names its `provider` and lists the `intents` it is realized by, with the full decoded intent. A `stitched-destination` intent credits the recipient on a multi-hop route and is the one to track for delivery; `bucket-candidate` entries are alternative routes, not all of which fill.","isRequired":true,"uniqueKey":"steps","typeLabel":"object[]"},"solver":{"type":"object","properties":{"id":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solver.id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"solver.name","typeLabel":"string"}},"required":["id"],"description":"The solver that supplied the quote.","isRequired":true,"uniqueKey":"solver","typeLabel":"object"},"intentHash":{"oneOf":[{"description":"Hash of the primary intent; the handle for `GET /v1/intents/status?intentHash=`. Null when every intent is listed under `steps[].intents`.","type":"string","isRequired":true,"uniqueKey":"intentHash.oneOf.0","typeLabel":"string"},{"description":"Hash of the primary intent; the handle for `GET /v1/intents/status?intentHash=`. Null when every intent is listed under `steps[].intents`.","type":"null","isRequired":true,"uniqueKey":"intentHash.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"intentHash","typeLabel":"string | null"},"execution":{"oneOf":[{"description":"Everything needed to fund the quote: the ready-to-send `transaction`, the decoded `intent` (route and reward), and the `vault` the source Portal funds the intent through, which is also the counterparty for gasless submits. Sent as-is.","type":"object","properties":{"transaction":{"oneOf":[{"type":"object","required":["type","chainId","to","data","value"],"properties":{"type":{"type":"string","const":"evm","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.0.type","typeLabel":"string"},"chainId":{"type":"integer","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.0.chainId","typeLabel":"integer"},"to":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.0.to","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.0.data","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.0.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","chainId","feePayer","instructions"],"properties":{"type":{"type":"string","const":"svm","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.type","typeLabel":"string"},"chainId":{"type":"integer","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.chainId","typeLabel":"integer"},"feePayer":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.feePayer","typeLabel":"string"},"instructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].programId","typeLabel":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX].pubkey","typeLabel":"string"},"isSigner":{"type":"boolean","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX].isSigner","typeLabel":"boolean"},"isWritable":{"type":"boolean","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX].isWritable","typeLabel":"boolean"}},"required":["pubkey","isSigner","isWritable"],"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts","typeLabel":"object[]"},"data":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].data","typeLabel":"string"}},"required":["programId","accounts","data"],"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1.instructions","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"execution.oneOf.0.transaction.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"execution.oneOf.0.transaction","typeLabel":"object"},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.salt","typeLabel":"string"},"deadline":{"type":"integer","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.deadline","typeLabel":"integer"},"source":{"type":"integer","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.source","typeLabel":"integer"},"destination":{"type":"integer","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.destination","typeLabel":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.portal","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"execution.oneOf.0.intent.route.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.tokens","typeLabel":"object[]"},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.calls.items.[INDEX].target","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.calls.items.[INDEX].data","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.calls.items.[INDEX].value","typeLabel":"string"}},"required":["target","data","value"],"uniqueKey":"execution.oneOf.0.intent.route.calls.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route.calls","typeLabel":"object[]"}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"],"isRequired":true,"uniqueKey":"execution.oneOf.0.intent.route","typeLabel":"object"},"reward":{"type":"object","properties":{"deadline":{"type":"integer","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.deadline","typeLabel":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.creator","typeLabel":"string"},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.prover","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"execution.oneOf.0.intent.reward.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward.tokens","typeLabel":"object[]"}},"required":["deadline","creator","prover","nativeAmount","tokens"],"isRequired":true,"uniqueKey":"execution.oneOf.0.intent.reward","typeLabel":"object"}},"required":["route","reward"],"isRequired":true,"uniqueKey":"execution.oneOf.0.intent","typeLabel":"object"},"vault":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","uniqueKey":"execution.oneOf.0.vault.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","uniqueKey":"execution.oneOf.0.vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"execution.oneOf.0.vault","typeLabel":"string | null"}},"required":["transaction","intent"],"isRequired":true,"uniqueKey":"execution.oneOf.0","typeLabel":"object"},{"description":"Everything needed to fund the quote: the ready-to-send `transaction`, the decoded `intent` (route and reward), and the `vault` the source Portal funds the intent through, which is also the counterparty for gasless submits. Sent as-is.","type":"null","properties":{"transaction":{"oneOf":[{"type":"object","required":["type","chainId","to","data","value"],"properties":{"type":{"type":"string","const":"evm"},"chainId":{"type":"integer"},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"}}},{"type":"object","required":["type","chainId","feePayer","instructions"],"properties":{"type":{"type":"string","const":"svm"},"chainId":{"type":"integer"},"feePayer":{"type":"string"},"instructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string"},"isSigner":{"type":"boolean"},"isWritable":{"type":"boolean"}},"required":["pubkey","isSigner","isWritable"]}},"data":{"type":"string"}},"required":["programId","accounts","data"]}}}}]},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string"},"deadline":{"type":"integer"},"source":{"type":"integer"},"destination":{"type":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"data":{"type":"string"},"value":{"type":"string"}},"required":["target","data","value"]}}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"]},"reward":{"type":"object","properties":{"deadline":{"type":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}}},"required":["deadline","creator","prover","nativeAmount","tokens"]}},"required":["route","reward"]},"vault":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."}]}},"required":["transaction","intent"],"isRequired":true,"uniqueKey":"execution.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"execution","typeLabel":"object | null"},"expiresAt":{"type":"integer","description":"Quote expiry, Unix seconds. Covered by `signature`. Fund before it passes; afterwards request a new quote.","isRequired":true,"uniqueKey":"expiresAt","typeLabel":"integer"},"signature":{"type":"string","description":"EIP-712 signature by the source chain's `quoteSigner` (see `GET /v1/chains`) over `Quote(string id, bytes32[] intentHashes, uint64 expiresAt)` with domain `{ name: \"EcoQuoteV1\", version: \"1\", chainId: source.chainId }`. `intentHashes` is `intentHash` plus every `steps[].intents[].intentHash`, lowercased, de-duplicated, sorted ascending.","isRequired":true,"uniqueKey":"signature","typeLabel":"string"},"quotes":{"oneOf":[{"description":"Every competing quote, ranked best first, when `options.allQuotes` is true; each entry is independently signed. Null otherwise. The top-level object is always the winner.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["exact-in","exact-out","custom"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"source":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.amount","typeLabel":"string"},"funder":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.funder","typeLabel":"string"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source.decimals","typeLabel":"integer | null"}},"required":["chainId","token","amount","funder","symbol","decimals"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].source","typeLabel":"object"},"destination":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.token","typeLabel":"string"},"amountOut":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.amountOut","typeLabel":"string"},"minAmountOut":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.minAmountOut","typeLabel":"string"},"recipient":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.recipient.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.recipient.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.recipient","typeLabel":"string | null"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination.decimals","typeLabel":"integer | null"}},"required":["chainId","token","amountOut","minAmountOut","recipient","symbol","decimals"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].destination","typeLabel":"object"},"slippage":{"type":"number","description":"Tolerance actually bound into destination.minAmountOut, as a decimal fraction","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].slippage","typeLabel":"number"},"fees":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["gas","proving","protocol","gateway"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].amount","typeLabel":"string"},"token":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.chainId","typeLabel":"integer"},"address":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.address","typeLabel":"string"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token.decimals","typeLabel":"integer | null"}},"required":["chainId","address","symbol","decimals"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].token","typeLabel":"object"},"estimate":{"type":"boolean","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX].estimate","typeLabel":"boolean"}},"required":["type","amount","token","estimate"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].fees","typeLabel":"object[]"},"steps":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["swap","bridge","deposit","transfer"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"provider":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].provider","typeLabel":"string"},"from":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].from.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].from.token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].from.amount","typeLabel":"string"}},"required":["chainId","token","amount"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].from","typeLabel":"object"},"to":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].to.chainId","typeLabel":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].to.token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].to.amount","typeLabel":"string"}},"required":["chainId","token","amount"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].to","typeLabel":"object"},"fees":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["gas","proving","protocol","gateway"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].amount","typeLabel":"string"},"token":{"type":"object","properties":{"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.chainId","typeLabel":"integer"},"address":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.address","typeLabel":"string"},"symbol":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.symbol.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.symbol.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.symbol","typeLabel":"string | null"},"decimals":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.decimals.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token.decimals","typeLabel":"integer | null"}},"required":["chainId","address","symbol","decimals"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].token","typeLabel":"object"},"estimate":{"type":"boolean","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX].estimate","typeLabel":"boolean"}},"required":["type","amount","token","estimate"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].fees","typeLabel":"object[]"},"estimatedDurationSec":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].estimatedDurationSec","typeLabel":"integer"},"intents":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["local","bucket-candidate","stitched-destination"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"intentHash":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intentHash","typeLabel":"string"},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.salt","typeLabel":"string"},"deadline":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.deadline","typeLabel":"integer"},"source":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.source","typeLabel":"integer"},"destination":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.destination","typeLabel":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.portal","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.tokens","typeLabel":"object[]"},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX].target","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX].data","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX].value","typeLabel":"string"}},"required":["target","data","value"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.calls.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route.calls","typeLabel":"object[]"}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.route","typeLabel":"object"},"reward":{"type":"object","properties":{"deadline":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.deadline","typeLabel":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.creator","typeLabel":"string"},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.prover","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward.tokens","typeLabel":"object[]"}},"required":["deadline","creator","prover","nativeAmount","tokens"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent.reward","typeLabel":"object"}},"required":["route","reward"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].intent","typeLabel":"object"},"routeHash":{"type":"string","uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].routeHash","typeLabel":"string"},"bucketIndex":{"type":"integer","uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX].bucketIndex","typeLabel":"integer"}},"required":["role","intentHash","intent"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].intents","typeLabel":"object[]"},"aggregator":{"type":"string","uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX].aggregator","typeLabel":"string"}},"required":["type","provider","from","to","fees","estimatedDurationSec","intents"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].steps","typeLabel":"object[]"},"solver":{"type":"object","properties":{"id":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].solver.id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"quotes.oneOf.0.items.[INDEX].solver.name","typeLabel":"string"}},"required":["id"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].solver","typeLabel":"object"},"intentHash":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].intentHash.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].intentHash.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].intentHash","typeLabel":"string | null"},"execution":{"oneOf":[{"type":"object","properties":{"transaction":{"oneOf":[{"type":"object","required":["type","chainId","to","data","value"],"properties":{"type":{"type":"string","const":"evm","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.0.type","typeLabel":"string"},"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.0.chainId","typeLabel":"integer"},"to":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.0.to","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.0.data","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.0.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","chainId","feePayer","instructions"],"properties":{"type":{"type":"string","const":"svm","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.type","typeLabel":"string"},"chainId":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.chainId","typeLabel":"integer"},"feePayer":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.feePayer","typeLabel":"string"},"instructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].programId","typeLabel":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX].pubkey","typeLabel":"string"},"isSigner":{"type":"boolean","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX].isSigner","typeLabel":"boolean"},"isWritable":{"type":"boolean","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX].isWritable","typeLabel":"boolean"}},"required":["pubkey","isSigner","isWritable"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].accounts","typeLabel":"object[]"},"data":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX].data","typeLabel":"string"}},"required":["programId","accounts","data"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1.instructions","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.transaction","typeLabel":"object"},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.salt","typeLabel":"string"},"deadline":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.deadline","typeLabel":"integer"},"source":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.source","typeLabel":"integer"},"destination":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.destination","typeLabel":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.portal","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.tokens","typeLabel":"object[]"},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.calls.items.[INDEX].target","typeLabel":"string"},"data":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.calls.items.[INDEX].data","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.calls.items.[INDEX].value","typeLabel":"string"}},"required":["target","data","value"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.calls.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route.calls","typeLabel":"object[]"}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.route","typeLabel":"object"},"reward":{"type":"object","properties":{"deadline":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.deadline","typeLabel":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.creator","typeLabel":"string"},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.prover","typeLabel":"string"},"nativeAmount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.nativeAmount","typeLabel":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.tokens.items.[INDEX].token","typeLabel":"string"},"amount":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.tokens.items.[INDEX].amount","typeLabel":"string"}},"required":["token","amount"],"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.tokens.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward.tokens","typeLabel":"object[]"}},"required":["deadline","creator","prover","nativeAmount","tokens"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent.reward","typeLabel":"object"}},"required":["route","reward"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.intent","typeLabel":"object"},"vault":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.vault.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.vault.oneOf.1","typeLabel":"null"}],"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0.vault","typeLabel":"string | null"}},"required":["transaction","intent"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"transaction":{"oneOf":[{"type":"object","required":["type","chainId","to","data","value"],"properties":{"type":{"type":"string","const":"evm"},"chainId":{"type":"integer"},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"}}},{"type":"object","required":["type","chainId","feePayer","instructions"],"properties":{"type":{"type":"string","const":"svm"},"chainId":{"type":"integer"},"feePayer":{"type":"string"},"instructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string"},"isSigner":{"type":"boolean"},"isWritable":{"type":"boolean"}},"required":["pubkey","isSigner","isWritable"]}},"data":{"type":"string"}},"required":["programId","accounts","data"]}}}}]},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string"},"deadline":{"type":"integer"},"source":{"type":"integer"},"destination":{"type":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"data":{"type":"string"},"value":{"type":"string"}},"required":["target","data","value"]}}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"]},"reward":{"type":"object","properties":{"deadline":{"type":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}}},"required":["deadline","creator","prover","nativeAmount","tokens"]}},"required":["route","reward"]},"vault":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."}]}},"required":["transaction","intent"],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].execution","typeLabel":"object | null"},"expiresAt":{"type":"integer","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].expiresAt","typeLabel":"integer"},"signature":{"type":"string","isRequired":true,"uniqueKey":"quotes.oneOf.0.items.[INDEX].signature","typeLabel":"string"}},"required":["id","type","source","destination","slippage","fees","steps","solver","intentHash","execution","expiresAt","signature"],"uniqueKey":"quotes.oneOf.0.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"quotes.oneOf.0","typeLabel":"object[]"},{"description":"Every competing quote, ranked best first, when `options.allQuotes` is true; each entry is independently signed. Null otherwise. The top-level object is always the winner.","type":"null","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["exact-in","exact-out","custom"]},"source":{"type":"object","properties":{"chainId":{"type":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"},"funder":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"symbol":{"oneOf":[{"type":"string"},{"type":"null"}]},"decimals":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["chainId","token","amount","funder","symbol","decimals"]},"destination":{"type":"object","properties":{"chainId":{"type":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amountOut":{"type":"string"},"minAmountOut":{"type":"string"},"recipient":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."}]},"symbol":{"oneOf":[{"type":"string"},{"type":"null"}]},"decimals":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["chainId","token","amountOut","minAmountOut","recipient","symbol","decimals"]},"slippage":{"type":"number","description":"Tolerance actually bound into destination.minAmountOut, as a decimal fraction"},"fees":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["gas","proving","protocol","gateway"]},"amount":{"type":"string"},"token":{"type":"object","properties":{"chainId":{"type":"integer"},"address":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"symbol":{"oneOf":[{"type":"string"},{"type":"null"}]},"decimals":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["chainId","address","symbol","decimals"]},"estimate":{"type":"boolean"}},"required":["type","amount","token","estimate"]}},"steps":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["swap","bridge","deposit","transfer"]},"provider":{"type":"string"},"aggregator":{"type":"string"},"from":{"type":"object","properties":{"chainId":{"type":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["chainId","token","amount"]},"to":{"type":"object","properties":{"chainId":{"type":"integer"},"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["chainId","token","amount"]},"fees":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["gas","proving","protocol","gateway"]},"amount":{"type":"string"},"token":{"type":"object","properties":{"chainId":{"type":"integer"},"address":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"symbol":{"oneOf":[{"type":"string"},{"type":"null"}]},"decimals":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["chainId","address","symbol","decimals"]},"estimate":{"type":"boolean"}},"required":["type","amount","token","estimate"]}},"estimatedDurationSec":{"type":"integer"},"intents":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["local","bucket-candidate","stitched-destination"]},"intentHash":{"type":"string"},"routeHash":{"type":"string"},"bucketIndex":{"type":"integer"},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string"},"deadline":{"type":"integer"},"source":{"type":"integer"},"destination":{"type":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"data":{"type":"string"},"value":{"type":"string"}},"required":["target","data","value"]}}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"]},"reward":{"type":"object","properties":{"deadline":{"type":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}}},"required":["deadline","creator","prover","nativeAmount","tokens"]}},"required":["route","reward"]}},"required":["role","intentHash","intent"]}}},"required":["type","provider","from","to","fees","estimatedDurationSec","intents"]}},"solver":{"type":"object","properties":{"id":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"name":{"type":"string"}},"required":["id"]},"intentHash":{"oneOf":[{"type":"string"},{"type":"null"}]},"execution":{"oneOf":[{"type":"object","properties":{"transaction":{"oneOf":[{"type":"object","required":["type","chainId","to","data","value"],"properties":{"type":{"type":"string","const":"evm"},"chainId":{"type":"integer"},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"}}},{"type":"object","required":["type","chainId","feePayer","instructions"],"properties":{"type":{"type":"string","const":"svm"},"chainId":{"type":"integer"},"feePayer":{"type":"string"},"instructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string"},"isSigner":{"type":"boolean"},"isWritable":{"type":"boolean"}},"required":["pubkey","isSigner","isWritable"]}},"data":{"type":"string"}},"required":["programId","accounts","data"]}}}}]},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string"},"deadline":{"type":"integer"},"source":{"type":"integer"},"destination":{"type":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"data":{"type":"string"},"value":{"type":"string"}},"required":["target","data","value"]}}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"]},"reward":{"type":"object","properties":{"deadline":{"type":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}}},"required":["deadline","creator","prover","nativeAmount","tokens"]}},"required":["route","reward"]},"vault":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."}]}},"required":["transaction","intent"]},{"type":"null","properties":{"transaction":{"oneOf":[{"type":"object","required":["type","chainId","to","data","value"],"properties":{"type":{"type":"string","const":"evm"},"chainId":{"type":"integer"},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"}}},{"type":"object","required":["type","chainId","feePayer","instructions"],"properties":{"type":{"type":"string","const":"svm"},"chainId":{"type":"integer"},"feePayer":{"type":"string"},"instructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string"},"accounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string"},"isSigner":{"type":"boolean"},"isWritable":{"type":"boolean"}},"required":["pubkey","isSigner","isWritable"]}},"data":{"type":"string"}},"required":["programId","accounts","data"]}}}}]},"intent":{"type":"object","properties":{"route":{"type":"object","properties":{"salt":{"type":"string"},"deadline":{"type":"integer"},"source":{"type":"integer"},"destination":{"type":"integer"},"portal":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}},"calls":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"data":{"type":"string"},"value":{"type":"string"}},"required":["target","data","value"]}}},"required":["salt","deadline","source","destination","portal","nativeAmount","tokens","calls"]},"reward":{"type":"object","properties":{"deadline":{"type":"integer"},"creator":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"prover":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"nativeAmount":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},"amount":{"type":"string"}},"required":["token","amount"]}}},"required":["deadline","creator","prover","nativeAmount","tokens"]}},"required":["route","reward"]},"vault":{"oneOf":[{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."},{"type":"null","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron."}]}},"required":["transaction","intent"]}]},"expiresAt":{"type":"integer"},"signature":{"type":"string"}},"required":["id","type","source","destination","slippage","fees","steps","solver","intentHash","execution","expiresAt","signature"]},"isRequired":true,"uniqueKey":"quotes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"quotes","typeLabel":"object[] | null"}},"required":["id","type","source","destination","slippage","fees","steps","solver","intentHash","execution","expiresAt","signature","quotes"],"uniqueKey":"","typeLabel":"object"},"examples":{"exact-in":{"title":"exact-in","value":{"id":"quote:8a7cbdcd-2aed-40b0-ab08-c4c10af15f23","type":"exact-in","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","symbol":null,"decimals":null},"destination":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amountOut":"989500","minAmountOut":"989500","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","symbol":null,"decimals":null},"slippage":0.005,"fees":[{"type":"protocol","amount":"10500","token":{"chainId":8453,"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","decimals":6},"estimate":false}],"steps":[{"type":"bridge","provider":"eco","from":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"},"to":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"},"fees":[],"estimatedDurationSec":7,"intents":[{"role":"local","intentHash":"0x3f1886e7c3a4cab62b4a0661e393600f0917d5a514652e96623b0f17ce0d3749","intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}}}]}],"solver":{"id":"0x1Da38A31F369343bdD33cCc48E89D165E8ab3450"},"intentHash":"0x3f1886e7c3a4cab62b4a0661e393600f0917d5a514652e96623b0f17ce0d3749","execution":{"transaction":{"type":"evm","chainId":8453,"to":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","data":"0xdf00f8fa000000000000000000000000000000000000000000000000000000000000000a…","value":"0"},"intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}},"vault":"0xf6358b8f1d0Ec04EBc9Fe8FdEe5e6791640D1c2F"},"expiresAt":1789522904,"signature":"0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b","quotes":null}},"all-quotes":{"title":"all-quotes","value":{"id":"quote:8a7cbdcd-2aed-40b0-ab08-c4c10af15f23","type":"exact-in","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","symbol":null,"decimals":null},"destination":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amountOut":"989500","minAmountOut":"989500","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","symbol":null,"decimals":null},"slippage":0.005,"fees":[{"type":"protocol","amount":"10500","token":{"chainId":8453,"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","decimals":6},"estimate":false}],"steps":[{"type":"bridge","provider":"eco","from":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"},"to":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"},"fees":[],"estimatedDurationSec":7,"intents":[{"role":"local","intentHash":"0x3f1886e7c3a4cab62b4a0661e393600f0917d5a514652e96623b0f17ce0d3749","intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}}}]}],"solver":{"id":"0x1Da38A31F369343bdD33cCc48E89D165E8ab3450"},"intentHash":"0x3f1886e7c3a4cab62b4a0661e393600f0917d5a514652e96623b0f17ce0d3749","execution":{"transaction":{"type":"evm","chainId":8453,"to":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","data":"0xdf00f8fa000000000000000000000000000000000000000000000000000000000000000a…","value":"0"},"intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}},"vault":"0xf6358b8f1d0Ec04EBc9Fe8FdEe5e6791640D1c2F"},"expiresAt":1789522904,"signature":"0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b","quotes":[{"id":"quote:8a7cbdcd-2aed-40b0-ab08-c4c10af15f23","type":"exact-in","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","symbol":null,"decimals":null},"destination":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amountOut":"989500","minAmountOut":"989500","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","symbol":null,"decimals":null},"slippage":0.005,"fees":[{"type":"protocol","amount":"10500","token":{"chainId":8453,"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","decimals":6},"estimate":false}],"steps":[{"type":"bridge","provider":"eco","from":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"},"to":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"},"fees":[],"estimatedDurationSec":7,"intents":[{"role":"local","intentHash":"0x3f1886e7c3a4cab62b4a0661e393600f0917d5a514652e96623b0f17ce0d3749","intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}}}]}],"solver":{"id":"0x1Da38A31F369343bdD33cCc48E89D165E8ab3450"},"intentHash":"0x3f1886e7c3a4cab62b4a0661e393600f0917d5a514652e96623b0f17ce0d3749","execution":{"transaction":{"type":"evm","chainId":8453,"to":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","data":"0xdf00f8fa000000000000000000000000000000000000000000000000000000000000000a…","value":"0"},"intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"989500"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}},"vault":"0xf6358b8f1d0Ec04EBc9Fe8FdEe5e6791640D1c2F"},"expiresAt":1789522904,"signature":"0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b"},{"id":"quote:203ccc0b-fcd6-4a2c-9f65-2b7d1e4a8c10","type":"exact-in","source":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000","funder":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","symbol":null,"decimals":null},"destination":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amountOut":"969873","minAmountOut":"969873","recipient":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","symbol":null,"decimals":null},"slippage":0.005,"fees":[{"type":"protocol","amount":"30127","token":{"chainId":8453,"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","decimals":6},"estimate":false}],"steps":[{"type":"bridge","provider":"eco","from":{"chainId":8453,"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"},"to":{"chainId":10,"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"969873"},"fees":[],"estimatedDurationSec":7,"intents":[{"role":"local","intentHash":"0x239539a7cc10146f96a4c17cf041abaf19452c7dab4d0d6437d3b3c4ac03d0e3","intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"969873"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}}}]}],"solver":{"id":"0x466caF9F946c9C2A76Cb7CD680c53C91CbBb7Ff1"},"intentHash":"0x239539a7cc10146f96a4c17cf041abaf19452c7dab4d0d6437d3b3c4ac03d0e3","execution":{"transaction":{"type":"evm","chainId":8453,"to":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","data":"0xdf00f8fa000000000000000000000000000000000000000000000000000000000000000a…","value":"0"},"intent":{"route":{"salt":"0xec00ec00ec00ec00ec00ec00ec00ec00aaaf8940ec75ab106feed1a7498e986f","deadline":1789523774,"source":8453,"destination":10,"portal":"0xEC000064576f9C95a8623Bc0eff3db6d296ea6df","nativeAmount":"0","tokens":[{"token":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","amount":"969873"}],"calls":[{"target":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85","data":"0xa9059cbb00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c800000000000000000000000000000000000000000000000000000000000f193c","value":"0"}]},"reward":{"deadline":1789524404,"creator":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","prover":"0xec004Ab4870c4e177c66949329dCdb503CE41022","nativeAmount":"0","tokens":[{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"1000000"}]}},"vault":"0xf6358b8f1d0Ec04EBc9Fe8FdEe5e6791640D1c2F"},"expiresAt":1789522904,"signature":"0xc8839424faed5c9b27eb0bfc788afdfa49e9bebd5e5c1f7f7f697719d6ee8ac78791f8fcf074ab63cd2b5ffb87561825f579c1d982bf4a4f7e0dce8bf2136a9c1c"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"9dd6ff58-ebf7-423a-a130-99397e8a5bb7":{"description":"Request failed validation","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"legacy-shape":{"title":"legacy-shape","value":{"type":"https://api.eco.com/v1/errors/invalid-request","title":"Request failed validation","status":400,"code":"invalid-request","detail":"type: Invalid option: expected one of \"exact-in\"|\"exact-out\"|\"custom\"; source.funder: Invalid input; Unrecognized keys: \"swapType\", \"funder\"","errors":[{"field":"type","detail":"Invalid option: expected one of \"exact-in\"|\"exact-out\"|\"custom\""},{"field":"source.funder","detail":"Invalid input"}],"requestId":"f371e43e6fd4406b10e19487b3170edf"}},"missing-recipient":{"title":"missing-recipient","value":{"type":"https://api.eco.com/v1/errors/invalid-request","title":"Request failed validation","status":400,"code":"invalid-request","detail":"destination.recipient: Invalid input","errors":[{"field":"destination.recipient","detail":"Invalid input"}],"requestId":"f371e43e6fd4406b10e19487b3170edf"}},"slippage-out-of-bounds":{"title":"slippage-out-of-bounds","value":{"type":"https://api.eco.com/v1/errors/slippage-out-of-bounds","title":"slippage is outside the valid 0.0001-1 range; it is a decimal fraction (0.005 = 0.5%), not a percent (0.5 means 50%)","status":400,"code":"slippage-out-of-bounds","detail":"slippage: slippage is outside the valid 0.0001-1 range (error code: slippage-out-of-bounds)","errors":[{"field":"slippage","detail":"slippage is outside the valid 0.0001-1 range; it is a decimal fraction (0.005 = 0.5%), not a percent (0.5 means 50%)"}],"requestId":"5abcdddf67907072db4af0c1caa39fcd"}}},"exampleType":"examples"}},"exampleType":"examples"},"ecfb7542-12b4-430a-bd72-79e758e53c14":{"description":"The supplied x-api-key is unknown, revoked, or not enabled for the v1 API. Returned for every v1 endpoint by the gateway, with Content-Type application/json.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://api.eco.com/v1/errors/invalid-api-key","title":"API key is missing, unknown, or revoked","status":401,"code":"invalid-api-key","requestId":"98e4c42f-9c70-4539-843e-8d31803001e6"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.eco.com/v1/errors/invalid-api-key","title":"API key is missing, unknown, or revoked","status":401,"code":"invalid-api-key","requestId":"98e4c42f-9c70-4539-843e-8d31803001e6"}}},"exampleType":"examples"}},"exampleType":"examples"},"4beb2964-c624-4cb1-995e-ead4460ea0b9":{"description":"No API key supplied. The gateway rejects the request before it reaches the API, with a plain JSON body.","content":{"application/json":{"example":{"Message":"User is not authorized to access this resource with an explicit deny in an identity-based policy"},"examples":{"Example":{"title":"Example","value":{"Message":"User is not authorized to access this resource with an explicit deny in an identity-based policy"}}},"exampleType":"examples"}},"exampleType":"examples"},"b688512b-67d6-4689-ab2f-a5174230ace6":{"description":"Every solver rejected the request for a deterministic reason.","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://api.eco.com/v1/errors/chain-not-supported","title":"A chain in the route is not supported","status":422,"code":"chain-not-supported","detail":"Every solver rejected the request: a chain in the route is not supported.","requestId":"252dbcdeebe5465fdc089843e8643b37"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.eco.com/v1/errors/chain-not-supported","title":"A chain in the route is not supported","status":422,"code":"chain-not-supported","detail":"Every solver rejected the request: a chain in the route is not supported.","requestId":"252dbcdeebe5465fdc089843e8643b37"}}},"exampleType":"examples"}},"exampleType":"examples"},"8d68766f-cd03-4719-b318-d0f513d8de14":{"description":"Rate limit exceeded","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://api.eco.com/v1/errors/rate-limit-exceeded","title":"Rate limit exceeded","status":429,"code":"rate-limit-exceeded","requestId":"1eac3d6cc2aafa524b0c47a039576f8c"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.eco.com/v1/errors/rate-limit-exceeded","title":"Rate limit exceeded","status":429,"code":"rate-limit-exceeded","requestId":"1eac3d6cc2aafa524b0c47a039576f8c"}}},"exampleType":"examples"}},"exampleType":"examples"},"f36b08c4-4ac2-403c-bcac-fedc9bc4b0cf":{"description":"Internal error","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://api.eco.com/v1/errors/internal-error","title":"Internal error","status":500,"code":"internal-error","requestId":"02dabcf0f4e3def9a6091526d3d21022"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.eco.com/v1/errors/internal-error","title":"Internal error","status":500,"code":"internal-error","requestId":"02dabcf0f4e3def9a6091526d3d21022"}}},"exampleType":"examples"}},"exampleType":"examples"},"f75e6640-3b73-4309-a7e3-9cb03477774b":{"description":"No solver returned a usable quote. Also returned for unlisted tokens, unavailable liquidity, and amounts no solver can fill.","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://api.eco.com/v1/errors/solver-error","title":"An upstream solver rejected or failed the quote request","status":502,"code":"solver-error","requestId":"b76e20a9b3eea8cf85d424073229ef92"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.eco.com/v1/errors/solver-error","title":"An upstream solver rejected or failed the quote request","status":502,"code":"solver-error","requestId":"b76e20a9b3eea8cf85d424073229ef92"}}},"exampleType":"examples"}},"exampleType":"examples"},"39ccbd35-fe6e-4cd2-93b3-8d13f9cab161":{"description":"Error (RFC 9457 problem+json; see x-error-catalog)","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable, machine-readable error code from the catalog. Branch on this and `status`, not on `title` or `detail`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"legacyCode":{"type":"string","description":"The pre-v1 numeric error code this problem maps to, for integrations migrating from the older services.","uniqueKey":"legacyCode","typeLabel":"string"},"solverErrors":{"type":"array","items":{"type":"object","properties":{"solver":{"type":"string","description":"Address on the relevant chain: `0x…` hex for EVM chains, base58 for Solana, `T…` base58 for Tron.","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].solver","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"solverErrors.items.[INDEX].message","typeLabel":"string"},"solverName":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].solverName","typeLabel":"string"},"code":{"type":"string","minLength":1,"uniqueKey":"solverErrors.items.[INDEX].code","typeLabel":"string"}},"required":["solver","message"],"uniqueKey":"solverErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"solverErrors","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"detail":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"required":["field","detail"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Field-level validation failures.","uniqueKey":"errors","typeLabel":"object[]"},"requestId":{"type":"string","description":"Correlation ID for support. Present on router-served errors; deposit-address-served errors carry a short numeric value.","uniqueKey":"requestId","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":499,"code":"\u003cstring>","detail":"\u003cstring>","instance":"\u003cstring>","legacyCode":"\u003cstring>","solverErrors":[{"solver":"\u003cstring>","message":"\u003cstring>","solverName":"\u003cstring>","code":"\u003cstring>"}],"errors":[{"field":"\u003cstring>","detail":"\u003cstring>"}],"requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f4c3bba9-42f7-4dcf-97ee-f9b1364e7db1":{"ApiKey":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]}}},"servers":{"95bbb810-cd3e-469f-9359-3a8cbf620b75":{"url":"https://api.eco.com","description":"Eco API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"x-api-key"}],"title":"ApiKey"}]},"originalFileLocation":"api-v1.openapi.json"},"subdomain":"ecoinc","siteName":"Eco Docs","title":"Request a quote - Eco Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T01:06:16.432Z","originalFileLocation":"routes-api/v1/quotes.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.\">\u003cmeta data-mint-head name=\"keywords\" content=\"Eco, stablecoin API, cross-chain stablecoin transfers, USDC bridge API, stablecoin swaps, intent-based routing, deposit addresses, Circle Gateway deposits, programmable transactions, Eco Routes\">\u003cmeta data-mint-head name=\"application-name\" content=\"Eco Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_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/ecoinc/ONV0lWVXzJTYmKfk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Request a quote - Eco Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Eco Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.eco.com/routes-api/v1/quotes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ecoinc.mintlify.app/_mintlify/api/og/v2?division=Discovery+and+quotes\u0026amp;title=Request+a+quote\u0026amp;description=Returns+an+executable+quote+for+a+stablecoin+transfer%2C+with+the+transaction+to+send%2C+the+intent%2C+and+the+minimum+output.\u0026amp;theme=177707ff06042f4ba0ece338\u0026amp;signature=af3cda75ad24641ad85e906e15f31a4a9288344c3b6a0a6c00ab7cadab784ddf\">\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=\"Request a quote - Eco Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ecoinc.mintlify.app/_mintlify/api/og/v2?division=Discovery+and+quotes\u0026amp;title=Request+a+quote\u0026amp;description=Returns+an+executable+quote+for+a+stablecoin+transfer%2C+with+the+transaction+to+send%2C+the+intent%2C+and+the+minimum+output.\u0026amp;theme=177707ff06042f4ba0ece338\u0026amp;signature=af3cda75ad24641ad85e906e15f31a4a9288344c3b6a0a6c00ab7cadab784ddf\">\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/ecoinc/ONV0lWVXzJTYmKfk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Eco Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b82f6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.eco.com/routes-api/v1/quotes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/routes-api/v1/quotes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.eco.com/#organization\",\"name\":\"Eco Docs\",\"url\":\"https://docs.eco.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ecoinc/DtIf8WKVQ-UcXs2M/~/files/logos/logo.png?fit=max\u0026auto=format\u0026n=DtIf8WKVQ-UcXs2M\u0026q=85\u0026s=4d88ec61010fb99d770ca35604355e16\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.eco.com#website\",\"name\":\"Eco Docs\",\"url\":\"https://docs.eco.com\",\"publisher\":{\"@id\":\"https://docs.eco.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.eco.com/routes-api/v1/quotes#webpage\",\"url\":\"https://docs.eco.com/routes-api/v1/quotes\",\"name\":\"Request a quote\",\"description\":\"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.\",\"dateModified\":\"2026-10-28T01:06:16.432Z\",\"isPartOf\":{\"@id\":\"https://docs.eco.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.eco.com/routes-api/v1/quotes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.eco.com/routes-api/v1/quotes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Discovery and quotes\",\"item\":\"https://docs.eco.com/routes-api/v1/chains\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Request a quote\",\"item\":\"https://docs.eco.com/routes-api/v1/quotes\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.eco.com/routes-api/v1/quotes#apireference\",\"headline\":\"Request a quote\",\"name\":\"Request a quote\",\"description\":\"Returns an executable quote for a stablecoin transfer, with the transaction to send, the intent, and the minimum output.\",\"url\":\"https://docs.eco.com/routes-api/v1/quotes\",\"mainEntityOfPage\":{\"@id\":\"https://docs.eco.com/routes-api/v1/quotes#webpage\"},\"dateModified\":\"2026-10-28T01:06:16.432Z\",\"publisher\":{\"@id\":\"https://docs.eco.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.eco.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Eco Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Eco Docs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home"}]},{"tab":"Get started","pages":[{"title":"Get started","href":"/get-started/what-is-eco"}]},{"tab":"Developer platform","pages":[{"title":"Developer platform","href":"/platform/overview"}]},{"tab":"Sauce SDK","pages":[{"title":"Sauce SDK","href":"/sauce-sdk/introduction"}]},{"tab":"Routes API","groups":[{"group":"Conventions","pages":[{"title":"API access and conventions","sidebarTitle":"Introduction","href":"/routes-api/introduction"},{"title":"Errors and retries","href":"/routes-api/errors"},{"title":"Verify quote signatures","sidebarTitle":"Quote verification","href":"/routes-api/quote-verification"},{"title":"Agent integration","href":"/routes-api/agent-integration"}]},{"group":"Discovery and quotes","pages":[{"title":"List chains","openapi":"api-v1.openapi.json GET /v1/chains","href":"/routes-api/v1/chains"},{"title":"List tokens","description":"Returns every token the API can quote, with decimals and the gasless funding standards each supports.","openapi":"api-v1.openapi.json GET /v1/tokens","href":"/routes-api/v1/tokens"},{"title":"Request a quote","openapi":"api-v1.openapi.json POST /v1/quotes","href":"/routes-api/v1/quotes"}]},{"group":"Quote funding and status","pages":[{"title":"Initiate an intent with Permit3","description":"Funds a quote gaslessly with a signed Permit3 authorization. Requires an API key.","openapi":"api-v1.openapi.json POST /v1/intents/submit/permit3","href":"/routes-api/v1/submit-permit3"},{"title":"Initiate an intent with Permit2","openapi":"api-v1.openapi.json POST /v1/intents/submit/permit2","href":"/routes-api/v1/submit-permit2"},{"title":"Initiate an intent with ERC-3009","openapi":"api-v1.openapi.json POST /v1/intents/submit/erc-3009","href":"/routes-api/v1/submit-erc-3009"},{"title":"Track the status of an intent","openapi":"api-v1.openapi.json GET /v1/intents/status","href":"/routes-api/v1/intent-status"}]},{"group":"Circle Gateway fast deposits","pages":[{"title":"Get a Circle Gateway deposit address","openapi":"api-v1.openapi.json POST /v1/circle-gateway/deposit-addresses","href":"/routes-api/v1/gateway-create"},{"title":"Check the status of a deposit","openapi":"api-v1.openapi.json GET /v1/circle-gateway/deposit-addresses/{vaultAddress}","href":"/routes-api/v1/gateway-lookup"},{"title":"Initiate a gasless deposit with ERC-3009","openapi":"api-v1.openapi.json POST /v1/circle-gateway/deposit-addresses/submit/erc-3009","href":"/routes-api/v1/gateway-submit-erc-3009"},{"title":"Initiate a gasless deposit with EIP-2612","openapi":"api-v1.openapi.json POST /v1/circle-gateway/deposit-addresses/submit/erc-2612","href":"/routes-api/v1/gateway-submit-erc-2612"},{"title":"Track a gasless deposit job","openapi":"api-v1.openapi.json GET /v1/circle-gateway/deposit-addresses/status","href":"/routes-api/v1/gateway-status"}]},{"group":"Open quoting service","pages":[{"title":"Open quoting service","openapi":"public-quote.openapi.json POST /api/v3/quotes/exactIn","href":"/routes-api/public-quote"}]}]},{"tab":"Quickstarts","pages":[{"title":"Quickstarts","href":"/quickstarts/overview"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/overview"}]}]},"title":"Request a quote - Eco Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}