# LayerHop Docs > Developer docs for LayerHop: one API and SDK for best-price cross-chain and same-chain swaps across Jupiter, Relay, deBridge, 0x and LI.FI. Non-custodial. LayerHop docs are also available as one Markdown file for LLMs: https://docs.layerhop.com/llms-full.txt ## Get started - [Introduction](https://docs.layerhop.com/): LayerHop is one API and SDK for best-price cross-chain and same-chain swaps. It compares Jupiter, Relay, deBridge, 0x and LI.FI on every trade and never holds your funds. - [Quickstart](https://docs.layerhop.com/quickstart): Quote, build, sign and track your first LayerHop swap with the TypeScript SDK, viem and a Solana wallet — in under 10 minutes. ## Concepts - [Meta-aggregation](https://docs.layerhop.com/concepts/meta-aggregation): How one LayerHop quote fans out to every eligible provider in parallel, and what you get back. - [Providers & ranking](https://docs.layerhop.com/concepts/providers-and-ranking): How LayerHop orders quotes — by time-adjusted output for the user, never by what a route pays LayerHop. - [Fees & channels](https://docs.layerhop.com/concepts/fees-and-channels): LayerHop's fee per channel (web, widget, api, bot), how it is applied through each provider, and how it is reported. - [Approvals](https://docs.layerhop.com/concepts/approvals): When an EVM transaction comes with an ERC-20 approval, what it means and how to send it safely. - [The submitViaApi flow](https://docs.layerhop.com/concepts/submit-via-api): Why some Solana transactions must be signed by the wallet but submitted through POST /v1/orders/submit, and how to do it. - [Order tracking](https://docs.layerhop.com/concepts/order-tracking): How to follow an order to completion with GET /v1/orders/{provider}/{id} or sdk.watch(), and what id to use per provider. - [Non-custodial model](https://docs.layerhop.com/concepts/non-custodial): LayerHop never holds user funds or keys — transactions go from the user's wallet straight to audited provider contracts. ## Guides - [EVM → Solana swap](https://docs.layerhop.com/guides/evm-to-solana): Bridge USDC on Base into SOL on Solana end to end — quote, approve, send with viem, and track the order. - [Solana → EVM swap](https://docs.layerhop.com/guides/solana-to-evm): Move SOL or USDC from Solana to an EVM chain — sign the base64 VersionedTransaction with a Solana wallet and track the order. - [Same-chain swaps](https://docs.layerhop.com/guides/same-chain): Swap tokens on one chain — Jupiter on Solana, 0x/Relay/LI.FI on EVM — and confirm them on chain. - [Embed the widget](https://docs.layerhop.com/guides/embed-widget): Put a LayerHop swap card in any site with an iframe, configure it with URL parameters, and listen to its postMessage events. - [Deep links](https://docs.layerhop.com/guides/deep-links): Link straight into a prefilled LayerHop swap with /swap URL parameters, and to the order explorer. - [Error handling & retries](https://docs.layerhop.com/guides/error-handling): Branch on stable error codes, know which errors to retry, and recover from expired quotes and provider outages. ## Reference - [API reference](https://docs.layerhop.com/api-reference): Every LayerHop REST endpoint, parameter and schema — generated from openapi.yaml (API 0.1.0). - [SDK reference](https://docs.layerhop.com/sdk): The @layerhop/sdk TypeScript client — LayerHop class options, quote, buildTx, submit, status, watch, types and errors. - [Error codes](https://docs.layerhop.com/errors): Every stable LayerHop error code with its HTTP status, cause and fix. - [Supported chains & tokens](https://docs.layerhop.com/chains): The 7 chains and 18 built-in tokens LayerHop routes today, generated from the shared registry. - [Providers](https://docs.layerhop.com/providers): The liquidity providers behind LayerHop — Jupiter, Relay, deBridge, 0x, LI.FI — what each covers, how fees and tracking work, and what is coming. ## Resources - [Changelog](https://docs.layerhop.com/changelog): What changed in the LayerHop API, SDK and docs, newest first. - [FAQ](https://docs.layerhop.com/faq): Answers to common questions about LayerHop fees, custody, amounts, chain ids, testnets, quote expiry and order status. ## Optional - [INVALID_PARAMS](https://docs.layerhop.com/errors/INVALID_PARAMS): Invalid parameters: A required parameter is missing or malformed, or the request is not allowed for this provider. - [UNSUPPORTED_CHAIN](https://docs.layerhop.com/errors/UNSUPPORTED_CHAIN): Unsupported chain: The chain id or slug is not in LayerHop's chain registry, or a provider does not serve it. - [UNSUPPORTED_TOKEN](https://docs.layerhop.com/errors/UNSUPPORTED_TOKEN): Unsupported token: A provider does not recognise or will not route the source or destination token. - [AMOUNT_TOO_SMALL](https://docs.layerhop.com/errors/AMOUNT_TOO_SMALL): Amount too small: The input amount is zero or below the provider's minimum. - [AMOUNT_TOO_LARGE](https://docs.layerhop.com/errors/AMOUNT_TOO_LARGE): Amount too large: The input amount exceeds what a provider can fill. - [NO_ROUTE](https://docs.layerhop.com/errors/NO_ROUTE): No route: No provider supports this route, or every provider that does failed to quote. - [QUOTE_NOT_FOUND](https://docs.layerhop.com/errors/QUOTE_NOT_FOUND): Quote not found: The `quoteId` is unknown to this API instance, or the provider can no longer build it. - [QUOTE_EXPIRED](https://docs.layerhop.com/errors/QUOTE_EXPIRED): Quote expired: The quote is past its `expiresAt` and can no longer be built. - [ORDER_NOT_FOUND](https://docs.layerhop.com/errors/ORDER_NOT_FOUND): Order not found: The provider does not know the order id or transaction hash. - [PROVIDER_ERROR](https://docs.layerhop.com/errors/PROVIDER_ERROR): Provider error: An upstream liquidity provider returned an error or an unusable response. - [PROVIDER_TIMEOUT](https://docs.layerhop.com/errors/PROVIDER_TIMEOUT): Provider timeout: An upstream provider did not answer in time. - [RATE_LIMITED](https://docs.layerhop.com/errors/RATE_LIMITED): Rate limited: An upstream provider rate-limited LayerHop. - [UNAUTHORIZED](https://docs.layerhop.com/errors/UNAUTHORIZED): Unauthorized: A provider rejected LayerHop's credentials. - [INTERNAL](https://docs.layerhop.com/errors/INTERNAL): Internal error: An unexpected error inside LayerHop.