How much does a crypto on-ramp cost? Fees, spreads, and how to read a quote

A crypto on-ramp charges through the rate spread, a service fee, the payment rail, and sometimes the network. How each works, and how to read the quote.

A crypto on-ramp charges in up to four places: the spread between the market rate and the quoted rate, a flat or percentage service fee, the cost of the payment rail, and sometimes the blockchain network fee. Cards add the most. Local instant rails like Pix and SPEI add the least. A good quote shows all four before you pay.

The quick way to compare providers: divide the stablecoins you receive by the fiat you send. That one number already includes every fee, wherever the provider put it.

Key takeaways

  • The spread is often the largest cost, and it doesn't show up as a line item. "Zero fees" usually means the fee is in the rate.
  • The payment method sets the floor. Card on-ramps price in chargeback risk; push rails like Pix, SPEI, and wires don't need to.
  • Network fees are cents or less on Solana and Polygon, and can be dollars on Ethereum mainnet when it's busy.
  • Ask who pays: a fee added on top of the sender's amount and a fee deducted from the receiver's amount produce different invoices.
  • On-ramp and off-ramp fees have the same parts with different weights. Don't reuse one price list for the other.

What fees does a crypto on-ramp charge?

Six costs can sit between the fiat you send and the stablecoins you receive. Not every provider charges all of them, and not every one shows up on the quote.

CostWhat it isWhere you see it
SpreadThe gap between the market exchange rate and the rate you're quotedHidden inside the rate unless the quote shows both
Service feeA flat amount, a percentage, or both, charged by the on-rampUsually a line on the quote
Payment method costCard processing, or the cost of collecting a bank transferFolded into the price for cards; often small for bank rails
Network feeGas to deliver the stablecoins on-chainFolded into the price, or covered by the provider
Partner markupA platform's own fee on top of the provider'sA separate line, if the platform discloses it
Sending bank feeWhat your own bank charges to send a wireOutside the quote entirely

The first four are the provider's. The fifth is your platform's choice. The last one is between you and your bank.

Spread. A stablecoin like USDC is redeemable one to one for dollars at its issuer, per Circle, so a USD on-ramp has little reason to quote far from par. Local currency on-ramps are different: converting reais or pesos into a dollar stablecoin is an FX trade, and the spread on that trade is where most of the cost lives. Depth of liquidity drives it, which is why live quotes beat batch rates.

Payment method. Pix is free for individuals to send under Banco Central do Brasil rules, and SPEI transfers in Mexico are cheap and run around the clock through Banxico. Cards are the opposite. Card processing alone costs merchants a few percent before chargebacks.

Network fee. Every on-chain delivery pays the network. On Ethereum, fees rise with demand for block space, as ethereum.org explains. On Solana the base fee per signature is tiny, per the Solana docs. For a $50 deposit, the network can matter more than the provider.

How do you read an on-ramp quote?

Start with the receiver amount. It is the only number you get to spend.

A complete quote has these parts:

  1. Sender amount. The fiat the payer sends, in the currency of the payment method.
  2. Receiver amount. The stablecoins that land in the destination wallet.
  3. Market rate. The raw exchange rate before the provider's margin.
  4. Quoted rate. The rate the provider is actually giving you.
  5. Fee lines. Flat fee, percentage fee, any partner fee, each in a known currency.
  6. Expiry. When the quote stops being valid.

If a quote shows only the sender amount, the receiver amount, and a "fee" line, compute the rest yourself. The effective rate is sender amount divided by receiver amount. Compare it with the market rate at the same moment and you have the all-in cost, spread included.

Watch the units too. Many APIs return amounts as integers in minor units, so 1000000 can mean $10,000.00. Stablecoin API quotes explained covers minor units and fee direction in more detail.

What does a worked example look like?

A Brazilian company sends R$10,000 by Pix and wants USDC. Two providers quote it. The numbers below are illustrative, not anyone's real pricing.

Assume the market rate is 5.40 BRL per USDC. At that rate, R$10,000 is worth 1,851.85 USDC.

Quote A: "zero fees"Quote B: rate plus flat fee
Quoted rate5.4648 BRL per USDC (1.2% from market)5.4216 BRL per USDC (0.4% from market)
Converted amount1,829.89 USDC1,844.47 USDC
Flat fee02.00 USDC
Receiver amount1,829.89 USDC1,842.47 USDC
All-in cost21.96 USDC (1.19%)9.38 USDC (0.51%)

