← All posts

Opening a range with one token

Uniswap V3 normally wants both sides of the pair. One operation takes a single token and works the range out on-chain from where the price is.

Strategy2 min readDeFiLoops

In short: You hold one token and want to provide liquidity on Uniswap V3, which usually asks for both tokens in the right mix. One operation takes a single token and works out the range on-chain, from the price at the moment the transaction runs. You still pick the fee tier, but you give up choosing your own range, so if the range is your strategy, use the normal mint instead.

Providing liquidity on Uniswap V3 normally asks for both sides of the pair in a ratio that depends on where the price sits relative to your range. Work it out wrong and you are left holding a remainder you have to do something with.

So the ordinary path to an LP from a single asset is: swap half of it, get the ratio slightly wrong, put both in, keep the dust. Three decisions, two of them arithmetic. One operation takes a single token and does all of it.

What it does differently

It differs from the ordinary mint in two ways, and the second matters more.

One side is zero
You supply one token and leave the other at zero. This is enforced: exactly one of the two amounts must be nothing
The ticks are computed on-chain
You do not name the range. It is derived from the current tick at the moment the transaction executes

That second row is the reason this exists. Any range you compute in advance is a range around a price that has already moved by the time the transaction lands. Deriving it on-chain builds the position around the price at execution instead of the price you planned with.

The fee tier is still yours

You choose the pool. And the tiers are named in the pool’s own millionths rather than basis points, which catches people out constantly: a 0.05% pool is 500, a 0.3% pool is 3000, and a 1% pool is 10000. Base carries some tiers that do not exist elsewhere.

The tier decides which pool you are in; it does not set a fee on your position. Different tiers on the same pair are different pools, with different liquidity and different prices.

When this is the right tool

  • You hold one asset and want it working, without a view on the range.
  • You are following a swap with an LP in the same plan, and the amount arriving is not known exactly in advance.
  • You want the position centred on the real price rather than on your estimate of it.

And when it is not: any time the range is the decision. A one-spacing range around the current price is also not splittable afterwards, which is worth knowing if a split is in your plans.