Convert USDC to Monero
Spend native USDC on Arbitrum One and receive XMR at your own Monero address. No KYC, no account, no wallet connection: paste your address, send one deposit, track the order.
At a glance
| You send | Native USDC on Arbitrum One (chain ID 42161), contract 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
|---|---|
| You receive | XMR at a Monero address you control |
| Account or KYC | None: no account, login, identity documents or wallet connection |
| Fees | Swapper's fee (currently 1%) and the provider's fees are inside the quoted rate; only the Arbitrum One gas (in ETH) comes on top |
| Minimum | The provider's minimum swap value, shown on the quote as Minimum swap |
| Time | USDC to XMR usually completes in about 5 minutes once funded |
| Who holds the funds | Never Swapper: the provider holds your USDC only while the swap executes |
What you need
- Native USDC on Arbitrum One in a wallet you control. Not USDC.e, not USDC on Ethereum mainnet.
- A little ETH on Arbitrum One to pay gas for the transfer.
- A Monero address you control (95 or 106 characters). Never use an exchange deposit address unless the exchange explicitly supports it.
Missing USDC or ETH on Arbitrum One? Get USDC on Arbitrum One lists the routes, including coming from Ethereum mainnet.
How to buy Monero with USDC, step by step
- Hold native USDC and a little ETH on Arbitrum One. In a wallet you control: native USDC (contract 0xaf88d065e77c8cC2239327C5EDb3A432268e5831, not bridged USDC.e) and a small amount of ETH for gas, both on Arbitrum One.
- Get a quote. Open the swap app, choose USDC → XMR and enter how much USDC you want to spend. The quote shows the rate, Swapper's fee, the provider's minimum swap and a typical time. The XMR amount already has every fee taken out, but it is an estimate, not a guarantee.
- Paste your Monero address. Enter a Monero address you control (95 or 106 characters). Swapper checks that it is a mainnet address with a valid checksum.
- Get the deposit address. Press Get deposit address. Once Swapper has checked the provider's order against your quote, you see a one-time deposit address on Arbitrum One, the exact USDC amount and an expiry time, shown only while at least 10 minutes remain. Keep the order ID (ord_...). Nothing has moved yet.
- Send the exact USDC. From your own wallet, send exactly that amount of native USDC on Arbitrum One, in one transfer, before the expiry. Gas is paid in ETH on top. Never send a second deposit to the same address.
- Receive the XMR. USDC to XMR usually completes in about 5 minutes once funded. The order shows completed when the provider reports the XMR sent. Your Monero wallet may show the incoming XMR as locked until it has 10 confirmations (about 20 minutes).
Fees: what you pay
- Swapper's integrator fee, currently 1%, inside the quoted rate. The quote shows it as Fee.
- The provider's own fees, also inside the rate, itemized only when the provider reports a breakdown.
- Arbitrum One gas, paid in ETH by your wallet when it sends the USDC. This is the only cost outside the quote.
There is no account fee, subscription or withdrawal fee. The XMR estimate is not a guarantee: the provider publishes no minimum receive amount, and the final amount is set when the swap runs.
Minimum amount
The swap provider sets a minimum swap value in US dollars. The quote shows it as Minimum swap (in the asset you send and in dollars), and the app does not create an order below it. Developers read it from each quote (terms.minimumSwapUsd) or from GET https://xmrtousdc.xyz/api/v1/chains (minSwapUsd).
How long it takes
USDC to XMR usually completes in about 5 minutes once funded. The order shows completed when the provider reports the XMR sent; your Monero wallet may show it as locked until it has 10 confirmations (about 20 minutes). If you already sent the USDC, do not send again: detection can take a few minutes.
Mistakes to avoid
- Send native USDC (contract 0xaf88d065e77c8cC2239327C5EDb3A432268e5831). Bridged USDC.e (0xff970a61a04b1ca14834a43f5de4533ebddb5cc8) is a different token.
- Use the Arbitrum One network (chain ID 42161). Ethereum mainnet, Arbitrum Nova and other chains are different networks.
- Send from a wallet you control on Arbitrum One. Exchange withdrawals to the deposit address may arrive split, late, short by a withdrawal fee or from shared addresses; withdraw to your own wallet first.
- Send the exact deposit amount in a single transfer before the order's expiresAt.
- Never reuse an old deposit address: every order has its own, and it expires.
Need an exact amount of XMR?
The app quotes by the USDC you spend. To ask for a specific amount ("I want 1 XMR"), use an AI agent or the API: Swapper finds the USDC amount whose estimate meets the target. Connect an MCP client (setup) and ask "Get me 1 XMR at YOUR_MONERO_ADDRESS", or quote over HTTPS:
curl -sS https://xmrtousdc.xyz/api/v1/agent/swap/quote \
-H "content-type: application/json" \
-d '{"direction":"u2x","receiveAmount":"1","to":"YOUR_MONERO_ADDRESS"}'
The full walkthrough, with the payment link and status polling: Buy XMR with USDC. For developers: the Monero swap API.
Questions
Can I buy Monero with USDC without KYC?
Yes. No account, login, identity documents (no KYC), API key or wallet connection: you only provide the address that receives the swap. The swap provider (Wagyu) applies its own screening, which Swapper cannot check. Not available in restricted regions, including the US.
Which USDC can I pay with?
Only native USDC on Arbitrum One (contract 0xaf88d065e77c8cC2239327C5EDb3A432268e5831). Bridged USDC.e (0xff970a61a04b1ca14834a43f5de4533ebddb5cc8) and USDC on Ethereum mainnet or another network are not detected by the order: swap or bridge them to native USDC on Arbitrum One first.
Why do I need ETH?
The wallet that sends the USDC pays the Arbitrum One transaction fee (gas) in ETH, so keep a small amount of ETH on Arbitrum One. The USDC deposit itself must be the exact amount shown.
How long does USDC to XMR take?
USDC to XMR usually completes in about 5 minutes once funded. Your Monero wallet may then show the XMR as locked until it has 10 confirmations (about 20 minutes).
How much does buying XMR with USDC cost?
Swapper earns an integrator fee that is already included in the quoted rate (currently 1%; every quote shows it). Nothing is added on top of the quote apart from the network fee for sending the deposit. For USDC to XMR that network fee is the gas, paid in ETH on Arbitrum One. The provider's own fees are also inside the rate.
What is the minimum amount of USDC?
The swap provider sets a minimum swap value in US dollars. The quote shows it as Minimum swap (in the asset you send and in dollars), and the app does not create an order below it. Developers read it from each quote (terms.minimumSwapUsd) or from GET https://xmrtousdc.xyz/api/v1/chains (minSwapUsd).
Can I ask for an exact amount of XMR?
The app quotes by the USDC you spend. An AI agent or the API can quote by the XMR you want to receive instead (receiveAmount, with direction u2x): Swapper finds the USDC amount whose estimate meets the target. It is still an estimate: the provider publishes no minimum receive amount.
Can I pay straight from an exchange withdrawal?
Avoid it. Exchange withdrawals can arrive split, late, short by a withdrawal fee or from shared addresses. Withdraw to your own wallet on Arbitrum One, then send the exact deposit from there.
Does Swapper hold my USDC?
No. Swapper never holds your funds. Each order gets a one-time deposit address from the swap provider, which holds the deposit only while the swap executes, then pays out (or refunds).
Related: USDC to XMR, the short version · Monero to USDC · FAQ. Something went wrong? Email support@xmrtousdc.xyz with your ord_... order ID.