The "zero fee" quote costs more than twice as much. Nothing on Quote A is false. The fee just moved into the rate.

Now shrink the deposit to R$200. Quote B's flat fee becomes 2.00 USDC on about 37 USDC, more than 5%. Quote A's spread is still 1.2%. Flat fees punish small tickets and percentage spreads punish big ones, so compare at the amounts you'll actually send.

Who pays the fee: the sender or the receiver?

Either one, and the choice changes what the invoice should say.

  • Receiver pays. The sender sends exactly the invoiced fiat amount, and the fee comes out of the stablecoins delivered. This is the common default.
  • Sender pays. The fee is added on top of the fiat amount, so the receiver gets a round number of stablecoins.

If a supplier needs exactly 10,000 USDC to land, the quote has to be built from the receiver side with the sender covering the fee. If a customer is topping up "R$10,000 worth", build it from the sender side and let the fee reduce the stablecoins. Pick one convention per flow and show it in your UI.

Are on-ramp and off-ramp fees the same?

Same parts, different weights.

On-ramp (fiat to stablecoin)Off-ramp (stablecoin to fiat)
Biggest variablePayment method: card vs bank railPayout rail: local instant rail vs SWIFT
Network feePaid on delivery, usually by the providerPaid by the sender to deposit stablecoins
Bank-side extrasSending fees on wiresIntermediary and receiving bank fees on SWIFT
Chargeback exposureHigh for cards, low for push railsNone on the stablecoin leg

The off-ramp side has its own breakdown in how much a stablecoin off-ramp costs. A provider that's cheap one way isn't automatically cheap the other way, so price both directions if your flow runs both.

What should you ask a provider about on-ramp pricing?

Eight questions that surface the real cost:

  1. Does the quote show both the market rate and your rate?
  2. Is the fee flat, a percentage, or both, and does it change by rail or corridor?
  3. Who pays the network fee on delivery?
  4. Can the fee be charged to the sender, the receiver, or invoiced later?
  5. How long is the quote valid, and what happens if it expires?
  6. Are there minimums per currency, and fees below them?
  7. Is there a monthly minimum, setup fee, or per-account fee?
  8. Can I add my own markup, and how is it collected and paid to me?

Stablecoin API pricing explained covers the pricing models behind these answers.

How does BlindPay price on-ramps?

BlindPay doesn't publish a flat rate card, because fees vary by payment method and corridor. Instead, every payin quote discloses the exact numbers before any money moves:

  • Both rates. commercial_quotation is the market rate, and blindpay_quotation is the rate including BlindPay's fee, so the spread is visible.
  • Every fee line. flat_fee, partner_fee_amount if your platform adds a markup, and billing_fee_amount when the fee is invoiced instead of deducted.
  • A 5-minute lock. The quote fixes the amounts, fees, and destination for 5 minutes (10 seconds for OTC quotes).
  • Who pays. cover_fees: false deducts the fee from the stablecoins delivered; cover_fees: true adds it to what the sender pays.
  • Your fee schedule. GET /billing/fees returns the flat and percentage payin fee configured for each rail and network on your instance.

A few structural facts: there is no setup fee and no monthly minimum, and development instances are free. US virtual accounts cost $1.50 per month each. Deposits into a virtual account below $100.00 accrue the BlindPay fee to the end-of-cycle invoice (billing_fee_amount); deposits of $100.00 or more have it deducted from the on-chain delivery (transaction_fee_amount). That's current behavior; confirm it in the billing docs before you build on it.

Platforms can add their own partner fee to each payin, as a percentage (capped at 10%) or a flat amount (capped at $1,000.00). BlindPay collects it during the transaction and releases it monthly, as described in partner fees.

When BlindPay is the right fit: you're collecting bank transfers (ACH, wire, Pix, SPEI, PSE, or Transfers 3.0) and want an itemized quote you can show your users or check in code. When it isn't: you need a card checkout with one all-in retail price.

What to do next

Take one real amount you'll send next month. Request a quote from each provider on your shortlist for that amount, on the same rail, within the same minute. Divide receiver amount by sender amount for each. The ranking you get is the one that matters.

If you're still deciding which kind of provider to shortlist, start with business vs consumer crypto on-ramps.

This article is general information, not legal, tax, or financial advice. Fees and rates change; confirm current pricing with each provider before you rely on it.

FAQ