Skip to main content
POST
/
ramp
/
quote
Get quote
curl --request POST \
  --url https://api.sand.etherfuse.com/ramp/quote \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "blockchain": "stellar",
  "customerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "quoteAssets": {
    "sourceAsset": "MXN",
    "targetAsset": "USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
    "type": "onramp"
  },
  "quoteId": "3f2a1b0c-9d8e-7f6a-5b4c-3d2e1f0a9b8c",
  "sourceAmount": "1000",
  "walletAddress": "GDUKMGUGD3V6VXTU2RLAUM7A2FABLMHCPWTMDHKP7HHJ6FCZKEY4PVWL"
}
'
{
  "blockchain": "stellar",
  "createdAt": "2026-05-02T09:14:00Z",
  "destinationAmount": "58.42",
  "etherfuseMidMarketRate": "17.15",
  "exchangeRate": "17.12",
  "expiresAt": "2026-05-02T09:16:00Z",
  "feeAmount": "2.00",
  "feeBps": "20",
  "nominalRate": "17.15",
  "quoteAssets": {
    "sourceAsset": "MXN",
    "targetAsset": "USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
    "type": "onramp"
  },
  "quoteId": "3f2a1b0c-9d8e-7f6a-5b4c-3d2e1f0a9b8c",
  "requiresSwap": true,
  "sourceAmount": "1000",
  "updatedAt": "2026-05-02T09:14:00Z"
}

Authorizations

Authorization
string
header
required

API key sent in the Authorization header.

Body

application/json
blockchain
enum<string>
required

blockchain identifier (stellar, solana)

Available options:
stellar,
solana,
base,
polygon,
monad
customerId
string<uuid>
required

Organization the quote is for. Use GET /ramp/meid when quoting for your own org; use a child customer's org UUID when quoting on their behalf.

quoteAssets
Onramp · object
required

Fiat → crypto: pay in fiat, receive a stablecoin/token on-chain.

quoteId
string<uuid>
required
sourceAmount
string
required
partnerFeeBps
integer<int32> | null

Optional partner fee override in basis points (0–500). Applied directly as this quote's partner fee — there is no separate enable step. Resolution order: this per-quote override > your organization's default (partnerFeeDefaultBps) > 0. The resulting partner fee is folded into the quote's feeBps/feeAmount; it is not returned as a separate field on the response.

Required range: 0 <= x <= 500
walletAddress
string | null

Optional Stellar wallet address. When provided for Stellar onramps, enables trustline check and setup fee calculation.

Response

The created quote

blockchain
enum<string>
required

Canonical blockchain enum for API serialization. Use this type for JSON APIs and WebSocket messages. For database storage, convert to BlockchainType.

Available options:
stellar,
solana,
base,
polygon,
monad
createdAt
string<date-time>
required
destinationAmount
string
required

The amount of the destination asset the customer receives. Already net of all fees (platform fee plus any partner fee): destinationAmount = sourceAmount × exchangeRate. Do not subtract a fee from it again.

exchangeRate
string
required

The effective, fee-inclusive rate the customer receives — all fees (platform and partner) are already reflected. Multiply by sourceAmount to get destinationAmount. For the raw pre-fee rate, use nominalRate.

feeAmount
string
required

Fee amount, equal to sourceAmount × feeBps, denominated in the source asset's currency (e.g., fiat for onramps; the source token for offramps and swaps — USDC when selling USDC, the bond token when selling a bond). Includes any partner fee.

feeBps
string
required

Total fee in basis points (e.g., 20 = 0.20%). Combined fee that already includes any partner fee — subtract the partnerFeeBps you sent on the request to get the Etherfuse platform portion. The partner fee is not itemized separately on the quote response.

nominalRate
string
required

Pre-fee rate. exchange_rate is the effective rate after fees; nominal_rate is the underlying market rate before any Etherfuse fee deduction. UIs that want to render the raw market relationship cleanly (e.g., "1 MXN = 1 MEXe" with the fee row shown separately) should read this field. Always populated.

quoteAssets
Onramp · object
required

Fiat → crypto: pay in fiat, receive a stablecoin/token on-chain.

quoteId
string<uuid>
required
requiresSwap
boolean
required

Whether this quote requires an on-chain swap (true for FX ramps, false for stablebond ramps)

sourceAmount
string
required
updatedAt
string<date-time>
required
etherfuseMidMarketRate
string | null

FX mid-market rate from a currency provider (e.g., USD/MXN). Only populated for cross-currency quotes. Absent on direct stablebond ramps and wraps — use nominal_rate for the pre-fee rate there.

expiresAt
string<date-time> | null

Timestamp when the quote expires, as an RFC 3339 / ISO 8601 string (e.g. 2025-12-17T18:31:46Z) — never an epoch number. Quotes are valid for 2 minutes from creation.