Guides

Make a private trade

Buy or sell from inside the shield without handing front-runners the trade before it lands. One atomic transaction spends your shielded notes, fills against public liquidity, and re-shields the result — your wallet never signs the swap.

Live · mainnet & testnet
Private trading runs in the web app and the CLI. Mainnet trades fill against the chain’s live Uniswap V3, and every spend is gasless by default through the network relayer.

How a trade moves

Shielded notes
your private balance
Spend proof + swap
one atomic tx via the adapter
in the shield
Public liquidity
exact-output fill
out and back
Shielded output
the received token, re-noted

The whole thing is exact-output: you name the amount you want to receive, and the adapter shapes the fill to hit it in a single transaction. There is no half-filled state and no order left sitting in the mempool for a bot to read.

1 — Say what you want to receive

In the app, the Swap card is the home screen: pick both tokens and type either side. In the terminal it is one command.

cowl trade 0.3 USDG      # receive 0.3 USDG, paid from your shielded notes
cowl trade 0.001 ETH     # receive 0.001 of the native coin

Cowl quotes the price, shows you the spend and the relayer fee, and waits for your confirmation. Quotes scan every Uniswap V3 fee tier and take the best executable fill, so an asset whose only pool sits on an unusual tier still routes. Trades snap to the shared denominations by default; add --exact for a precise size, or --max to cap what you will spend.

A pair with no direct pool runs as two private legs through the native asset. Between them the value sits as a shielded note, so nothing unshields in the middle.

2 — It settles gaslessly

By default the trade is submitted by the network relayer, so the on-chain transaction comes from the relayer’s address, not yours. Your funding wallet never appears as the gas payer. Point at a different relayer with --relay <url>, or submit it yourself with --self.

3 — Read your book after the fill

cowl balance --shielded   # the received token is now a private note

In the app the Portfolio tab refreshes itself once the chain catches up, so a green run never leaves a stale number on screen.

Accumulation is where visibility hurts most
On a public venue your own buying moves price against you as watchers pile in. Shielded, you build the position before anyone knows it exists.

Related