When private orders fit
Public deposits are discoverable by anyone. Private OTC deposits are for the opposite case: you know the buyer wallet and you want exactly that wallet, and only that wallet, to be able to start the fill.
This is useful for friend-and-family transfers, desk-style relationships, payroll-like payouts, and negotiated trades where both sides already agreed the payment app, currency, and size.
How restriction works
- 01The seller creates a normal USDC deposit on Base from the Sell tab.
- 02From Deposits, the seller locks the deposit to the buyer wallet: an address, ENS .eth, or PNS .peer name.
- 03The app attaches WhitelistPreIntentHook to the deposit onchain.
- 04The seller shares a link at usdctofiat.xyz/d/<escrow>/<depositId>.
- 05Any wallet except the approved buyer is rejected onchain before intent creation.
Private does not mean invisible
The restriction is enforced onchain, so the deposit, hook, and fill transactions remain visible on Base. Private means fill access is restricted to one buyer wallet; it does not hide contract activity from block explorers.