One USDC balance, many currencies: running multi-currency payouts from a single treasury

Pay out in USD, BRL, MXN, COP, ARS, EUR, and GBP from one stablecoin balance: rails per currency, funding network rules, quote quirks, and float sizing.

You can run payouts in seven currencies from one USDC balance: each payout gets its own quote that converts stablecoin into USD, BRL, MXN, COP, ARS, EUR, or GBP at execution. What changes per currency is the bank rail, which networks can fund it, and a few quote quirks. Pick a network every rail accepts and size one float.

This is the treasury view. Instead of a balance in Brazil, another in Mexico, and a third in Europe, the company holds one stablecoin balance and lets each payout do its own conversion. The idea is simple. The details per currency are where teams trip.

Key takeaways

  • One balance, one quote per payout. The currency is chosen by the recipient's bank account type.
  • BlindPay pays seven currencies over local rails: ACH, wire, RTP, SWIFT, Pix, PIX Safe, TED, SPEI, ACH Colombia, Transfers 3.0, SEPA, and Faster Payments.
  • EUR and GBP payouts are funded in USDC. Hold USDC on a network that SEPA and Faster Payments accept.
  • SEPA and Faster Payments quotes can expire before 5 minutes. Read expires_at.
  • Size one float on total volume, not one per country.

Which currencies and rails can one USDC balance pay?

Seven currencies over twelve payout rails, per BlindPay's payment methods reference:

CurrencyPayout railsFunding notesQuote quirks
USDACH, domestic wire, RTP, SWIFTUSDC or USDTUSD payouts pass an on-hold compliance review step; SWIFT has a 100 USD minimum and needs documents for third-party recipients
BRLPix, PIX Safe, TEDUSDC or USDTPix and PIX Safe are instant; TED follows Brazilian banking days
MXNSPEIUSDC or USDTInstant; recipient identified by CLABE
COPACH ColombiaUSDC or USDTAbout 1 business day
ARSTransfers 3.0USDC or USDTInstant; recipient identified by CBU
EURSEPAUSDC40 destination countries; minimum 11 USDC or 10 EUR; quote can be shorter than 5 minutes
GBPFaster PaymentsUSDCUK sort code and account number; quote can be shorter than 5 minutes

Every payout uses the same three steps: add the bank account once, create a quote, execute it before it expires (payouts docs). The currency follows from the bank account's type, so your treasury code doesn't branch much. Your recipient forms do.

Euros reach more places than the eurozone. BlindPay's SEPA list covers 40 countries, from Albania and Andorra to Switzerland and the United Kingdom. Pounds go over Faster Payments, which Pay.UK says runs "day and night, 365 days per year" and handles real-time payments of up to £1 million, with lower limits at individual banks (Pay.UK). The GBP rail is the newest one here; the USDC to GBP guide has the bank details.

Which network should the treasury hold USDC on?

One that every rail you pay accepts, so no payout waits on a rebalance. USDC itself runs on many blockchains, and Circle publishes the contract address for each (Circle). Not every payout path takes every network.

The constraints that matter for a multi-currency treasury:

  1. SEPA payouts take USDC from Polygon, Ethereum, Arbitrum, Base, Solana, and Stellar (SEPA changelog).
  2. Offramp wallets linked to SEPA or Faster Payments accounts accept deposits on Ethereum, Base, Arbitrum, Polygon, and Solana (offramp wallets).
  3. USDT is deployed on Polygon, Ethereum, Tron, Solana, and Tempo, and USDC on Ethereum, Polygon, Base, Arbitrum, Tempo, Arc, Stellar, and Solana (supported chains).
  4. The crypto leg of SEPA and Faster Payments payouts runs on Polygon whatever network you fund from. That changes on-chain timing you observe, not your API call.

So a USDC balance on Polygon, Ethereum, Base, Arbitrum, or Solana covers all seven currencies. A treasury that holds USDT needs some USDC on the side for euros and pounds.

If funds arrive on the wrong network, move them first. Cross-chain USDC transfers run between Ethereum, Polygon, Base, Arbitrum, and Arc through Circle's CCTP v2. Rebalancing USDC across networks before a payout walks through it, and which network to off-ramp on compares finality and fees.

How do quotes behave differently across currencies?

Same fields everywhere, different edge cases. Every payout quote returns commercial_quotation, blindpay_quotation, sender_amount, receiver_amount, and the fee lines (payout quotes). The rate reads in the destination currency per unit of stablecoin, which is worth getting right before you compare corridors; how to read an FX quote explains the direction.

The differences to code for:

  • Window length. 5 minutes by default; SEPA and Faster Payments can be shorter (cut-off times).
  • Minimums. SWIFT needs 100 USD requested. SEPA needs 11 USDC on the sender side or 10 EUR on the receiver side. Faster Payments has its own minimum per side, listed in the payouts docs.
  • Fixed side. currency_type: receiver fixes the local amount, which most teams want for salaries in BRL, MXN, or EUR. sender fixes the USDC.
  • Business days. ACH, wire, TED, ACH Colombia, and SEPA follow bank calendars. In the US, the Federal Reserve's 2026 holiday list still includes November 26 and December 25 (Federal Reserve).

Currency codes help keep this clean. ISO 4217 assigns each currency its three-letter code and minor unit (SIX, ISO 4217 maintenance agency), and all seven here use two decimals, so one integer amount format works across the book.

How big should a single float be?

Big enough to cover payouts until a top-up lands, plus a buffer for rates on local-currency amounts. One float, sized on total volume.

Illustrative example. A company pays this every month:

CurrencyMonthly payoutsIllustrative rateUSDC needed
USD (ACH)$40,0001.0040,000
BRL (Pix)R$ 216,0005.40 BRL per USDC216,000 / 5.40 = 40,000
MXN (SPEI)MX$ 370,00018.50 MXN per USDC370,000 / 18.50 = 20,000
EUR (SEPA)€9,2000.92 EUR per USDC9,200 / 0.92 = 10,000
GBP (Faster Payments)£7,4500.745 GBP per USDC7,450 / 0.745 = 10,000
Total120,000 USDC

Spread over about 21 business days, that's 120,000 / 21 = 5,714.29 USDC per business day. If a top-up takes up to 5 business days to arrive, the float needs 5,714.29 × 5 = 28,571.43 USDC, plus a buffer of 2% to 3% for local-currency amounts that cost more USDC when those currencies strengthen. Compare that with five separate local balances, each sized for its own peak.

Fees aren't in this table on purpose. They're per transaction and vary by rail and network, and BlindPay discloses them in the live quote before execute rather than in a static rate card. How much USDC to hold for payouts has the full sizing method, and batch payouts with live quotes shows how to run a mixed-currency batch row by row.

What to do next

On a development instance, add one bank account per currency you pay, request a quote for each from the same funding wallet, and note which ones return an expires_at shorter than 5 minutes. The payment methods reference lists the fields each rail needs.

FAQ