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.
Unlisted