Supported chains, and the assets solvers connected now advertise on each. anyAsset is true when any token with
enough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has
same-chain swaps, whose routers price any token.
Each asset has a logoURI (null until one is found) and verified: true when CoinGecko lists the token at that
address. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show
a quote leg’s logo, look up its (chain, asset) here.
GET
/
v1
/
chains
List chains
curl --request GET \ --url https://api.ternswap.xyz/v1/chains \ --header 'x-api-key: <api-key>'
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tern","description":"Cross-chain and same-chain swaps on any supported chain. Every swap completes or refunds.","colors":{"primary":"#212121","light":"#F4F4F4","dark":"#212121"},"logo":{"light":"/logo/ink.svg","dark":"/logo/paper.svg","href":"https://ternswap.xyz"},"favicon":"/favicon.svg","api":{"openapi":"api-reference/openapi.json","playground":{"display":"interactive"}},"appearance":{"default":"light","strict":true},"background":{"color":{"light":"#EBEBEB","dark":"#EBEBEB"}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Contact"},{"href":"https://ternswap.xyz","label":"ternswap.xyz"}],"primary":{"type":"button","label":"Launch app","href":"https://tern-app-staging.unitlabs.xyz"}},"seo":{"metatags":{"og:image":"/images/og.png","twitter:card":"summary_large_image"}},"fonts":{"heading":{"family":"Satoshi","weight":700,"source":"fonts/Satoshi-Variable.woff2","format":"woff2"},"body":{"family":"Intrade","weight":400,"source":"fonts/Intrade-Regular.woff2","format":"woff2"}},"styling":{"codeblocks":"system"},"integrations":{"telemetry":{"enabled":false}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"hasAudioNarration":false,"customDomains":[],"gitSource":{"type":"github","owner":"local","repo":"local","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"local","isBase":true},"buildId":"local","clientVersion":"0.0.4110"},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false,"isLoggedInCli":false,"mintExport":{}},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"Geist Mono\";src:url(\"/fonts/GeistMono-Variable.woff2\") format(\"woff2\");font-weight:100 900;font-display:swap}@font-face{font-family:\"Satoshi\";src:url(\"/fonts/Satoshi-Variable.woff2\") format(\"woff2\");font-weight:300 900;font-display:swap}:root{--tern-ink: #212121;--tern-paper: #f4f4f4;--tern-surface: #ffffff;--tern-hairline: rgb(33 33 33 / 0.08);--tern-hairline-strong: rgb(33 33 33 / 0.16);--tern-track: rgb(33 33 33 / 0.06)}*,*::before,*::after{box-shadow:none!important;text-shadow:none!important}:focus-visible{outline:1.5px solid var(--tern-ink);outline-offset:2px}code,pre,kbd,samp,.font-mono{font-family:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace!important}h1,h2,h3,h4{font-family:\"Satoshi\", ui-sans-serif, system-ui, sans-serif;letter-spacing:-0.01em}h1{font-weight:700}h2,h3,h4{font-weight:600}#search-bar-entry{background:var(--tern-surface)!important;border:1px solid var(--tern-hairline)!important}#sidebar a[aria-current=\"page\"],#sidebar li[data-active=\"true\"]>a{background:var(--tern-surface)!important;color:var(--tern-ink)!important;border:1px solid var(--tern-hairline)}[data-callout-type]{background:var(--tern-surface)!important;border:1px solid var(--tern-hairline)!important}[data-callout-type],[data-callout-type] *{color:var(--tern-ink)!important}[data-callout-type] svg{color:var(--tern-ink)!important;fill:currentColor}[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]{border:1.5px solid var(--tern-ink)!important}pre,[data-component-part=\"code-block-root\"],.code-block,.card,[data-component-part=\"card\"]{border-color:var(--tern-hairline)!important}.method-pill,[class*=\"bg-green-400/20\"],[class*=\"bg-blue-400/20\"],[class*=\"bg-yellow-400/20\"],[class*=\"bg-orange-400/20\"],[class*=\"bg-red-400/20\"],[class*=\"bg-[#3064E3]\"]{color:var(--tern-ink)!important;border:1px solid transparent}[class*=\"bg-green-400/20\"]{background:var(--tern-surface)!important;border-color:var(--tern-hairline-strong)!important}[class*=\"bg-blue-400/20\"],[class*=\"bg-[#3064E3]\"]{background:var(--tern-ink)!important;color:var(--tern-paper)!important}[class*=\"bg-yellow-400/20\"],[class*=\"bg-orange-400/20\"]{background:var(--tern-track)!important}[class*=\"bg-red-400/20\"]{background:transparent!important;border:1px dashed var(--tern-ink)!important}.tryit-button{background:var(--tern-ink)!important;color:var(--tern-paper)!important}[data-component-part=\"field-required-pill\"]{background:var(--tern-track)!important;color:var(--tern-ink)!important}pre code,pre [class*=\"font-mono\"]{filter:grayscale(1)}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}"}],"page":{"pagePath":"api-reference/chains/list-chains","slug":"/api-reference/chains/list-chains","pageMetadata":{"openapi":"/api-reference/openapi.json GET /v1/chains","description":"Supported chains, and the assets solvers connected now advertise on each. `anyAsset` is true when any token with\nenough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has\nsame-chain swaps, whose routers price any token.\n\nEach asset has a `logoURI` (null until one is found) and `verified`: true when CoinGecko lists the token at that\naddress. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show\na quote leg's logo, look up its (chain, asset) here.","href":"/api-reference/chains/list-chains","title":"List chains"},"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: [_jsxs(_components.p, {\n children: [\"Supported chains, and the assets solvers connected now advertise on each. \", _jsx(_components.code, {\n children: \"anyAsset\"\n }), \" is true when any token with\\nenough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has\\nsame-chain swaps, whose routers price any token.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Each asset has a \", _jsx(_components.code, {\n children: \"logoURI\"\n }), \" (null until one is found) and \", _jsx(_components.code, {\n children: \"verified\"\n }), \": true when CoinGecko lists the token at that\\naddress. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show\\na quote leg’s logo, look up its (chain, asset) here.\"]\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":{"codeStyling":"system","config":{},"pageMetadata":{"openapi":"/api-reference/openapi.json GET /v1/chains","description":"Supported chains, and the assets solvers connected now advertise on each. `anyAsset` is true when any token with\nenough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has\nsame-chain swaps, whose routers price any token.\n\nEach asset has a `logoURI` (null until one is found) and `verified`: true when CoinGecko lists the token at that\naddress. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show\na quote leg's logo, look up its (chain, asset) here.","href":"/api-reference/chains/list-chains","title":"List chains"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/localhost/095442d7f85c8988/smooth-scroll.js"],"openApiReferenceData":{"operation":{"tags":["chains"],"summary":"List chains","description":"Supported chains, and the assets solvers connected now advertise on each. `anyAsset` is true when any token with\nenough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has\nsame-chain swaps, whose routers price any token.\n\nEach asset has a `logoURI` (null until one is found) and `verified`: true when CoinGecko lists the token at that\naddress. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show\na quote leg's logo, look up its (chain, asset) here.","operationId":"list_chains","responses":{"200":"ac8f457d-461d-465f-bb38-7b2e0768742a","401":"e70db47f-49d1-4cf9-adae-81cf327c642f","429":"0ae15c9c-2e5d-45cc-b20c-57cb5efef1c7","500":"d339cd5c-bba3-41d8-a7e9-4f9b13f545ba"},"security":["ff835983-5e5c-4135-a40a-2a96dd6af167","1857d63c-4a49-492d-8013-232fd0c2d7fb"],"method":"get","type":"path","servers":["94e17e01-c458-4ed3-b14c-73d83eb8f534"],"path":"/v1/chains","baseUrlOptions":["https://api.ternswap.xyz"],"title":"List chains","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"ac8f457d-461d-465f-bb38-7b2e0768742a":{"description":"Supported chains, ordered by slug","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"A supported chain.","required":["chain","type","chainId","escrow","assets","anyAsset"],"properties":{"anyAsset":{"type":"boolean","description":"True when at least one connected solver accepts any token with enough DEX liquidity on this chain.","isRequired":true,"uniqueKey":"items.[INDEX].anyAsset","typeLabel":"boolean"},"assets":{"type":"array","items":{"type":"object","required":["asset","symbol","decimals"],"properties":{"asset":{"type":"string","description":"Token address, or `native`.","isRequired":true,"uniqueKey":"items.[INDEX].assets.items.[INDEX].asset","typeLabel":"string"},"decimals":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"items.[INDEX].assets.items.[INDEX].decimals","typeLabel":"integer\u003cint32>"},"symbol":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].assets.items.[INDEX].symbol","typeLabel":"string"},"logoURI":{"oneOf":[{"type":"string","description":"The token's logo, when one is known. Logos are looked up by address, never by symbol.","uniqueKey":"items.[INDEX].assets.items.[INDEX].logoURI.oneOf.0","typeLabel":"string"},{"type":"null","description":"The token's logo, when one is known. Logos are looked up by address, never by symbol.","uniqueKey":"items.[INDEX].assets.items.[INDEX].logoURI.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].assets.items.[INDEX].logoURI","typeLabel":"string | null"},"verified":{"type":"boolean","description":"True when a curated list (CoinGecko) knows the token at this address; an unverified token may imitate\nanother's symbol.","uniqueKey":"items.[INDEX].assets.items.[INDEX].verified","typeLabel":"boolean"}},"uniqueKey":"items.[INDEX].assets.items.[INDEX]","typeLabel":"object"},"description":"Assets that connected solvers advertise explicitly.","isRequired":true,"uniqueKey":"items.[INDEX].assets","typeLabel":"object[]"},"chain":{"type":"string","description":"The chain's slug, as used everywhere in the API.","example":"base","isRequired":true,"uniqueKey":"items.[INDEX].chain","typeLabel":"string"},"chainId":{"oneOf":[{"type":"integer","description":"The EIP-155 chain ID (a number) for EVM chains; the `starknet_chainId` value (a hex string) for Starknet.","format":"int64","minimum":0,"isRequired":true,"uniqueKey":"items.[INDEX].chainId.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","description":"The EIP-155 chain ID (a number) for EVM chains; the `starknet_chainId` value (a hex string) for Starknet.","isRequired":true,"uniqueKey":"items.[INDEX].chainId.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"items.[INDEX].chainId","typeLabel":"integer\u003cint64> | string"},"escrow":{"type":"string","description":"The escrow contract, in canonical lowercase hex.","isRequired":true,"uniqueKey":"items.[INDEX].escrow","typeLabel":"string"},"type":{"type":"string","enum":["evm","starknet","solana","bitcoin"],"isRequired":true,"uniqueKey":"items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"items.[INDEX]","typeLabel":"object"},"uniqueKey":"","typeLabel":"object[]"},"example":[{"anyAsset":true,"assets":[{"asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","decimals":6,"logoURI":"https://assets.coingecko.com/coins/images/6319/large/USDC.png","symbol":"USDC","verified":true}],"chain":"base","chainId":8453,"escrow":"0x53cac833e629e7453197a2808da550dd9c535d6d","type":"evm"},{"anyAsset":false,"assets":[{"asset":"0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8","decimals":6,"logoURI":null,"symbol":"USDC","verified":false}],"chain":"starknet","chainId":"0x534e5f4d41494e","escrow":"0x0412cfc5d8b6e0b1a0f8c1e5d2b7a9c4e3f6d8b1a2c5e7f9d0b3a6c8e1f4d7b2","type":"starknet"}],"examples":{"Example":{"title":"Example","value":[{"anyAsset":true,"assets":[{"asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","decimals":6,"logoURI":"https://assets.coingecko.com/coins/images/6319/large/USDC.png","symbol":"USDC","verified":true}],"chain":"base","chainId":8453,"escrow":"0x53cac833e629e7453197a2808da550dd9c535d6d","type":"evm"},{"anyAsset":false,"assets":[{"asset":"0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8","decimals":6,"logoURI":null,"symbol":"USDC","verified":false}],"chain":"starknet","chainId":"0x534e5f4d41494e","escrow":"0x0412cfc5d8b6e0b1a0f8c1e5d2b7a9c4e3f6d8b1a2c5e7f9d0b3a6c8e1f4d7b2","type":"starknet"}]}},"exampleType":"examples"}},"exampleType":"examples"},"e70db47f-49d1-4cf9-adae-81cf327c642f":{"description":"x-api-key is not a valid API key","content":{"application/problem+json":{"schema":{"type":"object","description":"The body of every error response.","required":["type","title","status","code","detail"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code. Clients branch on this, never on `title` or `detail`.","enum":["invalid_request","unauthorized","not_found","method_not_allowed","rate_limited","unsupported_chain","unsupported_asset","amount_too_small","amount_too_large","no_route","condition_reused","quote_not_found","quote_expired","not_ready","invalid_fulfillment","destination_not_ready","invalid_private_transaction","payload_too_large","timeout","internal"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"A human-readable explanation of this occurrence.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"The HTTP status phrase.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"Always `about:blank`: `code` carries the error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_request","detail":"\u003cstring>","status":1,"title":"\u003cstring>","type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"0ae15c9c-2e5d-45cc-b20c-57cb5efef1c7":{"description":"Too many requests from this partner, or from this address without an API key","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until a request is accepted again"}},"content":{"application/problem+json":{"schema":{"type":"object","description":"The body of every error response.","required":["type","title","status","code","detail"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code. Clients branch on this, never on `title` or `detail`.","enum":["invalid_request","unauthorized","not_found","method_not_allowed","rate_limited","unsupported_chain","unsupported_asset","amount_too_small","amount_too_large","no_route","condition_reused","quote_not_found","quote_expired","not_ready","invalid_fulfillment","destination_not_ready","invalid_private_transaction","payload_too_large","timeout","internal"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"A human-readable explanation of this occurrence.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"The HTTP status phrase.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"Always `about:blank`: `code` carries the error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_request","detail":"\u003cstring>","status":1,"title":"\u003cstring>","type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"d339cd5c-bba3-41d8-a7e9-4f9b13f545ba":{"description":"Internal error","content":{"application/problem+json":{"schema":{"type":"object","description":"The body of every error response.","required":["type","title","status","code","detail"],"properties":{"code":{"type":"string","description":"A stable, machine-readable error code. Clients branch on this, never on `title` or `detail`.","enum":["invalid_request","unauthorized","not_found","method_not_allowed","rate_limited","unsupported_chain","unsupported_asset","amount_too_small","amount_too_large","no_route","condition_reused","quote_not_found","quote_expired","not_ready","invalid_fulfillment","destination_not_ready","invalid_private_transaction","payload_too_large","timeout","internal"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"A human-readable explanation of this occurrence.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":0,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"The HTTP status phrase.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"Always `about:blank`: `code` carries the error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_request","detail":"\u003cstring>","status":1,"title":"\u003cstring>","type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ff835983-5e5c-4135-a40a-2a96dd6af167":{},"1857d63c-4a49-492d-8013-232fd0c2d7fb":{"api_key":{"type":"apiKey","in":"header","name":"x-api-key","description":"A partner's API key. Optional: without it a request is anonymous. An invalid key is `401 unauthorized`.","scopes":[],"schemeName":"api_key"}}},"servers":{"94e17e01-c458-4ed3-b14c-73d83eb8f534":{"url":"https://api.ternswap.xyz"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"A partner's API key. Optional: without it a request is anonymous. An invalid key is `401 unauthorized`.","scopes":[],"schemeName":"api_key"},"schema":{"title":"x-api-key","type":"string","description":"A partner's API key. Optional: without it a request is anonymous. An invalid key is `401 unauthorized`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api_key","name":"x-api-key"}],"title":"api_key"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"localhost","siteName":"Tern","title":"List chains - Tern","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"api-reference/chains/list-chains.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Supported chains, and the assets solvers connected now advertise on each. anyAsset is true when any token with enough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has same-chain swaps, whose routers price any token. Each asset has a logoURI (null until one is found) and verified: true when CoinGecko lists the token at that address. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show a quote leg\u0026#x27;s logo, look up its (chain, asset) here.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tern\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/favicons/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicons/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicons/favicon-16x16.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicons/favicon.ico\">\u003cmeta data-mint-head property=\"og:title\" content=\"List chains - Tern\">\u003cmeta data-mint-head property=\"og:description\" content=\"Supported chains, and the assets solvers connected now advertise on each. anyAsset is true when any token with enough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has same-chain swaps, whose routers price any token. Each asset has a logoURI (null until one is found) and verified: true when CoinGecko lists the token at that address. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show a quote leg\u0026#x27;s logo, look up its (chain, asset) here.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tern\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://local./api-reference/chains/list-chains\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://local.mintlify.site/images/og.png\">\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=\"List chains - Tern\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Supported chains, and the assets solvers connected now advertise on each. anyAsset is true when any token with enough DEX liquidity can be quoted on the chain: a connected solver accepts any token there, or the chain has same-chain swaps, whose routers price any token. Each asset has a logoURI (null until one is found) and verified: true when CoinGecko lists the token at that address. Logos are matched by address, never by symbol, so an unverified token may carry a familiar symbol. To show a quote leg\u0026#x27;s logo, look up its (chain, asset) here.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://local.mintlify.site/images/og.png\">\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=\"/favicons/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tern\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#212121\">\u003clink data-mint-head rel=\"canonical\" href=\"https://local./api-reference/chains/list-chains\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/chains/list-chains.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tern\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Tern\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/chains/list-chains.md","siteName":"Tern","nav":{"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authentication and limits","href":"/api-reference/authentication"},{"title":"Idempotency","href":"/api-reference/idempotency"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Quotes","pages":[{"title":"Get a quote","openapi":"/api-reference/openapi.json POST /v1/quote","href":"/api-reference/quotes/get-a-quote"},{"title":"Get a quote's status","openapi":"/api-reference/openapi.json GET /v1/quote/{id}","href":"/api-reference/quotes/get-a-quotes-status"},{"title":"Search quotes","openapi":"/api-reference/openapi.json GET /v1/quotes","href":"/api-reference/quotes/search-quotes"},{"title":"Reveal the fulfillment","openapi":"/api-reference/openapi.json POST /v1/quote/{id}/fulfill","href":"/api-reference/quotes/reveal-the-fulfillment"},{"title":"Submit a private swap","description":"Hands the private swap the user's wallet proved (`strk20PrepareInvoke` over the quote's `execute.strk20`) to Tern's\nrelayer. The relayer simulates it with its proof and sends it only if it calls the pool's `apply_actions`, pays the\nrelayer the quoted fee, and swaps for this quote; its account is the sender, so the user's never appears. Submit\nbefore `expiresAt`. A repeated call returns the same transaction.","openapi":"/api-reference/openapi.json POST /v1/quote/{id}/submit","href":"/api-reference/quotes/submit-a-private-swap"}]},{"group":"Chains","pages":[{"title":"List chains","openapi":"/api-reference/openapi.json GET /v1/chains","href":"/api-reference/chains/list-chains"}]},{"group":"Indexing","pages":[{"title":"Index a transaction now","description":"Optional: the indexer finds every deposit and fulfill on its own. Sending a transaction's hash right after it is\nmined makes the quote's status move sooner.","openapi":"/api-reference/openapi.json POST /v1/index","href":"/api-reference/index/index-a-transaction-now"}]}]}]},"basePath":"","title":"List chains - Tern","buildId":"f07417d3103b","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-ChNWifjS.js","utils-B09uz9kC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CgWydDvv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-ntwvlSPp.js","snippetPresets-VMJFyqCh.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLDXeNDs.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DHPXAtXl.js","shallow-Duo57Vxn.js","getApiPlaygroundDisplay-CJ0QNjPo.js","CodeSnippet-CwkzYS8z.js","CodeSnippets-BbGP_deU.js","Page-DhXAHNm9.js","getPastedJson-Dlkoi053.js","icon-CVIEM2zz.js","MethodPill-Ba__0K3g.js","DuplicateIcon-DqYcNKiH.js","createIcon-BLD1akSv.js","DynamicMarkdown-CVycGnMV.js","SectionHeading-FgN64qHU.js","axios-vUo_bRtp.js","Markdown-B4Xl-lWO.js","clsx-BFciZbw6.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BhSdXnAe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DWTt8oHl.js"]}