On-ramp USDC is either minted by the issuer or bought on the secondary market. How each works, how arbitrage links them, and what it means for quotes.
On-ramp USDC comes from one of two places. The issuer, Circle, mints new USDC when an approved institution deposits dollars. Or existing USDC is bought on the secondary market from exchanges, market makers, and other holders. The token is identical either way, but the source shapes the price, hours, and size a ramp can quote.
Most people buying stablecoins never think about this. You send dollars or reais, USDC shows up in a wallet. But the path behind that quote explains why dollar on-ramps cost almost nothing and real on-ramps carry a spread.
Key takeaways
New USDC is minted by Circle when an eligible customer deposits dollars, and burned when it is redeemed for dollars. This is called the primary market.
Access is restricted. Circle describes Circle Mint as "for institutional customers," typically exchanges, institutional traders, wallet providers, banks, and consumer apps, and says customers must pass background, KYC, and sanctions checks (Circle Mint). It is not offered to retail consumers. Circle also states that USDC can be redeemed 1:1 for US dollars through Circle.
The dollars behind the tokens sit in reserves. Circle says the majority is held in the Circle Reserve Fund, the rest mostly in cash at large banks, held separately from Circle's operating funds, with weekly disclosures and monthly third-party assurance from a Big Four accounting firm (Circle transparency). What USDC is covers the backing in more detail.
The secondary market is everywhere existing USDC changes hands: centralized exchanges, decentralized exchange pools, OTC desks, and market makers.
This is where prices are set day to day. A Federal Reserve note on stablecoin markets says "secondary markets for stablecoins provide the default source of pricing data for market observers," and that for USDC "only direct customers of Circle (cleared through an application process) have access to the primary market" (Federal Reserve, FEDS Notes, February 2024).
Market makers sit between the two. They hold inventory of USDC and dollars (or reais, or pesos) and quote both sides. What a market maker does in stablecoin payments explains how their price becomes the rate on your quote.
| Question | Primary market (mint and redeem) | Secondary market (trade) |
|---|---|---|
| Who can use it | Approved institutional customers of the issuer | Anyone with an exchange account, wallet, or ramp |
| Price | Par: one dollar in, one USDC out | Floats around one dollar, usually very close |
| Hours | Tied to banking hours for the dollar leg | Exchanges and blockchains trade 24/7 |
| Size | Built for large tickets | From tiny trades to large OTC blocks |
| Main dependency | Banks moving dollars to and from reserves | Depth of order books and pools |
| What can go wrong | Bank delays, reserve problems | Price drifts from the peg in stress |
Neither is better in general. A large institution with dollars sitting in a bank on a Tuesday morning gets par from the issuer. A payment on a Sunday night needs the secondary market. Onchain liquidity vs off-ramp liquidity explains why deep onchain pools still don't guarantee a deep local payout.
When the secondary price drifts, direct customers of the issuer trade the gap away.
If USDC trades at $0.997 on an exchange, a direct customer buys it there and redeems it with Circle at $1.00. If it trades at $1.003, they mint at $1.00 and sell above par. The Fed note describes exactly this: direct customers profit from "differences between the primary exchange rate and the exchange rate on secondary markets," which pushes prices back toward the peg.
It works until the primary market can't keep up. In March 2023, after part of USDC's reserves got stuck at a failed US bank, USDC and DAI de-pegged, "reaching lows of under 90 cents," and Circle said USDC "issuance and redemption is constrained by the working hours of the U.S. banking system" (same Fed note). Prices recovered over roughly three days. Stablecoin depeg risk for payment companies covers how to set limits for events like that.
Because a dollar on-ramp is dollar to dollar, and a local currency on-ramp is a currency conversion plus dollar to dollar.
How to read an FX quote explains which way the rate points on an on-ramp, and how to on-ramp BRL, MXN, ARS, and COP covers the local rails.
Illustrative example. Two customers each want about 10,000 USDC. One pays in dollars, one in reais over Pix. The rates and fees below are made up to show the math. They are not BlindPay prices.
| Line | USD over ACH | BRL over Pix |
|---|---|---|
| Market rate | 1.0000 USD per USDC | 5.4000 BRL per USDC |
| Quoted rate | 1.0000 USD per USDC | 5.4270 BRL per USDC |
| Margin in the rate | 0% | (5.4270 - 5.4000) / 5.4000 = 0.50% |
| Amount paid in | $10,000.00 | R$ 54,000.00 |
| USDC before fees | 10,000 / 1.0000 = 10,000.00 | 54,000 / 5.4270 = 9,950.25 |
| Flat fee | 2.00 USDC | 2.00 USDC |
| USDC received | 9,998.00 | 9,948.25 |
| Total cost vs market | 2.00 USDC (0.02%) | 10,000.00 - 9,948.25 = 51.75 USDC (0.52%) |
Same flat fee. The real on-ramp costs 26 times more, and almost all of it is the FX spread. That spread comes from the BRL market and whoever holds reais and dollars on the other side, not from how USDC was created.
Mostly no. USDC is fungible. A token minted this morning and one traded a thousand times carry the same claim.
What matters is what the source lets the ramp promise you:
A BlindPay on-ramp starts with a payin quote. It returns sender_amount, the fiat the payer sends, receiver_amount, the stablecoin the destination wallet receives, and commercial_quotation, the raw market rate, next to blindpay_quotation, the rate including BlindPay's fee. The quote is valid for 5 minutes (payin quotes).
Payins can be funded over ACH, wire, Pix, SPEI, Transfers 3.0 in Argentina, and PSE in Colombia, and deliver USDC or USDT to an external blockchain wallet or a BlindPay-managed wallet, depending on the network. Large BRL payins can use an OTC quote with a 10-second window. OTC quotes vs standard quotes covers when that fits. BlindPay combines a monthly plan with per-transaction fees that vary by rail and network and are disclosed in the live quote before execute.
Request a payin quote in dollars and one in reais for the same stablecoin amount on a development instance, and compare the gap between commercial_quotation and blindpay_quotation on each. The payin quotes docs have request examples for every payment method.
Seven places blockchain payments beat bank rails: contractor payroll, remittances, B2B suppliers, marketplaces, 24/7 treasury, bill pay, and PSP payouts.
Push means the payer sends an ACH transfer. Pull means you debit a connected account. How each funds a USD to USDC on-ramp, the fees, and the return risk.
AP2, ACP, and x402 each verify that an AI agent had permission to spend. Here is what every protocol covers, who backs it, and the reconciliation gap none of them close.