Skip to main content
Back to Blog
DeFi

Uniswap Liquidity Ranges: In, Out or on the Edge

Every Uniswap LP already holds a three-way position: inside the band, above it or below it. Here is how that maps to a Yes/No/Maybe market.

6 min read
Abstract editorial cover: translucent electric blue geometric blocks with one amber block over faint contour lines on deep navy, Oddup logomark bottom-left, DeFi tag.
Uniswap liquidity ranges: inside the band, above it or below it.

Every Uniswap liquidity provider makes a forecast before they earn a cent. They pick a lower price and an upper price. Then the market tells them, block by block, whether they were right. The position is either inside the band, above it or below it.

That is three outcomes, not two. Most DeFi commentary talks about ranges as a yield setting. It is better read as a range market that the LP has already entered. Once you see it that way, the Maybe outcome stops looking exotic. It looks like the most natural question in DeFi.

The Yes/No/Maybe mechanic, briefly

An Oddup market has three outcomes: Yes, No and Maybe. Yes and No split 90% of the pool reserve. Maybe wins 10% of the pool reserve. Maybe is a hedge, not a guaranteed win on every pool. It suits questions with a genuine middle state that the rules define before trading starts. Our Maybe outcome explainer covers the full mechanic.

How a Uniswap range actually works

The core idea is concentrated liquidity. In the words of the Uniswap documentation, it is "liquidity that is allocated within a custom price range." Earlier versions spread liquidity evenly from zero to infinity. From v3 onwards, an LP can concentrate capital in a narrow band instead.

The docs give a stablecoin example. An LP in a stablecoin pair might allocate capital only between 0.99 and 1.01. Traders get deeper liquidity near the mid-price. LPs can earn more fees with the same capital.

The trade-off is the boundary. The same documentation is blunt about it. When the price leaves a position's interval, its liquidity "is no longer active and no longer earns fees." If the price comes back, the liquidity turns active again and starts earning once more.

The Uniswap developer guide to fees makes the same point from the income side. Only in-range liquidity earns swap fees. Fees go pro rata to the liquidity active at the time of each swap. LP income therefore depends on two things: how much you supply, and how well your range tracks the price.

Three states, not two

Take an ETH/USDC position to make the mechanics concrete. The LP sets a lower bound and an upper bound. Three things can then be true at any moment.

  • Inside the band. The position holds both tokens and earns its share of fees.
  • Above the band. ETH has risen past the upper bound. Swappers have bought the LP's ETH along the way. The position now holds only USDC and earns nothing.
  • Below the band. ETH has fallen past the lower bound. Swappers have sold ETH into the position. It now holds only ETH and earns nothing.

The Uniswap docs describe that drift directly. As price moves one way, LPs gain more of one asset until "their entire position consists of a single asset." The developer FAQ adds that once a position is fully out of range, it holds only one of the two tokens.

Notice the asymmetry. Above the band and below the band are not mirror images for the LP. One leaves them holding the stablecoin after selling a rising asset. The other leaves them holding a falling asset. Both stop the fees. Only the middle state pays.

That is why a binary question fits ranges badly. "Will ETH stay in range?" lumps two very different exits into one No. A three-outcome question keeps them apart.

Ticks make the band precise

A good market needs boundaries nobody can argue about. Uniswap ranges already have them.

Price space in Uniswap is cut into ticks. Per the concentrated liquidity docs, one tick represents a 0.01% move in price at any point. Every position must choose a lower tick and an upper tick as its borders.

That has a useful side effect. A band is not "roughly 5% either side". It is a specific pair of tick numbers. When an LP enters a custom price, the app rounds it to the nearest usable tick, as Uniswap's support guide notes. The boundary is written on-chain, not in a forum post.

Fee settings also shape the band. In v3, tick spacing is tied to the fee tier. Lower fee tiers allow closer active ticks. Higher tiers space them further apart. Uniswap v3 offered four tiers: 0.01%, 0.05%, 0.3% and 1%. Uniswap v4 drops fixed tiers. According to the fees guide, pool creators can set any fee from 0% to 100% in steps of 0.0001%. Hooks can also make fees dynamic.

