USDC is redeemable 1:1 at the issuer, but an off-ramp to a US bank still costs something. Where the cost hides in a USD quote, with a worked example.
USDC is designed to be worth exactly one US dollar, and Circle says it is redeemable 1:1. But an off-ramp from USDC to a US bank account is not free: the provider charges a margin in the rate, a flat fee, or both, and the bank rail adds its own timing. Expect slightly fewer dollars than USDC sent, with every cost visible in the quote.
So the honest answer is "1:1 at the issuer, close to 1:1 at the bank, and the gap is the price of the service." Here is where that gap sits and how to read it.
Key takeaways
commercial_quotation is 1, blindpay_quotation is 0.998, and 100.00 sent becomes 99.80 received.Yes, at the issuer, for institutions. Circle's USDC page says USDC is "backed 100% by highly liquid cash and cash-equivalent assets and is redeemable 1:1 for US dollars" (Circle). Its transparency page adds that most of the reserve sits in the Circle Reserve Fund, with monthly third-party assurance from a Big Four accounting firm (Circle transparency).
The catch is who gets that 1:1 door. Circle says Circle Mint lets "exchanges, institutional traders, banks, and large financial institutions" redeem directly, and that Mint "is not available to individuals or small businesses" (Circle).
Everyone else reaches dollars through an intermediary: an exchange, a wallet, or a payment API. That intermediary is the off-ramp, and it is where pricing happens. What USDC is covers the peg mechanics in more depth.
It charges the provider's margin and any flat fee, shown before you execute. On a BlindPay payout quote, commercial_quotation is the raw market exchange rate, blindpay_quotation is the rate net of BlindPay's fee, and flat_fee, partner_fee_amount, and billing_fee_amount itemize the rest (payout quotes docs).
The docs sample happens to be a dollar payout, which makes it a clean reference:
| Field | Docs sample | What it tells you |
|---|---|---|
commercial_quotation | 1 | The market rate between the stablecoin and the dollar |
blindpay_quotation | 0.998 | The rate applied after BlindPay's fee |
sender_amount | 10000 | 100.00 in stablecoin, in minor units |
receiver_amount | 9980 | 99.80 delivered to the bank account |
flat_fee | 20 | The flat-fee component of the quote |
10000 x 0.998 = 9980. Twenty cents on a hundred dollars, visible before anything moves. Your production numbers depend on rail, network, and plan.
BlindPay combines a monthly plan with per-transaction fees that vary by rail and network and are disclosed in the live quote before execute. There is no static rate card, so always read the quote's fee breakdown rather than a fixed basis-point number. Stablecoin off-ramp fees explained compares this structure with a bank wire.
Small in percentage terms, real in dollars. Here is the arithmetic on a mid-size payout.
Illustrative example. A company pays a US contractor $50,000 from a USDC treasury by domestic wire. Numbers are illustrative, not BlindPay pricing.
| Line | Calculation | Value |
|---|---|---|
USDC sent (sender_amount) | 50,000.00 USDC | |
Market rate (commercial_quotation) | 1.0000 | |
Quoted rate (blindpay_quotation) | 0.9980 | |
| Margin in the rate | (1.0000 - 0.9980) / 1.0000 | 0.20% |
| Dollars after the rate | 50,000 x 0.9980 | 49,900.00 USD |
| Total cost | 50,000 - 49,900 | 100.00 USD |
If the contractor must receive exactly $50,000, flip it: quote by the receiver amount, or set cover_fees: true so the fees are added on top of the stablecoin you send. The quote then tells you how much USDC to send, here about 50,100.20 (50,000 / 0.998).
Two costs sit outside the quote. The blockchain network fee to move your USDC to the payout, if you fund from your own wallet. And whatever your recipient's bank charges for an incoming wire, which is between them and their bank.
It depends on the rail you pick, not on the stablecoin. BlindPay's estimated arrival times are instant for RTP, about 1 business day for a domestic wire, and about 2 business days for ACH, and high volumes can affect estimates (bank accounts docs).
| Rail | BlindPay estimate | Network cut-off (ET) | Runs on weekends? |
|---|---|---|---|
| RTP | Instant | None | Yes |
| Domestic wire | ~1 business day | 3:00 PM | No |
| ACH | ~2 business days | 9:00 PM (3:00 PM for Same-Day ACH) | No |
The cut-offs come from BlindPay's cut-off times reference; requests after a cut-off move to the next business day. RTP is the outlier. The Clearing House says its RTP network runs 24/7/365, settles payments as final at any hour, and accepts up to $10 million per payment (The Clearing House).
For ACH, Nacha notes that Same Day ACH moves payments "within hours, on the same business day" (Nacha). Which ACH window your payout hits depends on when it reaches the network.
How to off-ramp USDC to a US bank account compares ACH, RTP, and wire field by field.
It can trade below a dollar on secondary markets during stress, even when redemption at the issuer holds. That is depeg risk. It has happened to major stablecoins, usually for hours or days, and it is the one way a USD off-ramp can carry price risk.
What protects a payout is the quote. Once you execute against a binding quote, the dollars the bank account receives are fixed. A depeg that starts after execution does not change receiver_amount. A depeg that starts before you quote will show up in commercial_quotation, and you can choose not to execute.
Because a reference price is not an executable price. A price feed shows the market rate between USDC and USD, which sits at or very close to 1. Your quote is a price someone will actually fill, including the cost of moving dollars over a bank rail and running compliance checks. Why the rate on Google differs from your off-ramp quote breaks the gap down.
If the direction of a rate ever confuses you, how to read an FX quote covers base and quote currencies. For a dollar payout, the rule is simple: multiply the USDC you send by blindpay_quotation and you get the dollars before any separate fee lines.
Request a USD payout quote for an ACH, wire, or RTP bank account on a development instance and compare commercial_quotation with blindpay_quotation. The payout quotes docs have the exact request body.
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.