Create quote
Firm price for 2 minutes plus a deposit address. Paying the address creates the order. Fresh quotes and successful idempotency replays screen the effective recipient, refund and fee addresses with Hermod; replays use frozen quote terms. Hermod starts in log-only mode and rejects hits with the existing sanctioned_address response only when enforcement is enabled. OFAC screening remains independently enforced. A screening rejection does not overwrite the successful quote or start a replacement quote. HyperCore source routes are unavailable until independent deposit verification is supported; HyperCore destinations remain supported.
curl --request POST \
--url https://orchestration.flashnet.xyz/v1/orchestration/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"sourceChain": "base",
"sourceAsset": "USDC",
"destinationChain": "spark",
"destinationAsset": "BTC",
"amount": "50000000",
"recipientAddress": "RECIPIENT_ADDRESS"
}
'const options = {
method: 'POST',
headers: {
'X-Idempotency-Key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
sourceChain: 'base',
sourceAsset: 'USDC',
destinationChain: 'spark',
destinationAsset: 'BTC',
amount: '50000000',
recipientAddress: 'RECIPIENT_ADDRESS'
})
};
fetch('https://orchestration.flashnet.xyz/v1/orchestration/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://orchestration.flashnet.xyz/v1/orchestration/quote"
payload = {
"sourceChain": "base",
"sourceAsset": "USDC",
"destinationChain": "spark",
"destinationAsset": "BTC",
"amount": "50000000",
"recipientAddress": "RECIPIENT_ADDRESS"
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"amountMode": "exact_in",
"estimatedOut": "99000000",
"feeAmount": "500000",
"roundingFeeAmount": "0",
"totalFeeAmount": "500000",
"feeBps": 50,
"feeAsset": "USDC",
"route": [
"BTC",
"USDB",
"USDC"
],
"quoteId": "q_7e450ab4-935b-4f8d-a6c4-4987a3cd2831",
"depositAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"amountIn": "100000",
"expiresAt": "2026-09-12T12:02:00.000Z",
"source": {
"chain": "bitcoin",
"asset": "BTC",
"assetDisplayName": "Bitcoin",
"assetDisplaySymbol": "BTC",
"contractAddress": null,
"decimals": 8,
"chainId": null,
"chainDisplayName": "Bitcoin",
"chainIcon": "/btc.svg"
},
"destination": {
"chain": "solana",
"asset": "USDC",
"assetDisplayName": "USDC",
"assetDisplaySymbol": "USDC",
"contractAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"decimals": 6,
"chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"chainDisplayName": "Solana",
"chainIcon": "/chain-solana.svg"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Partner API key in the form Authorization: Bearer fn_....
Headers
1Body
Unknown top-level fields are ignored rather than rejected.
arbitrum, arc, avalanche, base, bitcoin, bsc, ethereum, hedera, hypercore, hyperevm, lightning, litecoin, monad, monero, optimism, plasma, polygon, robinhood, sei, solana, spark, tempo, ton, tron, xrp, zcash An AssetInput, or a token address. A quote whose source is an unlisted token requires refundAddress: a deposit that cannot be sold is refunded in kind there.
AAPL, AI, AMD, AMZN, BNB, BONER, BTC, CASHCAT, COIN, COST, DAI, DELTA, DJT, ETH, GLD, GME, GOOGL, GRAM, HIMS, HSUSD, HYPE, IF, LTC, META, MON, MSFT, MSTR, MU, NVDA, OUSD, PIPEDOG, PLTR, POL, PONS, PYUSD, PathUSD, QQQ, RDDT, SHX, SKHY, SLV, SNDK, SOL, SPCX, SPY, STONKBROKER, TENDIES, TRX, TSLA, TSM, UP, USDB, USDC, USDC.e, USDG, USDT, USDe, USD₮0, USO, WBNB, WBTC, WEN, XMR, XO, XPL, XRP, ZEC, cbBTC, tBTC arbitrum, arc, avalanche, base, bitcoin, bsc, ethereum, hedera, hypercore, hyperevm, lightning, litecoin, monad, monero, optimism, plasma, polygon, robinhood, sei, solana, spark, tempo, ton, tron, xrp, zcash An AssetInput, or a token address. An unlisted destination adds minAmountOut and fallback to the quote.
AAPL, AI, AMD, AMZN, BNB, BONER, BTC, CASHCAT, COIN, COST, DAI, DELTA, DJT, ETH, GLD, GME, GOOGL, GRAM, HIMS, HSUSD, HYPE, IF, LTC, META, MON, MSFT, MSTR, MU, NVDA, OUSD, PIPEDOG, PLTR, POL, PONS, PYUSD, PathUSD, QQQ, RDDT, SHX, SKHY, SLV, SNDK, SOL, SPCX, SPY, STONKBROKER, TENDIES, TRX, TSLA, TSM, UP, USDB, USDC, USDC.e, USDG, USDT, USDe, USD₮0, USO, WBNB, WBTC, WEN, XMR, XO, XPL, XRP, ZEC, cbBTC, tBTC Amount in smallest units of the source asset, or destination asset for exact_out; stablecoin exact_out amounts require whole cents.
^[0-9]+$Destination recipient; use the owner address for Solana tokens, or a Lightning address or compatible BOLT11 invoice for Lightning.
1Opt in to Orchard funding for zcash:ZEC, exact_in and variable only. Omitted/default preserves transparent funding. Requires an admitted partner and refund address.
default, shielded Shielded provider policy; ignored for legacy funding.
Show child attributes
Show child attributes
exact_out pins the destination amount and requires whole cents for stablecoins.
exact_in, exact_out Delivery mode; new fixed delivery requires exact_in and an enabled reviewed XChain route with active partner terms. Canonical fixed delivery is unavailable; disabled XChain admission never falls back to canonical. A route accepts fixed only where /v2/orchestration/routes reports fixedEligible (fixedTo); other routes return 400 fixed_delivery_unsupported_route. Fixed estimates are indicative; quotes validate exact-output affordability before returning deposit instructions. Fixed stablecoin routes to Solana USDC include recipient token-account creation costs upfront and preserve the quoted payout.
variable, fixed lightning:BTC exact-in variable only: mint an amountless invoice. amount prices an indicative size; the order runs on whatever amount is paid.
lightning:BTC sources only: SHA-256 hex of your LNURL-pay metadata string. The minted BOLT11 carries it as the description hash (h tag) instead of a memo, for wallets that still verify LUD-06. Rejected on other sources.
^[0-9a-fA-F]{64}$Include transaction calldata to fund the order. Supported for EVM native and ERC-20 sources only; unsupported sources return calldata_unsupported_source. Defaults to false.
arbitrum, arc, avalanche, base, bitcoin, bsc, ethereum, hedera, hypercore, hyperevm, lightning, litecoin, monad, monero, optimism, plasma, polygon, robinhood, sei, solana, spark, tempo, ton, tron, xrp, zcash Source-chain refund address where required by the route; sanctioned addresses are rejected. Required when sourceAsset is an unlisted token (invalid_request otherwise): a deposit that cannot be sold is refunded there in the source token. For zcash:ZEC sources, a supplied nonblank refund address must be a checksum-valid mainnet transparent t1 or t3 address; invalid targets return invalid_refund_address before pricing.
1Slippage tolerance in basis points, subject to the route minimum.
0 <= x <= 1000Inline app fees, requiring a server key or dashboard session.
1 - 16 elementsShow child attributes
Show child attributes
Opt in to affiliate_not_found / affiliate_disabled for registered affiliate lookup failures. Omitted or legacy preserves invalid_request. HTTP 400 in either mode. Changing this field requires a new idempotency key.
legacy, specific Registered affiliate ID for accrued fees, also accepted from client keys.
Registered affiliate IDs or fee overrides; mutually exclusive with appFees, with overrides requiring a server key or dashboard session.
1 - 16 elementsRegistered affiliate ID or { affiliateId, feeBps } override.
1Your own reporting label, such as an integrator ID. Every order this quote funds carries it, and the dashboard filters and groups by it. Self-reported: anyone holding the key that creates the quote chooses it.
^[A-Za-z0-9._:-]{1,64}$Response
Quote created
shielded Two-minute indicative pricing deadline. Execution reprices after verified receipt and must preserve lockedMinAmountOut.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Exact immutable reviewed token identities frozen by the native quote. Omitted for legacy or invalid snapshots; caller metadata cannot set these pins.
1 - 32 elementsShow child attributes
Show child attributes
Unsigned deposit transfer, returned only with includeCalldata=true on supported EVM sources. No approval is needed. This funds the deposit; it does not execute the swap.
Show child attributes
Show child attributes
Memo or tag required with the deposit when present.
The invoice is amountless. amountIn and estimatedOut price the indicative amount and are rescaled to the amount actually paid.
true exact_in, exact_out fixed Action required when the locked price can no longer be honored.
strict_requote, approval_required Minimum locked destination amount in smallest units.
Quoted network cost in smallest units of networkCostAsset.
Asset used to pay the quoted network cost.
Whether the quoted network cost must be paid.
Itemized network costs and quote-time assumptions.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Unlisted destinations only: the least amount of the token, in its smallest units, the recipient receives when the swap succeeds. Enforced on chain at the recipient.
Unlisted destinations only: what the recipient receives if the swap into the token cannot deliver minAmountOut.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The request's tag; null when none was sent.
Client-key read token for this quote and its order, including private ZeroConf outcomes.
Was this page helpful?
curl --request POST \
--url https://orchestration.flashnet.xyz/v1/orchestration/quote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"sourceChain": "base",
"sourceAsset": "USDC",
"destinationChain": "spark",
"destinationAsset": "BTC",
"amount": "50000000",
"recipientAddress": "RECIPIENT_ADDRESS"
}
'const options = {
method: 'POST',
headers: {
'X-Idempotency-Key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
sourceChain: 'base',
sourceAsset: 'USDC',
destinationChain: 'spark',
destinationAsset: 'BTC',
amount: '50000000',
recipientAddress: 'RECIPIENT_ADDRESS'
})
};
fetch('https://orchestration.flashnet.xyz/v1/orchestration/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://orchestration.flashnet.xyz/v1/orchestration/quote"
payload = {
"sourceChain": "base",
"sourceAsset": "USDC",
"destinationChain": "spark",
"destinationAsset": "BTC",
"amount": "50000000",
"recipientAddress": "RECIPIENT_ADDRESS"
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"amountMode": "exact_in",
"estimatedOut": "99000000",
"feeAmount": "500000",
"roundingFeeAmount": "0",
"totalFeeAmount": "500000",
"feeBps": 50,
"feeAsset": "USDC",
"route": [
"BTC",
"USDB",
"USDC"
],
"quoteId": "q_7e450ab4-935b-4f8d-a6c4-4987a3cd2831",
"depositAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"amountIn": "100000",
"expiresAt": "2026-09-12T12:02:00.000Z",
"source": {
"chain": "bitcoin",
"asset": "BTC",
"assetDisplayName": "Bitcoin",
"assetDisplaySymbol": "BTC",
"contractAddress": null,
"decimals": 8,
"chainId": null,
"chainDisplayName": "Bitcoin",
"chainIcon": "/btc.svg"
},
"destination": {
"chain": "solana",
"asset": "USDC",
"assetDisplayName": "USDC",
"assetDisplaySymbol": "USDC",
"contractAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"decimals": 6,
"chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"chainDisplayName": "Solana",
"chainIcon": "/chain-solana.svg"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}