Swap tokens, and watch the price move as the order grows.
Every quote here runs on a real constant-product curve, the same math a DEX uses. A bigger order moves the price, and the widget shows you exactly how much before you ever sign.
Type a bigger number. The order marker slides down the curve and the shaded wedge, the price you give up, grows with it. That is the constant product doing its job, not a flat fee pretending nothing moved.
One trade, split across pools.
The best price is rarely in one pool. The router splits the order, takes the multi-hop when it wins, and lands you more out than any single pool would.
Signing shouldn't mean hoping.
Every swap goes out carrying its own guards. Here is the exact transaction, annotated, and beside it the floor doing its job. Move the market and watch it decide.
router.exactInput({ path: bestRoute(ETH, USDC), amountIn: 10 ETH, amountOutMinimum: 31_820,a floor. moves past it, the tx reverts deadline: now + 60s,a stuck tx can't fill later at a stale price approval: exact(10 ETH),this swap only, not an open allowance})At or above your floor, so the swap fills.
Everything on this page comes from that one identity. The quote is the curve, the impact is the slope, and the swap won't send without a floor and a deadline. It's all here to read, because a swap you can't inspect is a swap you shouldn't sign.
1// constant-product AMM: the pool holds x of tokenIn and y of2// tokenOut, and x * y stays constant across the trade3export function quote(amountIn, reserveIn, reserveOut, fee = 0.003) {4 const inAfterFee = amountIn * (1 - fee);5 const amountOut = (reserveOut * inAfterFee) / (reserveIn + inAfterFee);67 const midPrice = reserveOut / reserveIn; // before the trade8 const execPrice = amountOut / amountIn; // what you get9 const priceImpact = 1 - execPrice / midPrice; // grows with size1011 return { amountOut, priceImpact };12}We build the exchange, not the promise.
Real routing, honest price impact, guards that actually revert, and wallet signing wired in. Tell us the pairs and the chain, and we come back with a scope.