Skip to main content
Orchestra uses the same quote and order flow for stablecoin transfers and native-asset swaps as it does for Bitcoin routes. This guide covers two live pairs: USDT on Ethereum to USDT on Tron, and ETH on Ethereum to USDC on Base. Both currently use exact-in, variable delivery. Check GET /v1/orchestration/routes before presenting either pair because route availability and capability flags can change.

Before you start

Create an account in the Orchestra dashboard. After Flashnet approves the account, create a server key for the authenticated quote and submit calls. Use the public /estimate endpoint while a user edits their amount. Call /quote when they commit to the swap.

USDT on Ethereum to USDT on Tron

This route moves a stablecoin balance between networks without changing its display symbol. The chain and token contract identify each endpoint:

Preview the price

This request prices 1,000 USDT. The amount is 1000000000 because Ethereum USDT has 6 decimals.
Read estimatedOut, feeAmount, feeAsset, and route from the response. estimatedOut is the projected Tron USDT delivery after quoted fees.

Create the quote

recipientAddress must be a Tron address that can receive USDT.
The response includes an Ethereum depositAddress, the required amountIn, and a 2 minute expiresAt. Send Ethereum USDT to that address before expiry.

ETH on Ethereum to USDC on Base

This route starts with a native asset and delivers an ERC-20 stablecoin. amount is denominated in wei; Base USDC uses 6 decimals.

Preview the price

This request prices 0.1 ETH, or 100000000000000000 wei.
The route can contain more than one execution leg. Orchestra currently prices this pair through Ethereum ETH, Base ETH, and Base USDC. Treat the response route as execution metadata, not a sequence your client must reproduce.

Create the quote

recipientAddress must be an address on Base.
Send native ETH to the returned Ethereum depositAddress. Do not send WETH or another ERC-20 token to a native ETH deposit instruction.

Fund and submit the quote

For either example:
  1. Send exactly amountIn of the source asset to depositAddress before expiresAt.
  2. Submit the source transaction hash. Include sourceAddress so Orchestra can match the sender during deposit verification.
  3. Track the resulting order by webhook. Status polling is a fallback.

Route constraints

Both examples are exact-in and variable-delivery routes today. Their /routes entries report exactOutEligible: false and fixedEligible: false. Omit amountMode and deliveryMode to use those defaults. Generalized routes can appear on /routes without a /limits entry. An amount that exceeds live policy or liquidity fails at /estimate or /quote; handle that response instead of assuming every listed pair accepts every size. The quoted estimatedOut remains firm for 2 minutes. A late deposit is repriced against the quote’s slippageBps and refunds when it cannot execute inside that bound.

Next steps

  • Quickstart: Complete lifecycle and submit shapes
  • Supported Routes: Live pairs, decimals, and capability flags
  • Pricing: Estimates, quotes, slippage, and fixed delivery
  • Webhooks: Order status events and signature verification