---
title: "How much does a crypto on-ramp cost? Fees, spreads, and how to read a quote"
seoTitle: "Crypto on-ramp fees: spreads, rail costs, and quotes"
description: "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."
date: "2026-09-11"
updated: "2026-09-11"
author: "BlindPay Team"
category: "payments"
faq:
  - q: "Are on-ramp and off-ramp fees the same?"
    a: "They have the same parts (spread, service fee, rail cost, network fee) but different weights. On an on-ramp, the payment method decides most of the cost: a card can cost several percent, while Pix or SPEI costs close to nothing. On an off-ramp, the payout rail and any intermediary banks matter more, and the sender usually pays the network fee to deposit the stablecoins."
  - q: "What is the cheapest way to on-ramp fiat into USDC?"
    a: "A local push rail into a provider that quotes a live rate. Pix in Brazil and SPEI in Mexico cost the payer almost nothing and settle in minutes, and ACH credits are cheap in the US. Cards and mobile wallets are the most expensive. Compare the stablecoin amount you receive per unit of fiat, not the advertised fee."
  - q: "Why does my on-ramp quote show no fee but I receive less than the market rate?"
    a: "Because the fee is inside the exchange rate. A provider that advertises zero fees can quote a rate worse than the market and keep the difference as a spread. Divide the stablecoin amount you receive by the fiat you send and compare it with the market rate at the same moment. The gap is the real cost."
  - q: "Who pays the blockchain network fee on an on-ramp?"
    a: "It depends on the provider. Most consumer on-ramps fold it into the price, and many business on-ramps cover delivery gas as part of their fee. On low-cost networks like Solana or Polygon it is usually a fraction of a cent. On Ethereum mainnet it can be a few dollars when the network is busy, so the network choice matters for small deposits."
  - q: "Does my bank charge a fee on top of the on-ramp fee?"
    a: "Sometimes. Wires and SWIFT transfers often carry a sending fee from your own bank, and intermediary banks can deduct their own charges on international wires. That cost sits outside the on-ramp's quote. Pix, SPEI, and ACH credits are usually free or nearly free to send."
  - q: "How long is a crypto on-ramp quote valid?"
    a: "Usually a few minutes. The quote locks a rate and fees that move with the market, so providers keep the window short. On BlindPay a payin quote lasts 5 minutes, except OTC quotes, which last 10 seconds. If it expires before you create the payment, request a new one at the current rate."
---

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.

| Cost | What it is | Where you see it |
| --- | --- | --- |
| Spread | The gap between the market exchange rate and the rate you're quoted | Hidden inside the rate unless the quote shows both |
| Service fee | A flat amount, a percentage, or both, charged by the on-ramp | Usually a line on the quote |
| Payment method cost | Card processing, or the cost of collecting a bank transfer | Folded into the price for cards; often small for bank rails |
| Network fee | Gas to deliver the stablecoins on-chain | Folded into the price, or covered by the provider |
| Partner markup | A platform's own fee on top of the provider's | A separate line, if the platform discloses it |
| Sending bank fee | What your own bank charges to send a wire | Outside 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](https://www.circle.com/usdc), 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](/resources/more/on-off-ramp-liquidity-live-quotes) beat batch rates.

**Payment method.** Pix is free for individuals to send under [Banco Central do Brasil](https://www.bcb.gov.br/en/financialstability/pix_en) rules, and SPEI transfers in Mexico are cheap and run around the clock through [Banxico](https://www.banxico.org.mx/services/interbanking-electronic-payme.html). Cards are the opposite. [Card processing alone](/resources/more/stablecoin-payment-fees-vs-card-processing-fees) 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](https://ethereum.org/en/developers/docs/gas/). On Solana the base fee per signature is tiny, per the [Solana docs](https://solana.com/docs/core/fees). 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](/resources/more/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 rate | 5.4648 BRL per USDC (1.2% from market) | 5.4216 BRL per USDC (0.4% from market) |
| Converted amount | 1,829.89 USDC | 1,844.47 USDC |
| Flat fee | 0 | 2.00 USDC |
| Receiver amount | 1,829.89 USDC | 1,842.47 USDC |
| All-in cost | 21.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 variable | Payment method: card vs bank rail | Payout rail: local instant rail vs SWIFT |
| Network fee | Paid on delivery, usually by the provider | Paid by the sender to deposit stablecoins |
| Bank-side extras | Sending fees on wires | Intermediary and receiving bank fees on SWIFT |
| Chargeback exposure | High for cards, low for push rails | None on the stablecoin leg |

The off-ramp side has its own breakdown in [how much a stablecoin off-ramp costs](/resources/more/stablecoin-off-ramp-fees-explained). 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](/resources/more/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](/docs/learn/billing) 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](/docs/learn/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](/resources/more/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.*
