Does the blockchain network change your off-ramp quote? What moves and what doesn't

Network and token are inputs to every payout quote. Which quote lines can change by chain, where gas sits, and how to compare two networks fairly.

Partly. On BlindPay, every payout quote takes a network and a token, and fees are scheduled per payment rail and per blockchain network, so the fee lines can differ by chain. The bank rail, the recipient, and the quote's window don't change. Gas sits outside the quote. To know the real difference, quote the same payout on two networks and compare.

Short version: the chain mostly changes what you pay to get the stablecoins in, not how the local currency gets out.

Key takeaways

  • network and token are required inputs to a payout quote. An incompatible pair fails with a 400.
  • Fees are set per rail and per network. Read your schedule from GET /billing/fees, then confirm on a live quote.
  • Gas is paid on-chain by the signer and is not a quote line. EVM payouts from external wallets add an approve transaction.
  • Offramp wallets add a fixed per-chain fee: 15 USDT on Tron, 1 USDC on Ethereum, 0.50 USDC on Solana, zero on Polygon, Arbitrum, Base, Tempo, and Arc.
  • Compare networks on receiver_amount for the same request, not on token or chain reputation.

Why does a payout quote ask for a network and token?

Because the quote prices the funding leg as well as the conversion. The stablecoins have to leave a wallet on a specific chain, and BlindPay has to know which token contract to pull from and how to settle it.

The request to POST /v1/instances/{instance_id}/quotes always carries both:

JSON
{
  "bank_account_id": "ba_000000000000",
  "currency_type": "sender",
  "cover_fees": false,
  "request_amount": 1000000,
  "network": "polygon",
  "token": "USDC"
}

For EVM networks, the response also returns a contract object: the token contract address, the ABI, BlindPay's address to approve as spender, and the exact decimal-adjusted amount. Stellar and Solana don't use that allowance pattern; Stellar payouts sign an XDR transaction and Solana payouts sign a token delegation. Same quote, different signing step. The payout quotes reference has every field.

Which parts of a quote can change with the network or token?

Some lines can. Others are fixed by the bank side of the payment and don't care which chain the USDC came from.

Part of the payoutCan network or token change it?Where you see it
Market rate (commercial_quotation)Possibly, by token; check by quoting bothQuote response
BlindPay's fee lines (flat_fee, applied rate)Yes, fees are scheduled per rail and per networkQuote response, GET /billing/fees
Partner fee (partner_fee_amount)No, partner fees are set per payin and per payoutQuote response
GasYes, and it sits outside the quoteYour wallet's transaction
Signing stepYes: approve on EVM, delegation on Solana, XDR on StellarPayout tutorials
Offramp wallet additional fee and minimumYes, fixed per chainOfframp wallet docs
Bank rail, recipient, arrival timeNoBank account
Quote windowNo, set by quote type and railexpires_at

The rule for the first row: don't assume. Request two quotes a few seconds apart, identical except for network or token, and diff them. Where the exchange rate gets fixed explains which line holds which part of the price.

How do you read your fee schedule per network?

Call GET /v1/instances/{instance_id}/billing/fees with an owner or admin key. It returns one fee object per payment rail and one per blockchain network configured for your instance.

The billing reference lists the rails (ach, domestic_wire, rtp, international_swift, pix, pix_safe, ted, ach_colombia, transfers_3, spei, sepa) and the networks (tron, ethereum, polygon, base, arbitrum, stellar, solana). Each object has four fields:

FieldUnitMeaning
payout_flatCentsFlat fee per payout
payout_percentageBasis points (50 = 0.50%)Percentage fee per payout
payin_flatCentsFlat fee per payin
payin_percentageBasis pointsPercentage fee per payin

BlindPay doesn't publish a flat rate card. The schedule is your instance's configuration, and every quote discloses the exact fee for that payment before you execute. Use the schedule to plan and the quote to decide. Stablecoin off-ramp fees explained covers the fee types more broadly.

What does a network comparison look like?

Illustrative example. A team pays out 10,000 USDC to a Pix account and quotes the same request on two networks. The numbers are made up for the arithmetic, not BlindPay pricing.

Quote on network AQuote on network B
request_amount (sender side)10,000.00 USDC10,000.00 USDC
commercial_quotation5.40 BRL per USDC5.40 BRL per USDC
Extra network-level fee0.00 USDC1.00 USDC
Effective rate5.3735.373
receiver_amountR$53,730.00R$53,724.63

Network B delivers 1.00 x 5.373 = R$5.37 less. On one payout, noise. On 2,000 payouts a month, R$10,746 less for the same USDC. Since the market rate matched, the whole difference is fees, which is what you'd confirm in the fee fields.

Worked example with documented offramp wallet fees. Offramp wallets, deposit addresses that pay out to a linked bank account automatically, carry a fixed additional fee per chain, per the offramp wallet docs:

ChainTokens on an offramp walletMinimumAdditional feeShare of a 250 payment
PolygonUSDC, USDTFees only00.0%
Arbitrum, Base, Tempo, ArcUSDCFees only00.0%
SolanaUSDC50 USDC0.50 USDC0.2%
EthereumUSDCFees only1 USDC0.4%
TronUSDT200 USDT15 USDT6.0%

The math: 15 ÷ 250 = 6.0% on Tron, against 0% for the same USDT on Polygon. For small recurring payouts, the chain is the biggest fee decision you make. More on the mechanism in what an off-ramp wallet is.

Does USDC vs USDT change the rate?

It can, depending on the path. The same docs give one concrete case: on an offramp wallet paying out in USD, USDT deposits convert at a flat 1:1 rate with no market spread, while USDC deposits use the live market rate.

For local-currency payouts, quote both tokens and compare commercial_quotation. Token choice is also constrained by the chain. Per BlindPay's supported chains, USDC payouts run on Ethereum, Polygon, Base, Arbitrum, Tempo, Arc, Stellar, and Solana, and USDT payouts run on Ethereum, Polygon, Tempo, Solana, and Tron. Circle lists its USDC contract addresses per chain, and Tether lists its supported protocols.

Mistakes surface early: a token on a chain where it isn't deployed fails at quote time with a 400 that names the pair, before any money moves. USDC vs USDT for payments compares the tokens themselves.

Where does gas fit?

Outside the quote. Gas is the chain's fee for processing your transaction, paid by whoever signs it, and it never shows up in flat_fee or receiver_amount.

On most chains you pay it in the native token: ETH on Ethereum, per ethereum.org, SOL on Solana, per Solana's fee docs, and bandwidth or energy on Tron, per Tron's resource model. Arc uses USDC as its gas token.

On EVM payouts from an external wallet, your wallet signs an approve call for the quoted amount, and that transaction needs gas. Funding from a BlindPay-managed wallet skips the client-side signing, but managed wallets are in beta and custodial. Who pays gas fees breaks this down by flow.

Does the network change how fast the money arrives?

Only the on-chain part. The rail decides the rest. Pix and SPEI deliver in minutes whatever chain funded them, and a SEPA payout's crypto leg always runs on Polygon regardless of which network you funded from. That doesn't change your API call, but it can change the on-chain timing you observe.

Finality by chain is covered in which network to off-ramp on. Choose by token support first, then by the fee lines on a real quote, then by gas and finality. For how live quotes behave when the local currency moves, see live quotes and volatile currencies, and the glossary for any term here.

What to do next

Pull your fee schedule from GET /billing/fees, then request the same payout quote on your two most likely networks and diff receiver_amount. Ten minutes, and you'll know which chain to default to. The billing reference has the request.

FAQ