Slippage on the way out, slippage on the way back in, and every fee the old position was still earning while you did it. pool2 holds the position itself, so there is nothing to unwind.
pool2 is a single contract holding Uniswap v4 positions across every listed pair. It does not wrap them, it does not mint a receipt against them, and it never unwinds one to serve a trade. When you swap, two NFTs change owner and nothing touches the underlying pools.
A v4 position enters the reserve untouched and keeps collecting fees while it sits there. It is the position, not a claim on one.
The curve reads reserve size, fee tier and whether the range is live. What comes out is what depth in your pair buys in theirs.
The reserve hands back a position in the pair you picked. No token ever changes hands, so there is no trade for anyone to front.
Every reserve carries a weight: the log of its depth, marked down by how far spot has drifted outside the range. A quote is one weight over the other, less impact and the protocol fee.
w(p) = log(1 + depth) / log(1 + depthMax) w(p) *= (1 - discount) // only when spot is outside [lo, hi] rate = w(from) / w(to) impact = min(0.30, size * depth(from) / (depth(to) * 400)) out = size * rate * (1 - impact) * (1 - 0.003)
Depth enters as a log, so a reserve ten times larger does not quote ten times stronger. A position sitting outside its range is marked down at most 45 percent and never to zero, because it still holds the tokens and comes back the moment price does.
Your v4 position is a PositionManager NFT. That single approval is the only one pool2 will ever ask you for.
The pair you hold and the pair you want. Each side shows its live band with spot marked on it, and anything trading outside gets flagged before you commit.
Rate, impact, minimum received and fee are all on screen before you sign. You set the slippage, and the minimum is enforced on chain rather than in the interface.
The reserve takes your position and returns one in the other pair in the same call. Nothing is sold, so there is no path for a sandwich to sit on.
No. Yours stays in the reserve and you receive one the reserve already held, sized by the quote.
They stay with the position and follow it. Whoever holds it when it leaves collects everything it accrued, including the time it spent in the reserve.
It earns nothing while price sits outside its band and it is one sided until price returns. The markdown scales with distance past the nearest boundary and stops at 45 percent.
Yes. Any pair with a live v4 pool. There is no allowlist, no application and nobody to ask.
Yes, one contract holds every position across every pair. Depth is shared instead of fragmented into a market per pair.
Then there is nothing to quote against and the pair will not price. Reserve depth per pair sits in the left column, and a thin side tells you through price impact long before it runs out.
Thirty basis points is taken on every position swap and accrues to the token rather than to a treasury address. Fixed supply of 1,000,000, no owner key, no mint function, no pause and no proxy. The address in the top bar is the only official one.
PositionManager NFTs. Nothing is wrapped.1. No bridges, no sidechains.PositionManager approval. The reserve never touches a token balance.| Parameter | Value | Set by |
|---|---|---|
| Protocol fee | 30 bps | immutable |
| Max price impact | 30.00% | immutable |
| Max out of range discount | 45.00% | immutable |
| Discount slope | 0.55 | immutable |
| Depth curve | log | immutable |
| Default slippage | 0.50% | caller |
| Total supply | 1,000,000 | fixed at deploy |
| Owner | none | renounced |
None of those have a setter. No owner key, no pause, no proxy behind them. What the quote is built from today is what it will be built from in a year.