A prospective BIP4: Standardize trading fees in order to increase trading volume

Bancor v2.1 has gone live, and with that we have the industry’s first single-sided AMM, equipped with full protection from impermanent loss. Going forward, our earnings potential as liquidity providers will be dependent on trading volume, and we must therefore step up our efforts to attract traders away from competitor DEXs over the coming weeks.

Traders are of course attracted by low trading fees. Whereas Uniswap offers a standardized trading fee of 0.3% for a single trade between any two listed TKNs, trading fees on Bancor are currently set by the pool owner of a BNT/TKN pool. As such, we have seen trading fees as high as 1.5% being set by pool owners. Moreover, given that both exchanges perform 2 swaps in order to execute a swap order between any two TKNs, traders must in fact pay 2 trading fees - one for each paired pool - when executing a single swap. Let’s compare current trading fees on Uniswap and Bancor for a trade between USDT and REN:

Uniswap trading fee:
USDT/ETH pool trading fee: 0.3%
ETH/REN pool trading fee: 0.3%
Total trading fee incurred: 0.6%

Bancor trading fees:
USDT/BNT pool trading fee: 1.5%
BNT/REN pool trading fee: 0.2%
Total trading fee incurred: 1.7%

As we can see, the absence of standardized trading fees in Bancor risks rendering it a less attractive prospect for traders than Uniswap, notwithstanding present and future liquidity depths on the respective platforms.

We therefore propose a motion to standardize trading fees in all Bancor pools at a rate of 0.15%. Given that the Bancor exchange performs 2 swaps in order to execute a swap order between any two TKNs, the 0.15% rate would ensure that the total trading fee incurred by traders on Bancor does not exceed 0.3%, thus bettering the (0.3% x 2) trading fee offered by Uniswap.

We understand that lower trading fees may appear to be less attractive to prospective liquidity providers in the short-term, empirical evidence suggests that the opposite is in fact true. This section of the proposal will provide the empirical analysis, pending input from the Economic and Quantitative Consultant.

An alternative proposal to standardize trading fees at 0.1% for an initial period of 90 days, before allowing individual pool owners to adjust them upwards to a maximum of 0.15% if they so wish, is also being considered.

Comments very welcome.

7 Likes

Great proposal. Fully agree with everything you’ve said. I agree people would want higher trading fees for better returns, but in this case the chicken (trading volume) should come before the egg (liquidity providers–> fees). Higher earnings for the LP are generally associated with a higher risk, whereas with v2.1 this is obsolete once you are using a white-listed token for the required period.

High-net worth individuals and whales trade where fees are lowest + obviously minimal slippage. I feel that Bancor v2.1 is in a prime position to take advantage of this. Eventually as volume moves over, the lower trading fees will outplay due to sheer transaction volume. We can always do it on a trial-by-time basis as well, being to open vote down the line.

TL;DR Reduce fees for LP in order to attract greater trading volumes (which is what whales trade based off), where eventually the volume will results in greater profit than the higher fees for LP in the long term

5 Likes

A few people have made the very valid point that aggregators, through which many of the trades on Bancor will be made, do not distinguish between trading fees and slippage when quoting a price for traders. In theory, high slippage owing to low liquidity levels could outweigh a higher trading fee, but are higher trading fees the best way to attract liquidity and prevent against slippage?

As we have seen in the first few days of Bancor v2.1 going live, the vast majority of pool owners (initial LPs) have themselves chosen to set their trading fees at the minimum level of 0.1%. Moreover, those pools in which the trading fee has been set at a higher level, namely the USDT/BNT pool which has a trading fee of 0.75%, have particularly struggled to attract liquidity. The USDT/BNT pool is a particularly pertinent example, because USDT is one of the most traded tokens on any CEX or DEX, and so we might have expected to see much more liquidity being provided to that pool so far. The fact that we haven’t suggests that LPs are in fact predicting the behaviour of traders confronted with higher trading fees, and this has made them apprehensive about staking in those pools.

