This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations.
After receiving a route, pass the full response (including operations) to the Generate Transaction endpoint (POST /v2/fungible/msgs) to get signable transaction messages you can broadcast.
If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a 400 error whose message reports the remaining capacity in human-readable units.
All chain IDs that require an address, in order of usage by operations in the route. Use this to populate the address_list parameter in the Generate Transaction request.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Initia Docs","colors":{"primary":"#324242","light":"#7ad9f7","dark":"#4349FF"},"logo":{"light":"https://mintcdn.com/initialabs/Uwhc6AAplUb4pVeK/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=Uwhc6AAplUb4pVeK\u0026q=85\u0026s=ac94fed481d8ea8bc33f6ed287d41767","dark":"https://mintcdn.com/initialabs/Uwhc6AAplUb4pVeK/logo/logo_dark.svg?fit=max\u0026auto=format\u0026n=Uwhc6AAplUb4pVeK\u0026q=85\u0026s=7c64051e297de71f104d0622d2050fb1"},"favicon":"https://mintcdn.com/initialabs/Uwhc6AAplUb4pVeK/favicon.svg?fit=max\u0026auto=format\u0026n=Uwhc6AAplUb4pVeK\u0026q=85\u0026s=632e02bc14dd8d68d7a088ccb36d92fc","api":{"openapi":["api-reference/router-api/openapi.yaml","api-reference/rollup-indexer/openapi.yaml"],"playground":{"display":"interactive","proxy":true},"mdx":{"server":"https://rest.testnet.initia.xyz"}},"appearance":{"default":"dark"},"background":{"decoration":"grid","color":{"dark":"#060606"}},"footer":{"socials":{"twitter":"https://x.com/initia","discord":"https://discord.gg/initia","github":"https://github.com/initia-labs"}},"integrations":{"ga4":{"measurementId":"G-MEX41J56YX"}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Twitter","icon":"twitter","href":"https://x.com/initia"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/initia"},{"anchor":"GitHub","icon":"github","href":"https://github.com/initia-labs"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"initialabs","hasAudioNarration":false,"actualSubdomain":"initialabs","customDomains":["docs.initia.xyz"],"gitSource":{"type":"github","owner":"initia-labs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a67696b99c83776a49bc5dd","collectionId":"a0dca5b1-7b51-4b8f-a147-4b0659afb2a7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a67696b99c83776a49bc5dd"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6a67696b99c83776a49bc5dd:success","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Developers","count":58},{"language":"default","tag":"API Reference","count":56},{"language":"default","tag":"InterwovenKit","count":34},{"language":"default","tag":"Home","count":28},{"language":"default","tag":"Tools","count":25},{"language":"default","tag":"Core Concepts","count":25},{"language":"default","tag":"Indexer API","count":24},{"language":"default","tag":"VM Specific Tutorials","count":15},{"language":"default","tag":"CLIs","count":14},{"language":"default","tag":"EVM","count":14}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/routing/compute-route","slug":"/api-reference/routing/compute-route","pageMetadata":{"title":"Compute Route","description":"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations.\n\nAfter receiving a route, pass the full response (including `operations`) to the Generate Transaction endpoint (`POST /v2/fungible/msgs`) to get signable transaction messages you can broadcast.\n\nIf the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a `400` error whose message reports the remaining capacity in human-readable units.","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /v2/fungible/route","href":"/api-reference/routing/compute-route","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"After receiving a route, pass the full response (including \", _jsx(_components.code, {\n children: \"operations\"\n }), \") to the Generate Transaction endpoint (\", _jsx(_components.code, {\n children: \"POST /v2/fungible/msgs\"\n }), \") to get signable transaction messages you can broadcast.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a \", _jsx(_components.code, {\n children: \"400\"\n }), \" error whose message reports the remaining capacity in human-readable units.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}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":"Compute Route","description":"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations.\n\nAfter receiving a route, pass the full response (including `operations`) to the Generate Transaction endpoint (`POST /v2/fungible/msgs`) to get signable transaction messages you can broadcast.\n\nIf the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a `400` error whose message reports the remaining capacity in human-readable units.","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /v2/fungible/route","href":"/api-reference/routing/compute-route","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"computeRoute","summary":"Compute Route","description":"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations.\n\nAfter receiving a route, pass the full response (including `operations`) to the Generate Transaction endpoint (`POST /v2/fungible/msgs`) to get signable transaction messages you can broadcast.\n\nIf the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a `400` error whose message reports the remaining capacity in human-readable units.","tags":["Routing"],"requestBody":"988ad92c-bc0a-40e9-ab60-f841c6e3cb02","responses":{"200":"7539ed64-7c13-49bc-a9ee-b5001467306e","400":"5e45e82f-9cc6-4ccf-bf01-bc5a796b6ddb"},"method":"post","type":"path","servers":["9dfeb694-461d-4028-9e98-aaaaac0c780b","e38be52a-8309-4cb1-8e99-b8079cc517da"],"security":[],"path":"/v2/fungible/route","baseUrlOptions":["https://router-api.initia.xyz","https://router-api.initiation-2.initia.xyz"],"title":"Compute Route","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount_in","source_asset_chain_id","source_asset_denom","dest_asset_chain_id","dest_asset_denom"],"properties":{"amount_in":{"type":"string","description":"Amount to send in the smallest denomination (e.g. \"1000000\" for 1 INIT).","isRequired":true,"uniqueKey":"amount_in","typeLabel":"string"},"source_asset_chain_id":{"type":"string","description":"Source chain ID.","isRequired":true,"uniqueKey":"source_asset_chain_id","typeLabel":"string"},"source_asset_denom":{"type":"string","description":"Source asset denomination.","isRequired":true,"uniqueKey":"source_asset_denom","typeLabel":"string"},"dest_asset_chain_id":{"type":"string","description":"Destination chain ID.","isRequired":true,"uniqueKey":"dest_asset_chain_id","typeLabel":"string"},"dest_asset_denom":{"type":"string","description":"Destination asset denomination.","isRequired":true,"uniqueKey":"dest_asset_denom","typeLabel":"string"},"allow_unsafe":{"type":"boolean","default":true,"description":"Allow routes that may have higher risk.","uniqueKey":"allow_unsafe","typeLabel":"boolean"},"go_fast":{"type":"boolean","description":"Use Go Fast bridging. Automatically determined if not set.","uniqueKey":"go_fast","typeLabel":"boolean"},"is_op_withdraw":{"type":"boolean","description":"Force an Optimistic withdrawal route.","uniqueKey":"is_op_withdraw","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"example":{"amount_in":"1000000","source_asset_chain_id":"interwoven-1","source_asset_denom":"uinit","dest_asset_chain_id":"8453","dest_asset_denom":"0x...","allow_unsafe":true},"examples":{"Example":{"title":"Example","value":{"amount_in":"1000000","source_asset_chain_id":"interwoven-1","source_asset_denom":"uinit","dest_asset_chain_id":"8453","dest_asset_denom":"0x...","allow_unsafe":true}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7539ed64-7c13-49bc-a9ee-b5001467306e":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"amount_in":{"type":"string","description":"Input amount.","uniqueKey":"amount_in","typeLabel":"string"},"amount_out":{"type":"string","description":"Expected output amount.","uniqueKey":"amount_out","typeLabel":"string"},"source_asset_chain_id":{"type":"string","description":"Source chain ID.","uniqueKey":"source_asset_chain_id","typeLabel":"string"},"source_asset_denom":{"type":"string","description":"Source asset denom.","uniqueKey":"source_asset_denom","typeLabel":"string"},"dest_asset_chain_id":{"type":"string","description":"Destination chain ID.","uniqueKey":"dest_asset_chain_id","typeLabel":"string"},"dest_asset_denom":{"type":"string","description":"Destination asset denom.","uniqueKey":"dest_asset_denom","typeLabel":"string"},"operations":{"type":"array","description":"Ordered list of transfer operations to execute.","items":{"type":"object","uniqueKey":"operations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"operations","typeLabel":"object[]"},"required_chain_addresses":{"type":"array","description":"All chain IDs that require an address, in order of usage by operations in the route. Use this to populate the address_list parameter in the Generate Transaction request.","items":{"type":"string","uniqueKey":"required_chain_addresses.items.[INDEX]","typeLabel":"string"},"uniqueKey":"required_chain_addresses","typeLabel":"string[]"},"chain_ids":{"type":"array","description":"Ordered list of all chain IDs involved in the route.","items":{"type":"string","uniqueKey":"chain_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"chain_ids","typeLabel":"string[]"},"does_swap":{"type":"boolean","description":"Whether the route involves a token swap.","uniqueKey":"does_swap","typeLabel":"boolean"},"estimated_amount_out":{"type":"string","description":"Estimated output amount before fees and slippage adjustments.","uniqueKey":"estimated_amount_out","typeLabel":"string"},"estimated_fees":{"type":"array","description":"Estimated fees for the route. Each entry describes a fee with its amount, behavior, and the originating asset.","items":{"type":"object","properties":{"amount":{"type":"string","description":"Fee amount in the smallest denomination.","uniqueKey":"estimated_fees.items.[INDEX].amount","typeLabel":"string"},"fee_behavior":{"type":"string","description":"How the fee is applied (e.g. FEE_BEHAVIOR_ADDITIONAL, FEE_BEHAVIOR_DEDUCTED).","uniqueKey":"estimated_fees.items.[INDEX].fee_behavior","typeLabel":"string"},"origin_asset":{"type":"object","description":"The asset in which the fee is denominated.","properties":{"denom":{"type":"string","uniqueKey":"estimated_fees.items.[INDEX].origin_asset.denom","typeLabel":"string"},"chain_id":{"type":"string","uniqueKey":"estimated_fees.items.[INDEX].origin_asset.chain_id","typeLabel":"string"}},"uniqueKey":"estimated_fees.items.[INDEX].origin_asset","typeLabel":"object"},"usd_amount":{"oneOf":[{"type":"string","description":"USD value of the fee, if available.","uniqueKey":"estimated_fees.items.[INDEX].usd_amount.oneOf.0","typeLabel":"string"},{"type":"null","description":"USD value of the fee, if available.","uniqueKey":"estimated_fees.items.[INDEX].usd_amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"estimated_fees.items.[INDEX].usd_amount","typeLabel":"string | null"}},"uniqueKey":"estimated_fees.items.[INDEX]","typeLabel":"object"},"uniqueKey":"estimated_fees","typeLabel":"object[]"},"estimated_route_duration_seconds":{"oneOf":[{"type":"integer","description":"Estimated time in seconds for the route to complete.","uniqueKey":"estimated_route_duration_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Estimated time in seconds for the route to complete.","uniqueKey":"estimated_route_duration_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"estimated_route_duration_seconds","typeLabel":"integer | null"},"txs_required":{"type":"integer","description":"Number of transactions required to execute the route.","uniqueKey":"txs_required","typeLabel":"integer"},"swap_venues":{"type":"array","description":"DEX venues used for swaps in the route, if any.","items":{"type":"object","properties":{"name":{"type":"string","description":"Swap venue name.","uniqueKey":"swap_venues.items.[INDEX].name","typeLabel":"string"},"chain_id":{"type":"string","description":"Chain ID where the swap occurs.","uniqueKey":"swap_venues.items.[INDEX].chain_id","typeLabel":"string"},"logo_uri":{"type":"string","description":"URL to the swap venue logo.","uniqueKey":"swap_venues.items.[INDEX].logo_uri","typeLabel":"string"}},"uniqueKey":"swap_venues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"swap_venues","typeLabel":"object[]"},"swap_venue":{"type":"object","description":"Primary DEX venue used for the route's swap.","properties":{"name":{"type":"string","description":"Swap venue name.","uniqueKey":"swap_venue.name","typeLabel":"string"},"chain_id":{"type":"string","description":"Chain ID where the swap occurs.","uniqueKey":"swap_venue.chain_id","typeLabel":"string"},"logo_uri":{"type":"string","description":"URL to the swap venue logo.","uniqueKey":"swap_venue.logo_uri","typeLabel":"string"}},"uniqueKey":"swap_venue","typeLabel":"object"},"swap_price_impact_percent":{"type":"string","description":"Estimated price impact percentage for the swap.","uniqueKey":"swap_price_impact_percent","typeLabel":"string"},"usd_amount_in":{"type":"string","description":"USD value of the input amount.","uniqueKey":"usd_amount_in","typeLabel":"string"},"usd_amount_out":{"type":"string","description":"USD value of the output amount.","uniqueKey":"usd_amount_out","typeLabel":"string"},"warning":{"oneOf":[{"type":"object","description":"Price impact warning (present when impact exceeds 5%).","properties":{"type":{"type":"string","description":"Warning type (e.g. BAD_PRICE_WARNING).","uniqueKey":"warning.oneOf.0.type","typeLabel":"string"},"message":{"type":"string","description":"Human-readable warning message.","uniqueKey":"warning.oneOf.0.message","typeLabel":"string"}},"uniqueKey":"warning.oneOf.0","typeLabel":"object"},{"type":"null","description":"Price impact warning (present when impact exceeds 5%).","properties":{"type":{"type":"string","description":"Warning type (e.g. BAD_PRICE_WARNING)."},"message":{"type":"string","description":"Human-readable warning message."}},"uniqueKey":"warning.oneOf.1","typeLabel":"null"}],"uniqueKey":"warning","typeLabel":"object | null"},"extra_warnings":{"oneOf":[{"type":"array","description":"Additional warning messages for the route, such as withdrawal duration notices.","items":{"type":"string","uniqueKey":"extra_warnings.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"extra_warnings.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"Additional warning messages for the route, such as withdrawal duration notices.","items":{"type":"string"},"uniqueKey":"extra_warnings.oneOf.1","typeLabel":"null"}],"uniqueKey":"extra_warnings","typeLabel":"string[] | null"},"required_op_hook":{"type":"boolean","description":"Whether an OP hook is required for this route.","uniqueKey":"required_op_hook","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"example":{"amount_in":"1000000","amount_out":"999000","source_asset_chain_id":"interwoven-1","source_asset_denom":"uinit","dest_asset_chain_id":"8453","dest_asset_denom":"0x...","operations":[],"required_chain_addresses":["interwoven-1","8453"],"chain_ids":["interwoven-1","8453"],"does_swap":false,"estimated_amount_out":"999000","estimated_fees":[],"estimated_route_duration_seconds":60,"txs_required":1,"swap_venues":[],"usd_amount_in":"1.50","usd_amount_out":"1.49","warning":null,"extra_warnings":null,"required_op_hook":false},"examples":{"Example":{"title":"Example","value":{"amount_in":"1000000","amount_out":"999000","source_asset_chain_id":"interwoven-1","source_asset_denom":"uinit","dest_asset_chain_id":"8453","dest_asset_denom":"0x...","operations":[],"required_chain_addresses":["interwoven-1","8453"],"chain_ids":["interwoven-1","8453"],"does_swap":false,"estimated_amount_out":"999000","estimated_fees":[],"estimated_route_duration_seconds":60,"txs_required":1,"swap_venues":[],"usd_amount_in":"1.50","usd_amount_out":"1.49","warning":null,"extra_warnings":null,"required_op_hook":false}}},"exampleType":"examples"}},"exampleType":"examples"},"5e45e82f-9cc6-4ccf-bf01-bc5a796b6ddb":{"description":"Bad request. Returned when the requested transfer exceeds the current IBC rate-limit capacity for the source or destination asset. The error `message` reports the remaining send or receive capacity in human-readable decimal units, for example `IBC rate limit exceeded - Remaining send capacity: 1234.567890` or `IBC rate limit exceeded - Remaining receive capacity: 1234.567890`.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","example":400,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","example":"Bad Request","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":400,"message":"IBC rate limit exceeded - Remaining send capacity: 1234.567890","error":"Bad Request"},"examples":{"Example":{"title":"Example","value":{"statusCode":400,"message":"IBC rate limit exceeded - Remaining send capacity: 1234.567890","error":"Bad Request"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{},"servers":{"9dfeb694-461d-4028-9e98-aaaaac0c780b":{"url":"https://router-api.initia.xyz","description":"Mainnet"},"e38be52a-8309-4cb1-8e99-b8079cc517da":{"url":"https://router-api.initiation-2.initia.xyz","description":"Testnet"}}},"originalFileLocation":"api-reference/router-api/openapi.yaml"},"subdomain":"initialabs","siteName":"Initia Docs","title":"Compute Route - Initia Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-27T07:10:49.451Z","originalFileLocation":"api-reference/routing/compute-route.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations. After receiving a route, pass the full response (including operations) to the Generate Transaction endpoint (POST /v2/fungible/msgs) to get signable transaction messages you can broadcast. If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a 400 error whose message reports the remaining capacity in human-readable units.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Initia 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/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_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/initialabs/_d_tyT_z0U8a7tAx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Compute Route - Initia Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations. After receiving a route, pass the full response (including operations) to the Generate Transaction endpoint (POST /v2/fungible/msgs) to get signable transaction messages you can broadcast. If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a 400 error whose message reports the remaining capacity in human-readable units.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Initia Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.initia.xyz/api-reference/routing/compute-route\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://initialabs.mintlify.app/_mintlify/api/og/v2?division=Routing\u0026amp;title=Compute+Route\u0026amp;description=This+is+the+first+step+when+bridging+tokens+between+chains.+Call+this+endpoint+with+your+source+and+destination+assets+to+find+the+optimal+transfer+route.+The+r\u0026amp;theme=e29f2c35b4742e650dd7e8e8\u0026amp;signature=03e1fce662061e04c1b6268cb96c30ec7e3ffbd6bd0638b5127de70bd2be8458\">\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=\"Compute Route - Initia Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations. After receiving a route, pass the full response (including operations) to the Generate Transaction endpoint (POST /v2/fungible/msgs) to get signable transaction messages you can broadcast. If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a 400 error whose message reports the remaining capacity in human-readable units.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://initialabs.mintlify.app/_mintlify/api/og/v2?division=Routing\u0026amp;title=Compute+Route\u0026amp;description=This+is+the+first+step+when+bridging+tokens+between+chains.+Call+this+endpoint+with+your+source+and+destination+assets+to+find+the+optimal+transfer+route.+The+r\u0026amp;theme=e29f2c35b4742e650dd7e8e8\u0026amp;signature=03e1fce662061e04c1b6268cb96c30ec7e3ffbd6bd0638b5127de70bd2be8458\">\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/initialabs/_d_tyT_z0U8a7tAx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Initia Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#324242\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.initia.xyz/api-reference/routing/compute-route\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/routing/compute-route.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.initia.xyz/#organization\",\"name\":\"Initia Docs\",\"url\":\"https://docs.initia.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/initialabs/Uwhc6AAplUb4pVeK/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=Uwhc6AAplUb4pVeK\u0026q=85\u0026s=ac94fed481d8ea8bc33f6ed287d41767\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.initia.xyz#website\",\"name\":\"Initia Docs\",\"url\":\"https://docs.initia.xyz\",\"publisher\":{\"@id\":\"https://docs.initia.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.initia.xyz/api-reference/routing/compute-route#webpage\",\"url\":\"https://docs.initia.xyz/api-reference/routing/compute-route\",\"name\":\"Compute Route\",\"description\":\"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations. After receiving a route, pass the full response (including operations) to the Generate Transaction endpoint (POST /v2/fungible/msgs) to get signable transaction messages you can broadcast. If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a 400 error whose message reports the remaining capacity in human-readable units.\",\"dateModified\":\"2026-05-27T07:10:49.451Z\",\"isPartOf\":{\"@id\":\"https://docs.initia.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.initia.xyz/api-reference/routing/compute-route#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.initia.xyz/api-reference/routing/compute-route#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Router API\",\"item\":\"https://docs.initia.xyz/api-reference/router-api/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compute Route\",\"item\":\"https://docs.initia.xyz/api-reference/routing/compute-route\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.initia.xyz/api-reference/routing/compute-route#apireference\",\"headline\":\"Compute Route\",\"name\":\"Compute Route\",\"description\":\"This is the first step when bridging tokens between chains. Call this endpoint with your source and destination assets to find the optimal transfer route. The response includes the expected output amount, USD value estimates, and an ordered list of operations. After receiving a route, pass the full response (including operations) to the Generate Transaction endpoint (POST /v2/fungible/msgs) to get signable transaction messages you can broadcast. If the route involves an IBC transfer between the Initia L1 chain and an external Cosmos chain, the endpoint also checks that the transfer fits within the current IBC rate-limit capacity. When the requested amount exceeds the remaining send or receive capacity, the request is rejected with a 400 error whose message reports the remaining capacity in human-readable units.\",\"url\":\"https://docs.initia.xyz/api-reference/routing/compute-route\",\"mainEntityOfPage\":{\"@id\":\"https://docs.initia.xyz/api-reference/routing/compute-route#webpage\"},\"dateModified\":\"2026-05-27T07:10:49.451Z\",\"publisher\":{\"@id\":\"https://docs.initia.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.initia.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Initia Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Initia Docs","nav":{"global":{"anchors":[{"anchor":"Twitter","icon":"twitter","href":"https://x.com/initia"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/initia"},{"anchor":"GitHub","icon":"github","href":"https://github.com/initia-labs"}]},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home/general/welcome"}]},{"tab":"User Guides","pages":[{"title":"User Guides","href":"/user-guides/wallet/auto-signing/introduction"}]},{"tab":"Nodes and Rollups","pages":[{"title":"Nodes and Rollups","href":"/nodes-and-rollups/introduction"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/developers/introduction"}]},{"tab":"InterwovenKit","pages":[{"title":"InterwovenKit","href":"/interwovenkit/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Overview","href":"/api-reference/introduction"}]},{"group":"Router API","pages":[{"title":"Introduction","href":"/api-reference/router-api/introduction"},{"title":"Usage","href":"/api-reference/router-api/usage"},{"group":"Assets \u0026 Chains","pages":[{"title":"Get Assets","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml get /v2/fungible/assets","href":"/api-reference/assets-\u0026-chains/get-assets"},{"title":"Get Chains","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml get /v2/info/chains","href":"/api-reference/assets-\u0026-chains/get-chains"},{"title":"Get Balances","description":"Returns token balances and USD values for given addresses across multiple chains.","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /v2/info/balances","href":"/api-reference/assets-\u0026-chains/get-balances"}]},{"group":"Routing","pages":[{"title":"Compute Route","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /v2/fungible/route","href":"/api-reference/routing/compute-route"},{"title":"Generate Transaction","description":"This is the second step when bridging tokens. After computing a route with Compute Route (`POST /v2/fungible/route`), pass the route details and your addresses to this endpoint. It returns signable transaction messages that you can broadcast to the source chain.\n\nThe typical flow is: **Compute Route** → **Generate Transaction** → sign and broadcast → **Track Transaction**.","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /v2/fungible/msgs","href":"/api-reference/routing/generate-transaction"},{"title":"Get OP hook","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /op-hook","href":"/api-reference/routing/get-op-hook"}]},{"group":"Tracking Transactions","pages":[{"title":"Track Transaction","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /v2/tx/track","href":"/api-reference/tracking-transactions/track-transaction"},{"title":"Get Transaction Status","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml get /v2/tx/status","href":"/api-reference/tracking-transactions/get-transaction-status"}]},{"group":"NFT","pages":[{"title":"NFT Transfer","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /nft","href":"/api-reference/nft/nft-transfer"}]},{"group":"RPC","pages":[{"title":"Cosmos RPC Proxy","deprecated":null,"version":null,"openapi":"/api-reference/router-api/openapi.yaml post /api/rpc/{chainId}","href":"/api-reference/rpc/cosmos-rpc-proxy"}]}]},{"group":"Indexer API","pages":[{"title":"Introduction","href":"/api-reference/rollup-indexer/introduction"},{"group":"Blocks","pages":[{"title":"Get blocks","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/block/v1/blocks","href":"/api-reference/blocks/get-blocks"},{"title":"Get block by height","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/block/v1/blocks/{height}","href":"/api-reference/blocks/get-block-by-height"},{"title":"Get average block time","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/block/v1/avg_blocktime","href":"/api-reference/blocks/get-average-block-time"}]},{"group":"Transactions","pages":[{"title":"Get transactions","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/txs","href":"/api-reference/transactions/get-transactions"},{"title":"Get transactions by account","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/txs/by_account/{account}","href":"/api-reference/transactions/get-transactions-by-account"},{"title":"Get transactions by height","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/txs/by_height/{height}","href":"/api-reference/transactions/get-transactions-by-height"},{"title":"Get transaction by hash","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/txs/{tx_hash}","href":"/api-reference/transactions/get-transaction-by-hash"}]},{"group":"EVM Transactions","pages":[{"title":"Get EVM transactions","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-txs","href":"/api-reference/evm-transactions/get-evm-transactions"},{"title":"Get EVM transactions by account","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-txs/by_account/{account}","href":"/api-reference/evm-transactions/get-evm-transactions-by-account"},{"title":"Get EVM transactions by height","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-txs/by_height/{height}","href":"/api-reference/evm-transactions/get-evm-transactions-by-height"},{"title":"Get EVM transaction by hash","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-txs/{tx_hash}","href":"/api-reference/evm-transactions/get-evm-transaction-by-hash"}]},{"group":"EVM Internal Transactions","pages":[{"title":"Get EVM internal transactions","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-internal-txs","href":"/api-reference/evm-internal-transactions/get-evm-internal-transactions"},{"title":"Get EVM internal transactions by account","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-internal-txs/by_account/{account}","href":"/api-reference/evm-internal-transactions/get-evm-internal-transactions-by-account"},{"title":"Get EVM internal transactions by height","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-internal-txs/by_height/{height}","href":"/api-reference/evm-internal-transactions/get-evm-internal-transactions-by-height"},{"title":"Get EVM internal transactions by hash","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/tx/v1/evm-internal-txs/{tx_hash}","href":"/api-reference/evm-internal-transactions/get-evm-internal-transactions-by-hash"}]},{"group":"NFTs","pages":[{"title":"Get NFT collections","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/collections","href":"/api-reference/nfts/get-nft-collections"},{"title":"Get NFT collections by account","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/collections/by_account/{account}","href":"/api-reference/nfts/get-nft-collections-by-account"},{"title":"Get NFT collections by name","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/collections/by_name/{name}","href":"/api-reference/nfts/get-nft-collections-by-name"},{"title":"Get NFT collection details","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/collections/{collection_addr}","href":"/api-reference/nfts/get-nft-collection-details"},{"title":"Get NFT tokens by account","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/tokens/by_account/{account}","href":"/api-reference/nfts/get-nft-tokens-by-account"},{"title":"Get NFT tokens by collection","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/tokens/by_collection/{collection_addr}","href":"/api-reference/nfts/get-nft-tokens-by-collection"},{"title":"Get NFT transactions","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/nft/v1/txs/{collection_addr}/{token_id}","href":"/api-reference/nfts/get-nft-transactions"}]},{"group":"Rich List","pages":[{"title":"Get token holders","deprecated":null,"version":null,"openapi":"/api-reference/rollup-indexer/openapi.yaml get /indexer/richlist/v1/{denom}","href":"/api-reference/rich-list/get-token-holders"}]}]}]},{"tab":"AI","pages":[{"title":"AI","href":"/ai/overview"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/developer/initia-l1"}]}]},"basePath":"","title":"Compute Route - Initia Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}