Buy BTC
Convert USDC (Base or Solana) into BTC (Spark, Bitcoin L1, or Lightning).
Sell BTC
Convert BTC (Spark, Bitcoin L1, or Lightning) into USDC (Base or Solana).
Accumulation addresses
Give users a reusable Base/Solana deposit address that auto-delivers BTC or USDB on Spark.
Liquidation addresses
Give users a reusable Bitcoin L1 address that auto-delivers USDC to Base or Solana.
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/quoteto getdepositAddressand quote metadata- fund the deposit instruction (address or invoice)
POST /v1/orchestration/submitto 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)
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:- Bridge: Bridges stablecoin value between Base/Solana and Spark legs.
- AMM: Swaps USDB and BTC on Spark liquidity.
- Bitcoin ingress handling: Supports both confirmation-based and ZeroConf-assisted L1 deposit processing.
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/approvePOST /v1/orchestration/reprice/rejectPOST /v1/orchestration/reprice/refund(Bitcoin source orders)
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.
- are specified inline via
appFeesor via a registeredaffiliateId - are always settled in USDC on Base or Solana
- require
amountMode=exact_in
Settlement
- BTC settles to Spark wallets.
- Stablecoins settle to Base or Solana addresses.
- Final order statuses are
completed,failed, orrefunded. - Partners track progress via webhooks or
GET /v1/orchestration/status.
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 (
appFeesoraffiliateId) for routes that support app fees - Webhook endpoint or polling logic
- Approval/refund handling if
awaiting_approvalis reached
Limits
| Parameter | Value |
|---|---|
| Minimum | $1 equivalent |
| Maximum | $100,000 equivalent |
| Platform Fee | 0.05% (5 bps) |
| LP Pool Fee | ~0.05% (~5 bps) |
Next Steps
- Quickstart: Build a minimal end-to-end flow
- Stablecoin to BTC: Buy Bitcoin with USDC
- BTC to Stablecoin: Sell Bitcoin for USDC
- Liquidation Address: Static address for recurring BTC -> USDC flows
- Accumulation Address: Static address for recurring USDC -> BTC flows
- Webhooks: Receive order status updates
- API Reference: Complete endpoint documentation