Skip to main content
Reusable addresses bind one source chain and fee plan to a fixed conversion direction.
New integrations use standing deposit addresses. Retaining a legacy address does not establish current route availability.

Accumulation addresses

Create an address that converts Solana USDC deposits into USDB on Spark:
Replace SERVER_KEY with your fn_... key. Use a new X-Idempotency-Key for each operation and reuse it when retrying that same request. Amounts are integer strings in the asset’s smallest unit: "100000" is 0.001 BTC; "50000000" is 50 USDC on Base. Read each asset’s decimals from /routes.
Accumulation accepts supported Solana assets or configured deposit chains/assets. destinationAsset is BTC or USDB on Spark. Fees are feeBps plus either appFees or affiliateIds. The response carries accumulationAddressId, depositAddress, and subscriptions (Solana Helius only). The same configuration returns the same address. Fund the configured asset: native assets use native transfers; EVM tokens use token transfers. For missed deposits, POST /v1/accumulation-addresses/:idOrAddress/reindex requests a rescan. POST /v1/accumulation-addresses/sync re-registers Solana Helius webhooks. GET /v1/accumulation-addresses, GET /:id, and DELETE /:id list, read, and disable.

Liquidation addresses

Liquidation accepts Bitcoin L1 deposits for canonical Bitcoin routes, excluding Hedera and xchain-only destinations. Create an address targeting USDC on Base:
The response carries liquidationAddressId, l1DepositAddress (fund this), and sparkAddress (internal claim address). Each (txid, vout) becomes a separate order with quoteId: null. Below-floor outputs fail with amount_too_small. Eligible deposits may receive per-order ZeroConf offers. GET /v1/liquidation-addresses/orders?id= or ?label= lists generated orders.

Fee plans

The fee plan is resolved and frozen when the address is created; later changes to affiliate profiles do not apply. Inline appFees recipients must hold an address on the settlement chain: Solana for most routes, Spark USDB for USDB destinations. BTC-only destinations reject fee plans with 400 unsupported_fee_plan.

Differences from standing addresses

  • Legacy instructions have one source chain, order tracking, order-scoped ZeroConf, and no address-level refund API. DELETE disables an address.
  • Standing instructions span source chains and track deposits before orders. They support /resolve refunds, reversible PATCH pauses, and deposit-scoped ZeroConf.