TL;DR: There is overwhelming evidence to conclude that it is not just traders who are put off by high trading fees, but also LPs who are apprehensive about how much trading volume would be generated with higher trading fees. LPs are therefore being turned away from providing the liquidity needed to actually reduce slippage - the second key factor in making our trading service price-competitive.

The chicken is the egg; the egg is the chicken.

1 Like

We could also suggest the first step is the cooperation of all BNT LPs for single token exposure pools could agree on a the lower proposed standard fee, at least for 90 days, while TKN LPs do not at first. The overall fee will still be lower from the cooperation of BNT LPs, even without the cooperation of TKN LPs. Two x the lower fees will make a difference in overall fee amount.
Each TKN pool will need to consider their fee amount, while all BNT LPs could take the lead. Hopefully more and more TKN LPs will see the initiative of BNT LPs and follow.

I’ve suggested elsewhere this lower fee initiative of BNT LPs in single token exposure pools, could be supported by an BNT LP exit fee. This would encourage longer staking and the reward for longer staking could offset some of the lower conversion fees. Again this is a suggestion is for cooperative BNT LPs at first with an option for TKN LPs to consider. This LP exit fee could be parameterised but an agreed default would be helpful for simplicity at first.

2 Likes

I couldn’t help noticing that this discussion, for the most part, is based on assumptions made from non Liquidity providers about liquidity providers.

This is why I decided to share my input.
We are one of the few big liquidity providers. We provide liquidity to 2 pools. The combined liquidity is usually in the $500,000.

If the fees are pegged to 0.15% that would automatically wipe the fragile economy for both pools that we own, and the proposed change would cause a spiral downfall in liquidity as risk/reward would not be justified to put this capital at risk with such a low income -> which on its end will cause a downfall to usage.

Or in other terms, low APR will dramatically and instantly reduce the size of the pools. This on its end will dramatically increase the slippage for a transaction.

The total cost of a trade is the combination of the two: Slippage + fees.

Believing that you will decrease total costs by reducing fees greatly at the expense of slippage is fundamentally wrong because, fees reduction, in the context of APR impact, could have a disproportionate negative increase in slippage that would result in a net negative change of total costs related to the same trade.

When volume is low, in order to incentivize LPs to provide liquidity, you need a competitive APR. APR comes as the sole metric that attracts LPs. If APR is low, capital will flow out to other more attractive solutions.

Coming up with a competitive APR is not something that can be achieved with a single 0.15% setting for all pools.

What would be the right approach?

Use empirical data to micro fine-tune each pool. By default, pool owners have this flexibility right now by monitoring how their pool competes with other pools and micro managing these settings.

In order to give an example of what this means, approximately 2 months ago, we have set USDT/BNT pool with a $300,0000 combined capital ($150k per side).

At the time of setting, the pool, we have decided to try out a relatively high commission fee - 1.5%.

This decision was also based on some playing with public aggregators, such as 1inch.

You can see that back then, even with a 1.5% fee, our pool was measuring 80% vs 20% of according to 1inch.exchange for all BNT-> USDT trades for a 4k BNT order sample.

What this means is that, at any given moment of time, if any person on the planet wanted to convert 4k BNT directly to USDT, the pool would receive approximately 80% of that “organic traffic”. And since that pool is permissionless, it would benefit the whole Bancor Dex. At that moment APR was not yet shown as the old bancor UI was still present, but we managed to achieve a very high APR while facilitating cheaper BNT-USDT transactions.

At that point, the organic APR was in the 18%-25%. Preserving it high takes active management on the converter through which any other LP could benefit at any moment of time. I am confident that if we had kept it this way, it would have reached 30% and more, potentially attracting milions of dollars in liquidity (meaning millions of USD converted also into BNT).

It also means that we were able to solve the chicken-or-egg paradox with putting capital at risk for a new converter. And as traction improves and liqudity grows, the fee of course can be decreased to ensure we remain competitive when measured against other dexes, while capturing an even higher percentage of the total traffic.

Decreasing the fee, monitoring the volume and APR and ensuring that the APR as a standalone metric is more competitive than the one of competing DEX ecosystems. That was the key in our strategy.

