Private deals

A private deal is a fixed trade between two parties: the seller names the amount and the price, the taker accepts or not. No auction, no pool.
Create
On /deals the seller picks a token (any ERC-20 on Robinhood Chain, Pons coins before graduation included), an amount, a price for the whole amount in USDG or ETH, an optional taker address and an expiry. The browser draws a random 32-byte key and sends its hash with the deal:
create(token, amount, quote, price, taker, expiry, keccak256(key))The tokens move into the escrow. The seller gets a link of the form /deal#k=0x…. The part after # is never sent to any server by the browser.
Fill
The link opens a page that reads the deal by the hash of its key and shows the terms. The taker pays the exact price plus the 0.25% fee, and fill(key) moves the payment, the seller's proceeds and the tokens in the same transaction. A second fill of the same deal reverts.
Cancel
The seller can call cancel(keyHash) any time before a fill, expired or not, and gets the tokens back. If a fill and a cancel race, whichever is included first wins and the other reverts.
How private it is
Deals are as private as the link: anyone holding it can fill, unless the deal is bound to one taker address. The terms are written to the chain when the deal is created, like any transaction; what the key adds is that the deal sits on no order book and on no chart, and that nobody fills it without the key. The key is revealed in the fill transaction.