How do on/off-ramp providers make money? Spread, fees, float, and partner cuts

Where an on/off-ramp provider earns on each conversion: the spread, fee lines, float, partner cuts, and plans. Plus where a zero-fee ramp puts its cost.

On/off-ramp providers make money from the spread between the market rate and your rate, from explicit fees per conversion, and sometimes from interest on balances they hold, partner revenue shares, and monthly plans. A zero-fee ramp still earns. The cost usually sits in the exchange rate instead of a fee line.

That matters for anyone comparing ramps. Two quotes for the same $10,000 can look opposite on paper, one with no fee and one with a $25 fee, and the "free" one can deliver less. Once you know the five ways a ramp earns, you can read any quote and find the cost. Terms used below are defined in the on/off-ramp liquidity glossary.

Key takeaways

  • The spread is the main revenue line for most ramps: the gap between the market rate and the rate you get.
  • Explicit fees come as a percentage, a flat amount, or both, plus network and bank costs passed through.
  • Float income depends on custody. A provider that holds your balance can earn on it; one that executes a single authorized transaction does not hold one.
  • Partner cuts let the platform in front of the user add its own markup on the provider's price.
  • "Zero fee" moves the cost into the rate. Measure the amount received against mid-market.
  • BlindPay charges a monthly plan plus per-transaction fees disclosed in the live quote, with no static rate card.

What are the five ways a ramp provider earns?

A ramp earns from five places: the spread, explicit fees, float, partner revenue, and platform plans. Most providers use two or three of them at once. The mix shapes what you see on a quote, which is why a single headline number rarely tells you the real cost of a conversion.

Revenue lineWhere it shows upHow to spot itQuestion to ask
Spread (FX markup)Inside the exchange rateCompare the quoted rate with mid-market at the same minuteWhat is the market rate on this quote, and what rate do I get?
Explicit feeA fee line, percentage or flatRead the quote's fee fieldsIs the fee per transaction, per rail, or per network?
Pass-through costsNetwork gas, bank or rail feesOften bundled into the fee or the rateAre network and bank costs included or extra?
FloatInterest on balances held between stepsOnly visible in the custody and funding termsWho holds my funds before the payout executes?
Partner revenueA markup the platform addsA separate partner fee field, or a wider rateCan my platform add a fee, and does the provider share it?
Platform planA monthly or annual subscriptionThe contract, not the quoteWhat does the plan include, and what is charged per transaction?

The FX Global Code, the conduct standard for wholesale FX, calls the spread a "Mark Up." Principle 14 describes it as "the spread or charge that may be included in the final price of a transaction" to compensate for "risks taken, costs incurred, and services rendered," and asks dealers to make clear that the final price may include it (FX Global Code). Ramps sit downstream of that market, so the same logic applies one layer up.

Why is the spread the biggest line for most ramps?

Because every conversion crosses it, and it scales with volume without a visible charge. The spread pays for inventory in two currencies, hedging, and the risk of the market moving while a quote is open. It is also the line customers check least, since it hides inside a number that looks like a market price.

On an off-ramp, the provider sells local currency to you for stablecoins, so your rate sits below mid-market. On an on-ramp it buys local currency from you, so your rate sits above it. Why on-ramp and off-ramp rates differ walks through both sides and the round-trip cost.

How do explicit fees work on a ramp quote?

Explicit fees are the lines you can read: a percentage of the amount, a flat fee per transaction, or both. Many providers vary them by payment method, rail, and network, because a card, a Pix transfer, and a SWIFT wire cost very different amounts to process. The best quotes itemize each one.

Card on-ramps usually cost the most. Card processing is expensive, and a cardholder can dispute a charge after the stablecoins are already gone. Providers that accept cards price that chargeback risk in. Bank rails are cheaper to run, which is why bank-funded on-ramps tend to carry lower fees. Crypto on-ramp fees and stablecoin off-ramp fees break the lines down per direction.

Network and bank costs are the third group. Some providers pass gas and rail fees through at cost. Others fold them into a flat fee or the rate. Ask which, since a "flat" fee that silently includes gas behaves differently when networks get busy.

Where does float income come from?

Float is interest earned on money a provider holds for you between steps. It shows up in custodial and prefunded models: you park a balance with the provider, the provider holds the reserves, and the yield on those reserves stays with the provider unless the contract shares it. You never see float on a quote.

Float depends on custody, so ask who holds the money before the payout executes. In a non-custodial payout flow, the customer authorizes an exact amount from its own wallet and the provider executes that single transaction. There is no balance sitting with the provider between payouts. Non-custodial payments explained covers the custody models and what each means for counterparty risk.

How do partner cuts change the price a user sees?

Partner cuts are markups added by the platform in front of the user: a wallet, a marketplace, a payroll app. The ramp provider prices the conversion, the platform adds its fee, and the user sees the total. Some providers share their own revenue with the platform. Others let the platform set a separate fee line.

The difference matters for transparency. A partner fee in its own field lets everyone see who earns what. A partner markup folded into the rate looks like a worse exchange rate. As one example, MoonPay's buy quote API takes an extraFeePercentage between 0 and 10 for the partner and returns it next to MoonPay's own feeAmount and a separate networkFeeAmount (MoonPay buy quote reference).

On BlindPay, a platform adds a partner fee, percentage or flat, set independently for payins and payouts. It appears as partner_fee_amount on the quote, accumulates over the calendar month, and is released on the first day of the next month, net of the platform's BlindPay invoice (partner fees docs).

Where does a zero-fee ramp put the cost?

In the exchange rate, almost always. A provider still pays for liquidity, banks, compliance, and fraud, so the money has to come from somewhere. The way to check is to measure what the recipient receives against the mid-market value of what you sent, at the same minute.

Illustrative example. You off-ramp 10,000 USDC to reais. The mid-market rate is 5.40, so the mid-market value is R$ 54,000.

Provider A ("zero fee")Provider B (visible fee)
Fee$0$25
Rate offered5.3460 (1.00% under mid)5.3838 (0.30% under mid)
Recipient receives10,000 × 5.3460 = R$ 53,460.009,975 × 5.3838 = R$ 53,703.41
Cost vs mid-marketR$ 540.00 (1.00%)R$ 296.59 (0.55%)

The zero-fee quote costs almost twice as much. These numbers are illustrative, not any provider's pricing. The method is the point: total cost equals mid-market value minus amount received. Why the Google rate differs from your quote explains where to get a fair mid-market reference.

How does BlindPay make money?

BlindPay combines a monthly plan for platform access with per-transaction fees that vary by rail and network. Those fees are disclosed only in the live quote before execute. BlindPay does not publish a static flat rate card, so the quote's fee breakdown is the number to cite, not a fixed basis-point figure.

Each payout quote returns commercial_quotation, the raw market rate, and blindpay_quotation, the rate net of BlindPay's fee. It also returns flat_fee, partner_fee_amount, and billing_fee_amount, along with the exact sender_amount and receiver_amount (payout quotes docs). So the spread and the fee lines are both visible before you commit. The quote locks them for 5 minutes; read expires_at on every response.

BlindPay operates as a non-custodial payment processor for payout flows from customer-controlled wallets: you authorize the exact amount and BlindPay executes that single transaction. Optional BlindPay-managed wallets (beta) are custodial when you choose that path.

What to do next

Take one corridor you pay today and request two quotes at the same minute: one from your current provider, one from a BlindPay development instance. Compute cost against mid-market for each, using the method above. The payout quotes docs list every field you need.

FAQ