FinancialsVoteDocsDAO GraphExplore
← All proposals
    ←Previous#8#10Next→

    #9 Add 1 Basis Point Fee Tier ## TLDR: Uniswap should add a 1bps fee tier with 1 tick spacing. This change is straightforward from a technical

    executed

    Payment Status

    Description

    Add 1 Basis Point Fee Tier ## TLDR: Uniswap should add a 1bps fee tier with 1 tick spacing. 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 (10, 60, 200 tick spacing). Governance should add a 1 basis point fee option for the following reasons: * Curve’s stablecoin markets have 3-4 bps fees. * Dodo’s stablecoin markets have a 1 bps fee. * FTX’s fees for retail are 2/7bps fees and for whales 0/4bps. However, we recognize there are some potential counterarguments to adding this fee tier: * Adding too many fee tiers can fragment liquidity. * Liquidity providers 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 the majority of the market share (60-70%) in USDC-USDT trading. Uniswap v3’s concentrated liquidity helped increase market share, but lower fees can help it grab more. 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 exchanges. Many centralized exchanges 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(100)–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. 2. tickSpacing: the 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. For a stablecoin market like USDC-USDT, we expect most of the liquidity to reside in 6 ticks. Orders <$1m will like only require 1 tick and larger orders may require a second or third tick. For each tick used it adds about 15k-20k gas costs. ### 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 Assuming overall volume stays stable (although it’s worth mentioning more competitive fees should grow the pie), total fees paid will go down (volume would have to 5X for fees paid to 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 presents minimal risk for Uniswap.

    For71,369,769 100%
    Against0 0%
    Abstain0 0%
    Quorumreached

    Timeline

    1. Pending
    2. Active
       
      block 13,551,293 → 13,591,613
    3. Succeeded
       
    4. Queued
       
    5. Executed
       

    Votes (41)

    0x2B1A…5fF4For · 15,000,001 UNI
    0xA2BF…D1d1For · 8,150,000 UNI
    0xB062…9108For · 6,774,673 UNI
    0x88FB…3981For · 5,457,939 UNI
    0x683a…6C02For · 5,000,000 UNI
    0x47C1…4770For · 4,500,000 UNI
    0x458c…730EFor · 4,355,769 UNI
    0x8d07…A265For · 4,001,543 UNI
    0x067b…4A76For · 3,401,847 UNI
    0x0703…961bFor · 3,000,000 UNI
    0x13BD…8548For · 2,500,163 UNI
    0x9B68…2984For · 2,500,011 UNI
    0xdC1F…E432For · 2,500,000 UNI
    0xf63E…78C8For · 1,848,680 UNI
    0x1a13…7AA0For · 600,400 UNI
    0xE093…49f8For · 501,375 UNI
    0x5B3b…7c98For · 501,012 UNI
    0x159D…D630For · 300,000 UNI
    0xaB33…DDA6For · 250,000 UNI
    0xA7F6…d555For · 209,308 UNI
    0x2479…8783For · 13,694 UNI
    0xb100…73FCFor · 1,315 UNI
    0xeCf3…8e13For · 509 UNI
    0x84E3…5a95For · 400 UNI
    0x4714…fc11For · 359 UNI
    0x9871…2F40For · 257 UNI
    0xF484…b4FcFor · 254 UNI
    0x6439…0183For · 101 UNI
    0xD724…61f1For · 100 UNI
    0x8073…e828For · 12 UNI
    0xE87b…8bf2For · 10 UNI
    0xcD64…8A9eFor · 10 UNI
    0x49e2…4f90For · 4 UNI
    0x7593…1938For · 2 UNI
    0x84e0…bA97For · 2 UNI
    0xb676…69dEFor · 2 UNI
    0xE5be…953DFor · 1 UNI
    0xb5Dc…4874For · 1 UNI
    0xA9D8…9ef0For · 1 UNI
    0xE25d…2362For · 0 UNI
    0x43c6…ae86For · 0 UNI

    Voting timeline

    Proposal actions

    Caller
    Timelock
    0x1a9C…35BC
    →
    enableFeeAmount→
    UniswapV3Factory
    0x1F98…F984
    ▶fee, tickSpacing
    feeuint24
    100
    tickSpacingint24
    1