Skip to main content
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:
Current examples include: 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.
Expand any of them the same way:
To test whether base:USDC -> spark:BTC is supported:

Asset detail fields

Discover live pairs

No authentication is required:
This example lists the destinations currently available for Base USDC, expanding all three set encodings:

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.

Bitcoin routes

Bitcoin L1, Lightning, and Spark routes use the same API and add Bitcoin-specific capabilities where they apply. These include Lightning invoices, ZeroConf processing for eligible Bitcoin L1 deposits, direct BTC delivery, and USDB settlement on Spark. Use the dedicated guides for Bitcoin flows: For routes without a BTC endpoint, use General Swaps.

Start building

Create an account in the Orchestra dashboard. Flashnet reviews new accounts before enabling API access. Once approved, continue with the Quickstart.