Patterns
Quote and Submit
Full control per transaction. Get a quote, fund the deposit, submit, track the order.
Pay Links
Shareable payment links with a fixed stablecoin output. Each click creates a fresh Lightning invoice. No expiration.
Accumulation Addresses
Reusable deposit addresses on any chain. Each deposit auto-delivers BTC or USDB on Spark.
Liquidation Addresses
Reusable Bitcoin L1 addresses. Each deposit auto-delivers to any supported chain and asset.
Comparison
| Quote/Submit | Pay Links | Accumulation Address | Liquidation Address | |
|---|---|---|---|---|
| Per-deposit work | Call /quote, fund, call /submit | Click a URL | Fund only (auto-detected) | Fund only (auto-detected) |
| Source | Any supported chain | Lightning (via Cash App) | solana, base, ethereum, arbitrum, optimism, polygon, tron | bitcoin |
| Destination | Any supported pair | Any supported stablecoin | spark (BTC or USDB) | Any supported chain/asset |
| Price control | Per-transaction slippage, exact-out | Exact-out (fresh quote per click) | Fixed slippage per address | Fixed slippage per address |
| Platform fee | 0.05% (5 bps) | 0.20% (20 bps) | 0.05% (5 bps) | 0.05% (5 bps) |
| Fee model | Deducted from output | Sender-side (receiver gets exact amount) | Deducted from output | Deducted from output |
| Affiliate fees | Supported (exact-in) | Supported, sender-side (via affiliateId) | Not supported | Not supported |
| Expiration | Quote expires in 2 min | Link never expires | Address is permanent | Address is permanent |
| ZeroConf | Configurable per quote | N/A (Lightning) | N/A (no BTC L1 source) | Configurable per address |
Address Behavior
Quote deposit addresses are generated per quote. Each/quote call returns a fresh depositAddress. Do not reuse a previous quote’s deposit address for a new deposit.
Accumulation addresses are deterministic and reusable. The deposit addresses are derived from the partner, destination asset, and recipient Spark address. Creating the same configuration twice returns the same addresses. Give them to end users as permanent deposit targets.
Liquidation addresses are deterministic and reusable. The l1DepositAddress is a stable Bitcoin address tied to the partner and destination configuration.
Accumulation and liquidation address deposits are detected automatically by server-side webhooks. You do not need to call
/submit for these flows. Register a partner webhook to receive order updates.When to Use Each
- Need per-transaction price control, custom slippage, or exact-out payments? Quote/Submit.
- Shareable “pay me $X” links via Cash App? Pay Links.
- Auto-converting deposits from any chain into BTC on Spark? Accumulation addresses.
- Auto-converting Bitcoin L1 deposits into any supported asset? Liquidation addresses.
Next Steps
- Stablecoin to BTC: Buy Bitcoin with USDC, ETH, or SOL
- BTC to Stablecoin: Sell Bitcoin for USDC
- Pay Links: Shareable payment links
- Accumulation Addresses
- Liquidation Addresses