[Discussion] Adding 1 Basis Point Fee Pools in v3

Authors: Alex Kroeger, Getty Hill

TLDR:

Uniswap governance should consider allowing pools to be created with 1 basis point LP fees. This change is straightforward from a technical perspective and would help Uniswap compete in stablecoin <> stablecoin pairs, where the majority of the market share is taken by Curve and DODO.

Background on Pool Fees:

Uniswap v3 allows for the creation of new pools via calls to the factory contract. In order to keep liquidity for pairs consolidated, only a few fee options are allowed–currently 5, 30, and 100 basis points are supported (allowing for at most 3 pools for a particular pair).

Governance should consider adding 1 basis point pools as an option for the following reasons:

  • This will allow for the creation of much more competitive stablecoin <> stablecoin pools.
  • The change is a very light touch.

However, we recognize there are some potential counterarguments to adding this fee tier, namely:

  • Adding too many fee tiers can fragment liquidity.
  • LPs may earn less in fees.

We discuss each of these points in greater detail below:

This will allow for the creation of much more competitive stablecoin <> stablecoin pools.

Offering low slippage on stablecoin<>stablecoin pairs in AMMs is generally easier than other pairs due to their relatively low price volatility.

As such, the determining factor in driving volume is trading fees. Pouring more capital into a 5 bps fee pool won’t necessarily make Uniswap v3’s pricing more attractive, as lower cost pools exist such as Curve’s 3pool (3 bps fees) and DODO’s USDC-USDT pool (1 bps fees). Indeed, most USDC-USDT volume from 1inch is routed to DODO. Very little of it is routed to Uniswap v3.

In the DEX market as a whole (not just 1inch), DODO and Curve still take majority market share (50-60%) in USDC-USDT trading. Uniswap v3’s concentrated liquidity helped increase market share, but lower fees can help it grab even more share.

The data tells a similar story for DAI-USDC (see 1inch exported volume and overall market share), though in the case of DAI-USDC, DODO is less active.

While the case is compelling just from competition in the DEX space, Uniswap also competes with centralized exchange markets.

Many centralized exchange markets offer lower than 5 basis point taker fees for high volume traders (Binance offers < 5 basis point fees above 40K BTC in 30-day volume, FTX above $25M in 30-day volume, etc.). Lower fees could increase the DEX volume pie by comparing favorably to spot markets on centralized exchanges and drawing volume from large players.

The change is a very light touch.

The change requires just one function call–enableFeeAmount()–on the factory contract. Governance controls this contract, so a simple proposal could make this change.

The enableFeeAmount function takes as parameters

  1. fee, the fee amount denominated in 100ths of a basis point, and
  2. tickSpacing, or with what granularity one may specify a liquidity range (see the Uniswap v3 Core whitepaper for more details)

To add a 1 basis point fee option, fee would be 100.

tickSpacing requires some consideration. On the one hand, too high of a value restricts LPs’ ability to set granular prices, since initializable price ticks would be roughly [tickSpacing] basis points apart. On the other hand, too low of a value could entail liquidity being too low in each tick, meaning that larger orders may need to cross multiple ticks to fill, entailing extra gas cost for each additional tick.

We suggest that a value of 1 for tickSpacing would be reasonable for 1 basis point fee pools, allowing LPs to set prices with precision in positions that span ~1 basis point between initializable ticks.

Too many fee tiers can fragment liquidity.

The downside of adding too many fee tier possibilities is that liquidity is then fragmented across pools. However, we believe that LPs will naturally settle over time into the fee tier that is most appropriate for the volatility of the pair.

Pairs with particularly low volatility (like stablecoin<>stablecoin pairs) will likely have a liquidity migration to the 1 bps tier, as the required return to capital should be low in equilibrium given the low risk of impermanent loss.

LPs may earn less in fees.

Uniswap v3 already has ~30-40% market share in USDC-USDT. Uniswap market share in that pair could reasonably double.

However, assuming overall volume stays stable (although it’s worth mentioning more competitive fees could grow the pie), total fees will go down (volume would have to 5X for fees for LPs to stay the same).

However, LPs are not the only constituency to take into consideration–takers will be paying lower fees in aggregate. Growing Uniswap’s market share and being the best place to trade across many pairs is important. These pools could become more enticing to large traders looking to swap stablecoins, for instance.

Concluding Thoughts:

We believe this simple change could boost Uniswap’s competitiveness in low volatility pairs, and the change is in the hands of the governance contract.

We welcome any thoughts on this idea from the community.

12 Likes

Reasonable proposal. I think the logic outlined is pretty straight forward. I dont see a whole lot of reasons why the option should not be available. Let´s do it!

4 Likes

with intro of new routing don’t see any issues with liquidity fragmentation, definitely a good time to introduce a lower fee tier, good works guys!

5 Likes

It is not forcing anyone to provide liquidity to these pools. Let the free market decide. I support this idea.

2 Likes

I agree with @wijuwiju that the new routing solves liquidity fragmentation issues.

The graphs are telling in the competitiveness of the stablecoin landscape. I had not realised how little market share it has in some of the stablecoin pairings; I am in support of this proposal and the tick spacing looks appropriate.

I also want to commend this proposal for not having any renting seeking designs, rather just a simple change with impact.

Liquidity fragmentation degrades the usage of the TWAP Oracles observations for Weighted Oracle libraries such as the WeightedOracleLibrary.sol and many more opinionated oracle libraries currently being discussed / developed [1] [2].