The impact of the new converter -> on one side, the consumer wins, because he gets a more competitive place from where he could convert BNTs to USDT. And on the other side, a relatively high APR for LPs, that creates demand from LPs to migrate from other DEXEs to Bancor. A Win-win.

Also, it is critical to understand that arbitrage bots generate a relatively high percentage of “inorganic” traffic. We tend to call it this way, because, although it generates fees, that is always associated with impermanent loss.

So what followed after that was a complaint in the community group that the USDT fees were “crazy high”. A statement that although might seem justified, at first sight, was not backed by any empirical data.

We reduced the fees to 0.75% (did that mostly out of pure respect to the BNT team, as they were obviously getting a lot of pressure because of the way we managed the converter). We also reduced the liquidity as a way to tackle the price volatility risk exposure of BNT. The effect is a net negative increase in the total costs for a trade, as well as a net negative change in liquidity. A lose-lose scenario.

A quick check right now on the same transaction shows that BNT->USDT pool is not competitive anymore and the traffic goes mostly through Uniswap. The organic APR ranges in the 3-4% which is very unattractive. IT occasionally has a false positive spikes due to arbitrage (since fees generated from arbitrage are directly related to impermanent loss).

The new pool now is completely taken out of circulation, as the trade happens via Pathfinder > BNT/ETH and then taking that ETH to Uniswap. This means that Uniswap creates a 3:1 economy to its liquidity providers, while participating with the same level of weight.

This also puts an important perspective. BNT/ETH is a subsidized pool by crowdfunding and it is not driven by the liquidity providers market economy. This is also why it had been kept at 0% for almost 3 years.

I think comparing Bancor to Uniswap is fundamentally wrong, because Uniswap has a entirely different risk geometry.

With Uniswap, the main drivers of growth were the stablecoin pools, that completely eliminate price volatility risk. At some point, there were pools that were stablecoin-stablecoin with an above 20% APR. Hence why they can afford relatively lower fees (0.3%). In the world of investing, it not only matters what return you get on your investment but also what volatility risk you go through in the process of earning that return. This is also known as the Sortino ratio. Generally speaking, the more “boring” a path to a higher return is, the more optimum Sortino ratio it has, and hence a better option is for investing, because opportunities with similar ROI are plentiful but each path has different levels of implied stress.

Based on the new data, confirming the decrease in BNT/USDT traffic as well as the much much lower APR, now the only business solution that we can make is to put that capital to work on a different place. Or in other words, decrease the liquidity further.

This also raises the question, who will be the person to risk a considerable amount of capital.

The current situation with BNT is a chicken-or-egg.

The fixation of the fees, will not change anything because for the most part, Bancor’s system is not driven by free-market Liquidity providers. It is driven by a core of own-token liquidity providers (projects which provide liquidity to their own token as part of supporting their own trading infrastructure). For these actors, APR is not much of an importance.

So with this being, said I think the 0.15% will offer a significant limitation as it will prevent new LPs to backtest, optimize and aim for positive economic streams.

What I propose:

Keep the flexibility of the trading fee, and adapt it so that it can empower liquidity pools to be fine tuned for their unique purpose. Publicly available tools such as 1inch.exchange give a unique reverse engineering way to backtest and fine-tune your pool settings.

Ideally, converters should be able to attract some portion of organic traffic as shown by the aggregators (e.g. 50%). This can be achieved by a combination of

  • High Liquidity
  • Properly configured fees

Only after these details are thrown into the mix, will Liquidity Providers be interested enough to put significant capital under risk. Otherwise it would all come to Bancor solving the chicken-or-egg problem, where eventually they will need to commit funds from their own crowdfunding fund to kickstart some critical stablecoins liquidity pools until they eventually reach to a point of attracting some volume and establishing some APR.

Also don’t forget that LPs don’t benefit from the 2 hops. Having 4 instruments means more risk with less combined liquidity.

This automatically will make Bancor’s 0.15% fees 2x less attractive than Uniswap.

