GET /v2/orchestration/routes lists every asset Orchestra can move and, for each asset, the destinations it can reach. Use it with /estimate and /quote, then submit the funded deposit for delivery.
Bitcoin remains a central rail. Orchestra also routes stablecoins and other assets between supported networks without requiring BTC on either side of the transaction.
What a route defines
A route is an ordered pair of asset endpoints:
The live catalog changes as chains, assets, and provider capacity change. Query it at runtime instead of copying a static list into your application.
Response shape
The response is{ assets: [...] } with one entry per supported asset. Each entry carries the asset’s identity, metadata, and a route object holding three destination sets:
id is the asset’s canonical identity, <chain>:<asset> (for example ton:TON, hypercore:USDC). Every destination set contains these ids.
Read capability from set membership, not from the asset symbol. Two assets with the same symbol on different chains can differ.
Destination set encodings
Each set is written in whichever of three forms is smallest:"all": every other asset in the response. Never includes the asset itself.["a:X", "b:Y", ...]: exactly those destinations. An empty array means none.{ "except": [...] }: every other asset except the listed ids.
base:USDC -> spark:BTC is supported:
Asset detail fields
Discover live pairs
No authentication is required:How Orchestra prices a route
Orchestra quotes compatible paths and providers in parallel when a route has more than one available option. It ranks viable plans by net destination output after route fees and estimated execution gas, then returns the strongest result received inside the pricing window. Not every route has several eligible paths. Market liquidity, provider availability, confirmation policy, and route controls can narrow the candidates for a given request. An Orchestra quote reports the best executable result available to Orchestra at that moment, not a comparison against every venue in the market. This matters most for stablecoin routing. The same source and destination pair may be served by a direct transfer, a bridge, an intermediate stablecoin, or a swap venue. Your integration sends one quote request and receives one deposit instruction.Amount and delivery constraints
The same API serves user payments and large transfers. Every request remains subject to the selected pair’s live bounds and available liquidity.GET /v1/orchestration/limits reports typed bounds for canonical routes. Some generalized planner routes appear on /routes but not /limits today. Call /estimate while the user edits an amount, handle amount errors from /estimate or /quote, and avoid presenting a route as available based on the catalog alone.
Generalized routes currently use exact-in, variable delivery unless the destination appears in the source asset’s exactOutTo or fixedTo set. Amounts covers amount modes and bounds. Pricing covers estimate, quote, and delivery semantics.