Skip to main content
GET
Get a quote for swapping BTC to/from EVM tokens

Query Parameters

source_chain
enum<string>
required

Source blockchain (e.g., "Arkade", "Lightning", "Bitcoin", "Polygon", "Ethereum", "Arbitrum") Supported blockchain networks. EVM chains serialize to their chain ID as a string (e.g. "137" for Polygon). Rootstock is "30" on a mainnet daemon and "31" on a testnet daemon.

Available options:
Arkade,
Lightning,
Bitcoin,
137,
1,
42161,
30,
31
source_token
string
required

Source token: contract address for EVM tokens, or "btc" for BTC

target_chain
enum<string>
required

Target blockchain Supported blockchain networks. EVM chains serialize to their chain ID as a string (e.g. "137" for Polygon). Rootstock is "30" on a mainnet daemon and "31" on a testnet daemon.

Available options:
Arkade,
Lightning,
Bitcoin,
137,
1,
42161,
30,
31
target_token
string
required

Target token: contract address for EVM tokens, or "btc" for BTC

source_amount
string | null

Amount in smallest unit of source token (mutually exclusive with target_amount)

target_amount
string | null

Amount in smallest unit of target token (mutually exclusive with source_amount)

bridge_target_chain
string | null

Optional: CCTP bridge destination chain (e.g., "Base", "Optimism"). When set, the CCTP forwarding fee is deducted from the target amount.

bridge_source_chain
string | null

Optional: CCTP bridge source chain (e.g., "Optimism", "Base", "Solana"). Set when the user's source USDC originates on another CCTP chain and hops to Arbitrum via CCTPv2 before the HTLC is created. The quote internally runs the DEX calculation on Arbitrum-native USDC and accounts for the fast-transfer fee deducted on the burn.

bridge_recipient_setup
boolean

true when the recipient's USDC token account on the destination chain does NOT yet exist and Circle's forwarder needs to create it (only meaningful for non-EVM destinations like Solana — adds ~$0.05 of ATA rent to forwardFee). false (default) confirms the recipient already holds USDC, and is correct for all EVM destinations. Solana callers are responsible for probing the destination chain and setting this correctly.

ref
string | null

Optional referral code for tracking.

extra_fees
integer<int32> | null

Optional per-swap fee surcharge in basis points (0..=max_extra_fee_bps configured on the matching developer key). Rejected with 400 if it exceeds the per-key cap.

Required range: x >= 0

Response

Return a quote for swapping BTC to/from EVM tokens

exchange_rate
string
required

Exchange rate: how much of the EVM token you get/pay per BTC

gasless_network_fee
integer<int64>
required

Gasless network fee estimate (in satoshis) — covers the additional gas the server pays to execute the DEX swap on behalf of the user (redeemAndExecute via the coordinator contract).

Required range: x >= 0
max_amount
integer<int64>
required

Maximum BTC value of the swap in satoshis

Required range: x >= 0
min_amount
integer<int64>
required

Minimum BTC value of the swap in satoshis

Required range: x >= 0
net_source_amount
string
required

Net source amount: what the user actually sends including all fees. Equals source_amount when the user provided source_amount; otherwise source_amount + fees_in_source_units.

net_target_amount
string
required

Net target amount: what the user actually receives after all fees. Equals target_amount when the user provided target_amount; otherwise target_amount - fees_in_target_units.

network_fee
integer<int64>
required

Network fee estimate (in satoshis) — covers server-paid gas for HTLC create/claim + BTC mining fee when applicable.

Required range: x >= 0
protocol_fee
integer<int64>
required

Protocol fee (in satoshis)

Required range: x >= 0
protocol_fee_rate
number<double>
required

Protocol fee rate (as decimal, e.g., 0.0025 = 0.25%)

source_amount
string
required

Pre-calculated source amount in smallest unit of source token (pre-fee).

target_amount
string
required

Pre-calculated target amount in smallest unit of target token (pre-fee).

bridge_fee
integer<int64> | null

CCTP bridge forwarding fee in USDC smallest units (6 decimals). Only present when bridge_target_chain was specified in the quote request.

Required range: x >= 0