An ideal solution would be a price discoverability oracle that could use tools such as 1inch, and turn the fee from a fixed one to a dynamic one (e.g. updated once a day), that always ensures Bancor’s pools are competitive enough to get organic trades traffic while they are aiming for optimum APR in order to have a net positive flow of external, market-driven liquidity providers. With that setup, the APR will be defined by the maximum potential while ensuring maximum competitiveness of the dex as a system.

BNT has a serious implied volatility and expecting LPs to risk e.g. $200,000 when BNT makes swings with +/- 20% on a daily basis in exchange for a 5% APR is not sustainable. Our sense as market driven LP is that Bancor will be a high-risk/high-reward DEX (as identity and utility) and its true potential will come with positioning itself in this way precisely through the use of the flexible fee. Control and fine-tuning capability that comes a unique competitive advantage over Uniswap.

Emphasize should be on total cost and APR, and not on fee settings. Fee is just one variable of the equation. In the current case it is holding Bancor back as people are fixating on the fee while damaging the APR and total cost. Either way the future is in the use of aggregated interfaces as they have a clear and immediate economic impact on the trade outcome. And most of these aggregators have already completely disregarded the “fee” as a determinant factor. Bancor’s interface would be much more important in the APR in this context.

3 Likes

Hi @nikolaalx, we really appreciate you taking the time to post this detailed response, which raises many important points worthy of discussion. Voting on BIP4 has closed, as you might have seen, and the pools are currently being upgraded as per the outcome of the vote. Continuing the discussion for fine-tuning purposes is important though, so I would suggest therefore that you re-post what you have said in the link to the BIP4 thread on Discord below. Here, discussion between ourselves - and other invested members of the community - is ongoing with the project’s developers.

@nikolaalx The points you raise here are very helpful. Certainly, we do not want to inflict harm. Yudi Levi has commented in Discord that changes will be introduced in the next pool upgrade, and expects most whitelisted pool owners will upgrade shortly after. However, if we have a few pool owners that don’t want to upgrade, such as yourself, we can decide to re-create these pools.

In light of the information you have provided, I think it would be wise to entertain a repeal. I like the price discoverability oracle proposal, and the prospect for an automated fine-tuning mechanism. If we can get you on Discord, I think we can begin discussing an amendment to replace BIP4. Please consider joining us there.

2 Likes

I have copied your points to the BIP4 channel in the discord group. I hope we can see you there.

Running an oracle has significant overhead costs, and probably isn’t feasible in the near future. I want to discuss the possibility of having a defined formula, that includes liquidity depth as a variable, and calculates a reasonable fee ceiling.

1 Like

I want to thank you for taking the time to consider my arguments.

Since the 0.15% fee fixing comes as an extension on the liquidity and adoption growth topic, I will make my input. If this is not the proper place, I want to apologize in advanced.

In order to evaluate the opportunities effectively, as a first step, I think we need to break down the current bnt liquidity structure into its building blocks and identify its strengths and weaknesses. Then I would suggest as a second step to define specific liquidity target goals that we, as a Bancor community would like to achieve.

Assuming that a single setting would solve the problems and magically start to grow liquidity is a mistake.

I am confident that it would take an elaborate step-by-step plan and careful execution to make things work. I am also confident that Bancor has all the tools necessary to make it work.

  1. Current liquidity structure, strengths and weaknesses.

Bancor has system that is composed of disproportionate BNT/ETH pool to all the rest. The BNT/ETH is essentially ICO subsidized and as such all strategies discussed here should take this in consideration. The BNT/ETH is also a unique strength of the Bancor Dex compared to Uniswap. Due to the subsidized nature we can assume that the BNT/ETH will remain resilient to change with a relatively high set of variables (which gives room for fine tuning, testing and optimization). This working capital in particular is in my opinion one of the keys to solving the liquidity growth issue.

Another unique strength is in the strong BNT community is funneled via the BNT/ETH single hop conversion.

The weakness of Bancor is that it has a very high level of volatility on the underlying BNT token, which really comes as major challenge. It worsens the Sortino ratio and it implies a substantial impermanent loss risk.

