Private USDC orders for one buyer wallet.

Private mode restricts a deposit to one buyer wallet and gives you one link to share. Use it when you already know the buyer and do not want the order open to everyone.

01

How a private order is created

  1. 01Create a normal Base contract deposit in Sell for your amount, payment method, and currency.
  2. 02From Deposits, lock that deposit to the buyer's wallet: an address, ENS .eth, or PNS .peer name.
  3. 03The app enables WhitelistPolicy for every exact payment method, admits the buyer, and opts those methods out of default stake-backed dispute protection.
  4. 04You get a link at usdctofiat.xyz/d/<escrow>/<depositId> to send the approved buyer.
02

Why it takes more than one transaction

The deposit, its access policy, and its dispute-protection settings are separate onchain state. After EscrowV2 creates the deposit, the app verifies its exact methods onchain, enables WhitelistPolicy, admits the buyer, and opts those methods out of the stake-backed public route. It reports the order as restricted only after every update confirms on Base.

ComponentRole
EscrowV2Stores the USDC deposit
WhitelistPolicyGates each exact payment method
03

Cost model on a private fill

A private order has the same seller cost model as a public delegated deposit: no platform fee to create the order, Base gas for onchain actions, and no deduction from the fiat you receive in the payment app. Buyer-side fee configuration can vary by route.

Restricted onchain

One wallet can fill it. Every other wallet is rejected.

A private order enables every exact method in WhitelistPolicy for one approved buyer and opts those methods out of default stake-backed dispute protection. Neither an unapproved nor a staked nonmember wallet can fill it.

The app confirms every policy update before showing the order as restricted. Disabling restores default-on dispute protection before reopening access.

EscrowV2
0x777777779d229cdF3110e9de47943791c26300Efdeposit lives here
Access policy
WhitelistPolicygates each payment method
Share link
usdctofiat.xyz/d/<escrow>/<depositId>one buyer, one URL

Common questions

What is USDCtoFiat?

USDCtoFiat coordinates non-custodial sales of native Base USDC for USD, EUR, or GBP through ZKP2P smart contracts. Payment-provider eligibility and account policies still apply; technical route support is not permission to use an external account, and Wise currently prohibits P2P crypto-sale receipts.

Does USDCtoFiat hold my funds?

No. You sign every transaction from your own wallet. Your USDC is locked in a public Base contract and releases to the buyer only after their payment is proven. You can withdraw any unfilled deposit at any time.

What does it cost to sell?

Creating and managing a seller deposit is free, though Base gas applies to onchain actions. On delegated fills, Delegate's 0.10% manager fee comes from the USDC released to the buyer, not from your fiat proceeds or your quoted rate.

Do I need a centralized exchange account?

No exchange account is required to use USDCtoFiat. You need a wallet holding USDC on Base and an account on the payment app you want to be paid in. The payment app's own account rules and limits still apply.

Do I need to complete KYC?

USDCtoFiat does not collect identity documents, hold your fiat, or hold your keys. The payment app you use still controls its own verification, limits, and account rules. USDC settlement happens through Base smart contracts, and we cannot change what Venmo, PayPal, Wise, Zelle, or your bank requires.

Can anyone else fill a private OTC order?

No. WhitelistPolicy enables every exact payment method for the approved buyer, and the explicit dispute-protection opt-out removes the stake-backed route for nonmembers. The Base contracts reject any other wallet onchain.