Skip to main content
Flashnet Orchestra is an async orchestration API for moving between BTC and stablecoins. It gives you deposit instructions, executes the route, and delivers the output asset to your recipient.

What It Does

Partners specify source asset, destination asset, amount, and recipient. Orchestra returns a deposit instruction and then advances the order through deposit detection, execution, and delivery. You integrate the same interface across routes:
  • POST /v1/orchestration/quote to get depositAddress and quote metadata
  • fund the deposit instruction (address or invoice)
  • POST /v1/orchestration/submit to create the order
  • track progress via webhooks or GET /v1/orchestration/status

Use Cases

Chains and Assets

Orchestra currently supports:
  • Chains: base, solana, spark, bitcoin, lightning
  • Assets: USDC, USDB, BTC, ETH (Base), SOL (Solana)
Supported routes are documented in:

Roadmap

Orchestra will expand to support cross-chain routing through third-party bridge and swap protocols such as Garden, THORChain, and others. This will add coverage for additional chains and assets while maintaining the same quote/submit/webhook interface. Partners will not need to change their integration when new routes are added.

How It Works

Under the hood, Orchestra combines three primitives:
  1. Bridge: Bridges stablecoin value between Base/Solana and Spark legs.
  2. AMM: Swaps USDB and BTC on Spark liquidity.
  3. Bitcoin ingress handling: Supports both confirmation-based and ZeroConf-assisted L1 deposit processing.
Partners do not integrate these primitives directly. The API abstracts them as quote, submit, status, and webhook flows.

Execution Model

Quotes are durable objects that expire after 30 minutes. For standard exact-in quotes, execution enforces configured slippage (slippageBps, default 50). Some routes expose price-lock metadata and can move into awaiting_approval when constraints are not met. Partners then resolve the order with one of:
  • POST /v1/orchestration/reprice/approve
  • POST /v1/orchestration/reprice/reject
  • POST /v1/orchestration/reprice/refund (Bitcoin source orders)
See Quickstart for exact-out and repricing handling.

Fees

Swaps have two cost components, both embedded in the quoted output amount:
  • Platform fee: 0.05% (5 bps). Always denominated in the stablecoin side of the swap (USDC for most routes, USDB for the BTC/USDB direct pair). This is Flashnet’s fee.
  • LP pool fee: ~0.05% (~5 bps). Charged by the BTC/USDB pool on Spark in the input asset. When selling BTC, the LP fee is in BTC. When buying BTC with stablecoins, the LP fee is in USDB. This goes to liquidity providers, not Flashnet. The exact amount varies with pool depth and trade size.
Total cost is ~0.10% (~10 bps). Both fees are embedded in the quoted output. The user sends X, receives the quoted Y. No gas fees, no separate line items. Optional affiliate fees allocate an app fee to one or more recipients on supported routes. Affiliate fees:
  • are specified inline via appFees or via a registered affiliateId
  • are always settled in USDC on Base or Solana
  • require amountMode=exact_in
See Quickstart for constraints and examples.

Settlement

  • BTC settles to Spark wallets.
  • Stablecoins settle to Base or Solana addresses.
  • Final order statuses are completed, failed, or refunded.
  • Partners track progress via webhooks or GET /v1/orchestration/status.
For ZeroConf-enabled Bitcoin L1 flows, some deposits can execute in two legs (instant then holdback). Holdback value is processed on confirmation and delivered in the same order unless the remainder is below minimum swap size (dust).

What Partners Do Not Need

  • Spark protocol integration
  • Direct liquidity management
  • Bitcoin node operations
  • Bridge infrastructure management

What Partners Do Need

  • Ability to fund the provided deposit instruction (address or invoice)
  • Destination address for delivery
  • Optional affiliate configuration (appFees or affiliateId) for routes that support app fees
  • Webhook endpoint or polling logic
  • Approval/refund handling if awaiting_approval is reached

Limits

ParameterValue
Minimum$1 equivalent
Maximum$100,000 equivalent
Platform Fee0.05% (5 bps)
LP Pool Fee~0.05% (~5 bps)

Next Steps