Skip to main content
GET
/
v1
/
transactions
/
quotes
Get all available quotes for a stablecoin transfer
curl --request GET \
  --url https://api.faraday.range.org/v1/transactions/quotes \
  --header 'Authorization: Bearer <token>'
{
"quotes": [
{
"amount_in": "5000000",
"amount_out_estimated": "4998546",
"created_at": "2025-10-28T17:36:29Z",
"expires_at": null,
"fee": {
"fee_asset": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"network_fee": "1454",
"router_fee": "0",
"total_fee": "1454"
},
"from_asset": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"from_chain": "solana-devnet",
"id": "5917c6e9-4a69-4ca4-90b8-22d9abaf3c8b",
"min_amount_out": "4983550",
"provider": "skipgo",
"provider_context": {
"route": {
"estimated_fees": [
{
"amount": "1454",
"bridge_id": "CCTP",
"chain_id": "solana-devnet",
"fee_type": "SMART_RELAY",
"origin_asset": {
"chain_id": "solana-devnet",
"coingecko_id": "usd-coin",
"symbol": "USDC"
}
}
],
"estimated_route_duration_seconds": 25
},
"txs": [
{
"svm_tx": {
"chain_id": "solana-devnet",
"signer_address": "3DWrAUpE8DWTyEfexXHcyJzYDieyJCw7pwsSiJRcjzKx",
"tx": "<base64-encoded Solana transaction>"
}
}
]
},
"to_asset": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
"to_chain": "sepolia",
"transactions": [
{
"chain_id": "EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"kind": "solana",
"tx_base64": "<base64-encoded Solana transaction>"
}
]
}
],
"risk": {
"errors": [],
"overall_risk_level": "high",
"processing_time_ms": 4439.167,
"request_summary": {
"amount": 100000000,
"recipient_address": "0x10ADD26fb2D17dA265e0567B8F56cb4687979fbE",
"recipient_network": "ethereum",
"recipient_token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"sender_address": "GvFbpZcqXNoZbAH8ETAA4DYBzaEHY4v2Vt7r71ZqJCTc",
"sender_network": "solana",
"sender_token": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
},
"risk_factors": [
{
"description": "Unable to assess new wallet risk due to service error: Network 'ethereum' is not configured.",
"factor": "assessment_error_new_wallet",
"risk_level": "medium"
},
{
"description": "Unable to assess dormant wallet risk: Network 'ethereum' is not configured.",
"factor": "assessment_error_dormant_wallet",
"risk_level": "medium"
},
{
"description": "No address poisoning pattern detected between sender and recipient",
"factor": "no_address_poisoning",
"risk_level": "low"
},
{
"description": "First ever interaction between these addresses",
"factor": "first_interaction",
"risk_level": "high"
},
{
"description": "Sender address is directly connected (1 hop) to malicious addresses (riskScore: 10). Address is directly malicious.",
"factor": "connected_to_malicious_address",
"risk_level": "high"
},
{
"description": "Recipient address has no known connections to malicious addresses according to Range API",
"factor": "clean_address_recipient",
"risk_level": "low"
}
]
}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

from_chain
enum<string>
required

Source chain (e.g., "solana", "ethereum")

Available options:
eth,
sepolia,
solana,
oeth,
solana-devnet,
osmosis-1,
arb1,
pol,
base,
avax,
bnb,
neutron-1,
celestia,
opsep,
fuji,
amoy,
basesep,
linea
from_address
string

Sender address on the source chain

from_asset
string

Asset/mint/contract on the source chain

to_chain
enum<string>

Destination chain (e.g., "ethereum")

Available options:
eth,
sepolia,
solana,
oeth,
solana-devnet,
osmosis-1,
arb1,
pol,
base,
avax,
bnb,
neutron-1,
celestia,
opsep,
fuji,
amoy,
basesep,
linea
to_asset
string

Asset/mint/contract on the destination chain

amount
string

Amount in base units (integer string, no decimals)

slippage_bps
integer
required

Slippage in basis points (0..=10000)

Required range: x >= 0
to_address
string

Recipient address on the destination chain

travel_rule_compliant
boolean

Whether the transaction complies with Travel Rule requirements.

allowed_providers
enum<string>[]

If set, the router will restrict quote routing to these providers only. If omitted, all available providers will be used.

GET request usage: ?allowed_providers=relay&allowed_providers=skipgo (use repeated query parameters)

risk_report
boolean

Whether this request should compute a risk report. If omitted, defaults to false.

Response

OK

Quotes successfully retrieved.

quotes
object[]
required

All viable quotes from supported quote providers (each RouteQuote includes its provider)

risk
any
required

Risk assessment from the ML API (None if the call failed)

NOTE: PaymentRiskResponse is from an external crate. We keep the field typed as PaymentRiskResponse in Rust, but for OpenAPI we document it as JSON and provide a realistic example payload.