Unlisted
DEX

Swapping and routes

Which routes

For a pair, the DEX takes up to ten direct pools with a swap in the last 7 days and every two-hop route through ETH, WETH or USDG (three pools per leg), and quotes all of them at once with the V4 Quoter through Multicall3. The best output comes first. Vanilla pools and hooked pools compete on the same list.

The transaction

One call to Uniswap's Universal Router 0x8876789976decbfcbbbe364623c63652db8c0904, command V4_SWAP, with these actions:

SWAP_EXACT_IN_SINGLE   one pool: pool key, direction, amount in, minimum out
SWAP_EXACT_IN          two pools: a path through ETH, WETH or USDG
SETTLE_ALL             pay the input (ETH from msg.value, ERC-20 via Permit2)
TAKE_PORTION           10 bps of the output to UnlistedBonds, once it is live
TAKE_ALL               the rest to you, at least the minimum

The app re-quotes right before you sign, simulates the call, and sets the minimum from your slippage (0.5% by default).

Approvals

ETH needs none. An ERC-20 needs two the first time: the token approves Permit2 (0x000000000022D473030F116dDEE9F6B43aC78BA3), then Permit2 lets the Universal Router spend it for 30 days. Both are standard Uniswap contracts.

The extra confirmation

A route through a hook nobody has bonded behind needs one more tick: you confirm you read what the hook can do. Bonded hooks skip it.

MetaMask and Rabby

Any injected wallet works. The app asks to switch to Robinhood Chain (id 4663) and adds it if your wallet does not have it.