The remaining pools and the respective capital at work in them are mostly project owners deployed, and as such are also irrelevant of market dynamics (meaning that e.g BAT deploying a small pool for the sake of having it as part of their trading infrastructure, does not mean that APR, volatility or impermanent loss play any significant roles into the decisions).

For a coin owner, having a pool is more of a general utility than a question of micro economy and APR.

For these reasons, Bancor’s liquidity is fairly encapsulated and remains stable despite shifts in BNT price.

I’d guesstimate that market driven liquidity vs (subsidized + coin owner liquidity) is e.g in the 1:99 ratio.

Most of the trades are arbitrage driven.

  1. A concept for a strategy.

A) Bancor can utilize the 2 hop system and utilize a second powerful BNT/USDT converter by splitting the working capital that is currently entirely concentrated in the BNT/ETH converter.

This way it will short circuit USDT as a second direct exchange currency to the whole ecosystem. Having a 4M BNT/ETH + 4M BNT/USDT pools will have a much stronger net impact than a single 8M BNT/ETH pool.

Additionally, the powerful USDT pool will come as a stabilizer to BNT’s general volatility (cutting ETH driven volatility into 1/2). This on its end would significantly decrease the implied risk volatility for LPs and increase the risk/reward ratio due to lower impermanent loss risk.

In a “perfect” liquidity world, BNT would be a stabletoken. Having 50% of its capital bound to USDT will make it a step closer to this while still offering the token economy an ability to grow. The control on the ico subsidized capital that is concentrated in the BNT/ETH pool can be utilized to create a hedged position of BNT.

B) focus on Bancor.network should be all about APR. The market driven liquidity is a hypercompetitive environment. As such, having a default sort according to APR will turn the Bancor.network web-app into a more effective tool.

Ideally we want a one click Bancor.network to load a list of pools with APRs in the range of 30%. This will be the only possible way to create a funnel for external market driven liquidity. And APR should be shown on a 30d average.

C) increase fees on the BNT/ETH pool to 0.2%. That would double the attractiveness of the pool. Additionally, if the pool size is reduced to 1/2, it would further double the income because, there’s no other pool to even come close to it at the moment. It will continue to process the same amount of traffic.

The BNT/ETH pool capital is a unique strength and should be used to create a positive flow of LPs. We don’t need 10 attractive liquidity pools.

Having just 1-2 as a first goal would be enough to get the word out.

For the whole ecosystem, an extra 0.1% cost due to the 2nd hop with ETH should not come as a problem. And a second hop with ETH is generally not the goal…the goal is BNT to become a universal token and facilitate 1 hop trades.

A quick check on 1inch.exchange shows that BNT/ETH are ominously funneled to Bancor due to the giant pool. 100% of BNT/eth transactions are processed by Bancor’s BNT/ETH pool. This essentially means that the Bancor ecosystem is underselling itself and losing vital economy that can be converter into positive APR.

To summarize, the first specific goals would be:

  • to emphasize on Bancor.network web-app focus on highest 30d APR on pools as a default sort. Also to remove the “fees” and instead show a default “$500 trade costs” that would combine slippage and fees.
  • to try push BNT/ETH to an above > 10% APR by increasing fees to 0.2% and reducing the pool size to 1/2 (4M usd)
  • to enable a second powerful BNT/USDT pool that will complement the whole ecosystem (4M USD). I would keep fees relatively higher (e.g 0.4%) on that pool in order to get to a > 15% APR. The stable pool has a 50% lower volatility exposure. And since on its own it will stabilize BNT, the risk/reward would be quite attractive for it in particular. Alternatively the pool can be deployed as v 2.1 with a price oracle, as Chain link already supports USDT oracles, right? That would make it an even more attractive and outcompete uniswap’s stable pools since it will have a much higher APR (all usdt economy of Bancor will flow through it due to the 2 hops).

That BNT/USDT pool can be used as a way to break the current encapsulated liquidity loop and start to migrate LP capital from uniswap to Bancor.

This of course is just a proposal. If hypothetically these goals are achieved we could think fo a dynamic fee system that would reverse optimize based on aggregators traffic approximation.

2 Likes