Worked example: turning an LP band into a market

The numbers below are illustrative. They show structure, not a forecast or a live price.

Suppose an ETH/USDC pool trades at a reference price we will call P. An LP opens a position from 5% below P to 5% above P. In tick terms, that is roughly 513 ticks below and 488 ticks above the starting tick. The gap is uneven because ticks are multiplicative, not linear. Each tick is a 0.01% step, so a 5% fall takes more ticks than a 5% rise.

Now write the market question. "At 00:00 UTC on settlement day, where is the reference price relative to the band?"

  • Yes: above the upper bound of 1.05 × P.
  • Maybe: between 0.95 × P and 1.05 × P, inclusive.
  • No: below the lower bound of 0.95 × P.

Read each outcome as an LP would.

Maybe is the fee-earning state. An LP who expects a quiet week is already long this outcome through their position. A trader who expects calm without supplying liquidity can express the same view directly.

Yes is the "sold too early" state. The LP's ETH has been swapped into USDC on the way up. An LP worried about that outcome can treat Yes as a hedge against a breakout.

No is the "caught holding the falling asset" state. The position is now all ETH, bought on the way down. An LP worried about a slide can treat No as the hedge on the other side.

The point is fit. The LP's real exposure already has three states. A three-outcome market lets them hedge either exit without paying for protection they do not need.

The question must name the price

Here the clean picture gets harder. A Uniswap position goes out of range based on the pool's own price. A prediction market should rarely settle on that same number.

The reason is incentive. A large swap can push one pool's spot price across a tick briefly. If a market settles on that print, someone holding Yes or No may try to move it. The pool price is honest about the pool. It is a fragile settlement source for anyone with money riding on it.

So the rules must answer three questions before trading starts:

  • Which price? A named oracle feed or a time-weighted measure is safer than one pool's spot price. Our guide to reading the data feed first covers what to check.
  • At what time? A single timestamp, stated in UTC, avoids arguments. Our piece on a market clock explains why.
  • Which boundary wins a tie? State whether a price exactly on a bound counts as Maybe. Above, we said inclusive. Write it down.

A band defined this way also follows the lesson in define the Maybe band first. The middle comes from fixed numbers, not a judgement after the fact.

What hooks change

Uniswap v4 adds hooks. These are contracts that run custom logic around swaps and liquidity changes. The v4 architecture docs list uses such as limit orders, custom oracles, fee management and automated liquidity management.

Two of those matter for range markets. Automated liquidity management can move a position's band when price drifts. That means "in range" may describe a moving target, not a fixed one. A market should reference fixed price bounds, not a hook-managed position.

Dynamic fees also change the pay-off of being in range. A pool's fee can shift per swap or on a schedule. The fee an LP earns while inside the band is no longer a fixed rate. That does not change the three states. It changes how much the middle state is worth to the LP.

There is also a safety note. Uniswap's own support pages warn that hooks come from independent developers and some may be malicious. Any market that depends on hook behaviour inherits that risk. Read the hook before you read the price.

Why this matters for prediction traders

DeFi already runs on range bets. Uniswap LPs place one every time they open a concentrated position. They earn in the middle and carry a different exposure at each edge.

A binary market flattens that shape into in or out. A Yes/No/Maybe market keeps it. Traders can take the calm view, the breakout view or the slide view as separate positions. LPs can hedge the exit they fear without hedging the one they do not.

The work is in the rules. Name the price source. Fix the clock. Write the bounds as numbers. Do that, and the most common position in DeFi becomes one of the cleanest questions a prediction market can ask.

This article is for educational and informational purposes only. It is not financial, investment, legal or tax advice, and it does not recommend any trade or predict any price. The worked example uses illustrative figures, not live market data. Providing liquidity and trading prediction markets both involve risk, including loss of funds. Smart contracts and third-party hooks carry additional technical risk. Availability varies by jurisdiction. Read each market's full rules and settlement source before participating. Oddup does not make price predictions or guarantee outcomes.

Share this article Share on X Share on LinkedIn
Back to Blog