Swapper

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.

Open the swap app →

At a glance

You sendNative USDC on Arbitrum One (chain ID 42161), contract 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
You receiveXMR at a Monero address you control
Account or KYCNone: no account, login, identity documents or wallet connection
FeesSwapper's fee (currently 1%) and the provider's fees are inside the quoted rate; only the Arbitrum One gas (in ETH) comes on top
MinimumThe provider's minimum swap value, shown on the quote as Minimum swap
TimeUSDC to XMR usually completes in about 5 minutes once funded
Who holds the fundsNever Swapper: the provider holds your USDC only while the swap executes

What you need

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

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

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.

Open the swap app →