Fees, Liquidity and second-order effects

My appologies, this is likely to be a rambling post around all things liquidity and fee-related…

I’ve partially been inspired by @tfns recent proposals on adjusting different pool fees and a few ideas I’ve had bubbling away on related topics (I spend some time looking at optimum trade size and location…).

I apologise in advance as I’m well aware that it’s easy to think of questions, and doing the actual analysis to get an answer is much more time-intensive. I’m also aware that most of these thoughts may have been discussed to death in the past.


For efficient trade I think there are 4 main factors in routing:
A. Trading fee (linear with trade size)
B. Depth of liquidity around spot price (larger trades will have more price impact, which will be arbed back to market price - cost is related to the ratio of pool size and trade size).
C. current spot price for each DEX (essentially random and insignificant for deep pools and larger trades)
D. Gas cost of trading (per DEX).

For a high liquidity token (say $LINK)
For very small trades (< $100 ?), impact would be something like D> C > A > B
For large trades ($100,000), impact could look more like A > C > B > D
For very large trades (> $1 M), Impact could be B > A > C > D.

For example, DAI → ETH.

Note, this table doesn’t include the Bancor pool at $30 M which would have a $76,000 trade at 0.5% slippage.

A $100,000 trade on the 0.05% Uni v3 pool would cost ~0.25% price impact and 0.05% LP fee =~ 0.30%
A $100,000 trade on the 0.30% Uni v3 pool would cost ~0.07% price impact and 0.30% LP fee = ~ 0.37%
A $660,000 trade on the 0.05% pool would cost ~1.7%. On the 0.3% fee pool the same trade would cost 0.8%.

(The other consideration is income. In the last 24 hours the 0.05% pool captured $15k fees ~ 31% annualised, and the 0.3% pool $75 K ~ 44% annualised - both with significant IL…).

Note, one of the complications of concentrated liquidity is that it does’t have the mathematical link between AUM and price impact for different trade. For xy=K pools, a trade 0.253% of the pool AUM will result in a 0.5% impact on the price. For concentrated liquidity, you need to do the numbers…


I think that optimising fees for LP (and protocol) income is great. The fact that Bancor has the flexibility to adjust the fees on pools is a huge advantage that we would be foolish to neglect.

My current mental model of Bancors liquidity is that most can fit into one of 5 groups:

  1. Stable coins.
  2. Common trading pairs (essentially ETH and wBTC)
  3. Tokens with multiple liquidity pools (Uni / Balancer / Sushi etc).
  4. Tokens where bancor is the dominant (DEX ?) liquidity (e.g. $TRAC)
  5. BNT

Furthermore, I think that each may need different optimisations.

#4 should be pretty simple. There is no competition in the market, so traders will have to take the fee that’s on offer. If there are CEX markets for the token, then I would expect less arb trade as the fee increases and so volume on the pool would be reduced.

#3 will be a little more complex as higher fees would encourage efficient trade to move to a different Dex (as above with DAI). However, if we have higher fees, this can be partially countered by having deeper liqudiity. There is also the additional factor that even if we are the more expensive option, arb bots will still trade when there is sufficient profit to be made.

While I expect significant natural ETH or BTC swaps to BNT, I suspect that most of the volume with being as part of a two-hop trade e.g. ETH → BNT → TKN. Likewise with stable coins.


My concern is that if we optomise the stablcoin, ETH and wBTC fees to generate most income for these pools, we will sacrifice two hop volume on the TKN pools, and that the lost volume in the long tail will loose more $ than we gain on the main pools.

So, some questions:

  1. For Stable coins what % of trade is single swaps (trading BNT) vs two hopes Stable → BNT → TKN.
  2. Likewise for ETH and wBTC, how much of that volume is two hop within Bancor?

My understanding is that for stable coins we limit the pool size to reduce the protocols exposure to IL. If so, we can not use the depth to try and counter a higher fee.

As I said, this is a long winded post. Looking over it, I suppose the ultimate question is:
Should the stable coins, ETH and wBTC pools be optimised for volume (i.e. low fee / lower income) with the goal of maximising the two hop trade via the other tokens?


One final thought, with the Omnipool all the two hop trades via BNT become single hops. Does this mean that Bancor volume will drop significantly with Bancor3?

Also, if v3 allows token specific swap fees, which fee will apply e.g. if $DAI is 0.1% fee and $Link is 0.3%, will the fee for $DAI <> $LINK be 0.2% in both directions, or 0.1 or 0.3 depending on trade

1 Like