I would personally suggest that this kind of proposal should contain more factual data regarding how Uniswap is losing market share against its competitors (other than just a biased opinion) and what’s the scope of performing the changes suggested on this proposal (expected market participants behaviour), before commiting to a change that can’t be modified such as enabling a new fee tier via enableFeeAmount().

6 Likes

Hi all, jumping in late. I’ve come to a similar conclusion when comparing market share vs other DEXs on stablecoin pairs, so I’m supportive an idea to offer a lower fee tier. But, I wonder if 1bp might be too drastic of a change from 5bp.

Supporting Points
The ETH/USDC pair could help explain what might play out here. Volume has been trending away from the suggested 0.3% tier towards the lower 0.05% tier as LPs try to compete for fees (T24H example):

As has been said, lower fee tiers and competition amongst LPs = better prices for traders, which should = greater volume.

If the possible fees are too low for LPs to participate at 0.01%, then they should naturally flow back to the 0.05% tier. Since there would be an early opportunity to take a greater share of trade volume by LPing at 0.01%, I expect that we’d similarly see volume flipping back and forth between tiers in the short-term.

Fee Tier Selection
As shown above, Uni v3, currently has about 30% of USDC/USDT DEX Volume, with Curve and DODO taking equal or more share. Curve also has dominant TVL across pools, but there are a ton of extra incentives there.

If Uni v3 were to take 100% of existing trade demand, that’s still only about a ~3x volume and fee share increase for LPs, so it might not make sense for them to move to a fee tier with 5x less fees by volume. If we try to match Curve at 0.02% (0.04% split 50/50 between LPs and veCRV holders), then LPs would only need a ~2.5x share increase in volume to maintain their fees. That still might not be completely achievable, but less drastic.

Question: Should we also consider a 2bps tier? (or 3-4bps?)

Tick Spacing Selection
I’m definitely not an expert on tick spacing, but for other pools, the tick space corresponds to about ~2x the percent change of the fee tier (i.e. 0.05% has a tick space of 10 which is about ~0.10%). If this has worked so far, then should we should also adopt this convention? Otherwise, if the tick space equals the fee tier I wonder if we’ll artificially create some slippage, since one tick space could be taken up by fees.

Following the model of other tiers: For 1bps, tick spacing would be 2. For 2bps, tick spacing would be 4.

Question: Should tick spacing be ~2x the fee tier range, as will other tiers?

L2 Question: I haven’t seen this discussed, but do we intend for this change only apply to Ethereum, or would it also flow through to Optimism, Arbitrum, and any other future deployments?

4 Likes

Hi! Just wanted to chime in on the tickSpacing discussion. The existing V3 fee tiers indeed have tickSpacing equal to ~2x the fee (e.g. the .3% fee tier pools have a tickSpacing equal to ~.6%). The original rationale was based on the fact that the price on Uniswap will never be arbitraged to within more than fee bips of the “true” price (as trading beyond that threshold is not profitable).

For example, imagine a position which ranges from tick 0 to tick 1. Whenever the “true” price is in this range, the price on Uniswap must be either lower than tick ~-1 or higher than tick ~2 for any arbitrage trade to actually use this liquidity, meaning that it would likely be better if the position spanned either ticks -1 to 1, or 0 to 2. One important caveat here is that not all volume is arbitrage volume.

So essentially, whenever tickSpacing is equal to or lower than the fee, there is an illusion of additional expressiveness that doesn’t always correspond well with economic realities (and of course, imposes additional costs on swappers). While setting the tickSpacing to ~2x the fee is ultimately somewhat arbitrary, it does have a certain appeal based on the arguments in the paragraph above.

4 Likes

The 1 bps pool addition seems like a great change, especially since lower slippage draws trading volume from larger players as someone said above. Even if only for consistency’s sake, setting tickSpacing to ~2x the fee seems like a good idea, let alone @Noah’s analysis of price view expressiveness.

1 Like

Great discussion! To @msilb7’s point, perhaps it’s worth considering a multi-choice vote for different bps tiers (e.g 1bps,2bps, none) vs a binary yes/no. Example of tiered voting from ICHI snapshot

1 Like

Hi everyone, I’d also like to add few thoughts to this interesting discussing (I actually recently wrote a paper on setting optimal fees for automated market makers):

If we assume traders trade optimally (which the paper does), the answer is pretty clear:
Since the stablecoin pools are very deep, slippage does not play a large role. So the pool with the lowest fee will simply be the best option in most cases. We can see this in the 1inch volume data from the initial post (which we can use as a proxy for optimal traders). There, DoDo’s 1bp fee pool gets by far the most volume (and Uniswap gets almost none). Under this assumption, choosing a 1bp fee (or maybe even a slightly lower one) would be the best option to attract volume and hence earn fees.

However, in reality, not all traders trade optimally (and Uniswap’s market share is much larger overall than for 1inch volume). Lowering the fees leads to less fees for LPs from suboptimal volume that would have been traded on Uniswap anyway. As @alex_kroeger correctly points out, a 1bp fee would almost certainly lead to a decrease in fee revenue in the short term, due to Uniswap’s current market share.

I personally think, it could nevertheless make sense to introduce a lower fee pool since the alternative might be to wait until Uniswap loses enough market share due to more traders trading optimally (this may or may not happen) to make the former worthwhile.

Finally, a remark on the tick spacing:
The fact that almost all liquidity is currently in the two closest ticks around 1.0, could suggest that LPs would choose even narrower intervals if they had the possibility to, leading to even higher capital efficiency.

5 Likes