How a private order is created
- 01Create a normal Base contract deposit in Sell for your amount, payment method, and currency.
- 02From Deposits, lock that deposit to the buyer's wallet: an address, ENS .eth, or PNS .peer name.
- 03The app enables WhitelistPolicy for every exact payment method, admits the buyer, and opts those methods out of default stake-backed dispute protection.
- 04You get a link at usdctofiat.xyz/d/<escrow>/<depositId> to send the approved buyer.
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.
| Component | Role |
|---|---|
| EscrowV2 | Stores the USDC deposit |
| WhitelistPolicy | Gates each exact payment method |
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.