sourceAsset or destinationAsset and Orchestra routes it, whether or not the token appears in /routes. The token is swapped against a listed stablecoin on its own chain; everything between the two stablecoins is an ordinary route.
Routing
solana:USDC or base:USDC. Orchestra measures value only in hubs. Order bounds and fees are measured in the hub, and no fee is ever taken in the token, so feeAsset is always a stablecoin. A token never crosses chains, and two tokens on one chain still pass through a hub. Swaps price against Jupiter on Solana and a race of DEX venues on EVM chains.
Supported chains
GET /v2/orchestration/routes returns tokenSupport, one entry per chain where your key can name tokens by address:
source,destination:anyaccepts any token address at that end;listedaccepts only assets inassets.via: the hubs on that chain. A destination token is reachable from asset A when A is a hub or A’sroute.tocontains one. A source token reaches asset B when B is a hub or a hub’sroute.tocontains B.
destination and source say which ends your key may use the token at. An address the registry lists resolves to that listed asset instead. Name, symbol, and decimals are read from the token contract or mint. The issuer chooses the name and symbol, so show the address beside them.
Quote
Send the address in place of the symbol. EVM addresses can be lowercase or checksummed; Solana mints are case-sensitive. 10 USDC on Solana into BONK:Replace
SERVER_KEY with your fn_... key. Use a new X-Idempotency-Key for each operation and reuse it when retrying that same request. Amounts are integer strings in the asset’s smallest unit: "100000" is 0.001 BTC; "50000000" is 50 USDC on Base. Read each asset’s decimals from /routes.- Only exact-in with variable delivery.
exact_outanddeliveryMode: "fixed"returnunsupported_amount_mode. - A source token requires
refundAddresson the source chain. - A destination token adds
minAmountOut, the least of the token the recipient receives, andfallback, what the recipient receives instead if the swap cannot reach it. sourceanddestinationdescribe each end. Read the token’sdecimalsthere.
Outcomes
Each end has two outcomes, both fixed by the quote.- Source token: sold at or above the quote’s floor. If the sale cannot happen, the deposit is returned in full, in the same token, to
refundAddress, and the order endsrefunded. - Destination token: at least
minAmountOutreaches the recipient, or at leastfallback.minAmountof the hub does on the destination chain. A fallback order endsfallback_deliveredwithfallbackAsset,fallbackAmount, andfallbackTxHash, andamountOutis null. Its webhook isorder.completedwithdata.statusset tofallback_delivered.
processing. On Solana the swap delivers straight to the recipient, and the same transaction enforces minAmountOut.
Refused tokens
Orchestra reads the token from its chain before quoting and refuses:- tokens with more than 18 decimals;
- Solana Token-2022 mints with a transfer fee, transfer hook, pausable, default account state, interest-bearing, scaled UI amount, non-transferable, or confidential-transfer extension, or any extension it does not recognize;
- as a source, Solana mints with a freeze authority or permanent delegate, since the issuer could freeze or move the deposit while Orchestra holds it;
- tokens on the Flashnet denylist.
token_unsupported or token_blocked. A token with no route to or from a hub returns insufficient_liquidity, and order value above the cap, measured in the hub, returns amount_too_large. See Errors.
An EVM source deposit is credited from the deposit address’s balance change, not from the token’s transfer events. A token that takes a fee on transfer or rebases cannot prove its deposit, so the order is held for an operator instead of sold.