BitShares fees, the Fee Schedule and DEX profitability.

in bitshares •  2 months ago

Hello everyone,

As most of you know, the BitShares platform allows for multiple operation types. From transfers, order creation & cancellation etc. to asset creation and issuance, to worker proposal creation and so on.

To fight transaction spam and to ensure the reserve pool is not drained, each operation type has an associated fee (currently denominated in BTS). The list of operation-types and associated fees is called the Fee Schedule.

The current Fee Schedule is available here:

And is based on USD values for operations based on @xeroc's work. You can find more details in his article here:

It is important to note that out of the fee mentioned, only 20% goes to the reserve pool. The other 80% is returned to the user via vesting balances if he is a lifetime member (hence the lower LTM price in the wallet fee schedule) or to the referrer & registrar of the account for non-LTM users with a split based on the registration faucet configuration.

Recently, I have been doing some analysis of the operations performed on BitShares and the associated fees and the results are very intriguing.

To start, here is the operation type breakdown for the last 6 months:

and in log scale for better viewing:

The operation_type id to operation_type table can be found here:

As you can see, the majority of the transactions are transfers,order creations and order cancellations. Keep in mind that only filled/partially filled orders are charged the creation fee. And only about half of the orders created are actually filled (and thus pay fees) before being cancelled.

To start my analysis, I loaded 6 months worth of transactions and fees into a database and ran some queries.

Turns out that with the current fee schedule, the total fees over the last 6 months come to a total sum of just over 3m BTS.

This means that approx 600k BTS is returned to the reserve pool from fees or just over 100k BTS / month (3500 BTS / day).

Around 25% of that comes from transfer ops, a staggering 40% or so from asset issuance performed by gateways and 20% from account creation.

So >85% of the DEX reserve pool revenue comes from non-trading operations.

Furthermore, the DEX reserve pool (replenished at 3.5K BTS / day as stated above) is spending approx 330k BTS daily at the moment. ~30k for witness payments and 300k on worker proposals.

So it's running at a loss of about 326.5k BTS PER DAY at the moment.

Even if we consider worker proposal payments as an investment for the future rather than a running cost, although workers incldue the infrastructure worker payments, and only consider witness payments as running costs, the loss is still 26.5k BTS /day.

Meaning the reserve pool subsidizes the running of the DEX to the tune of 88% or so.

The initial decision to have very low trading fees was taken to entice and bring in more users to the DEX. But as things stand the current base fee of 1/8th of a cent (0.0012 USD to be exact) for order creation of ANY size is way too low.

The end result is that trading fees (order creation/update/cancel) account for just 4% of the DEX revenue despite accounting for >50% of the total usage.

I know this might not be immediately obvious to people because a lot of assets are gateway assets with an associated percentage based market trading fee which is high compared to most CEXs (usually 0.1% compared to 0.05% or less in competing CEXs) but that's a gateway issue.

It is my belief that the BitShares fee schedule should be updated to increase fees for most operations and ensure the long term viability of the platform.

I have a Fee Schedule proposal I am currently working on that would see most fees raised 4x. Combined with a proposed 10% decrease in witness pay to 0.9 BTS / block, the reserve pool would only subsidize the platform to around 25%. Thus, with a 25% increase in usage/userbase the platform would go back to breaking even (if considering witness pay as the running costs) which sounds a lot healthier.

I will be publishing my proposal at the forums soon for discussion but in the meantime I would like to share this post as food-for-thought and to get some more discussion going.

I know a 4x increase seems excessive but please consider how low the actual fees currently are. Don't confuse base network fees that the reserve pool is replenished from with the market fees charged by asset issuers.

Personally I will campaign for lower market fees by asset issuers while fighting for the higher network fees which support the DEX as stated above.


Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

I actually meant to shill my bitshares witness (vote for clockwork) and my committee membership (again vote for clockwork) at the end of this article....yet completely forgot. :/


Click ➡️[ Edit ] 😆


I don't like editing posts people have already voted on :)

One of the easy ways to figure out the right fee structure is to look at what the competition is doing particularly competition that has done homework (Banks, Brokerage Companies, Credit cards, and Other Crypto Trading platforms) and copy those fees. It is a good point for comparison. Lets not discount the experience and value of hundreds of companies that that have had thousands of teams for many years try and adjust these various fees. For a simple comparison the average American pays about $1.55 in transaction fees on every credit card purchase of $55. This is about a 3% fee. By comparison the BTS transfer fee is 0.1 BTS which is about 2 US cents.


I would like to point out that the merchant pays most of these fees, not the consumer. The average american uses a credit card about 1.5 times a day. There is a very complex fee structure in Credit Cards, per transaction, a % of each transaction, monthly terminal fees and more. On the consumer side, there are monthly fees, signup fees, cashback bonuses, and the big one Interest Fees. (This is where banks make most of the money.)

I agree. I actually did some extensive work on this as I was preparing the Android Customer Token Worker Proposal. With the blockchain basically having a free trading policy, no matter how much trading an app brought in, it could not pay for itself with trading fees. We have a reserve fund and I believe it needs to be be spent on critical development. I also think the fee structure needs to be fair. I think the blockchain needs to keep a greater percentage of the trading fees. I also think we need more advertising and promotion.

Pie chart (url):


we're all loving kibana arent we? :D

Thanks for finding and reporting all of this information so concisely. I've been aware and waiting for someone to do this!

It's a tough one, as in ideal world 'fee free' would be something amazing, but instead of embarrassing myself trying, can anyone elaborate on alternative ways for DAC to make money/build reserves? I've heard things like fee-backed smart assets / bitassets. Basic question - what other activities are worth further study, which BitShares Blockchain could use further expand reserve pool?

Above - Not to detract from the main topic - these fees now are clearly not sustainable....One thing is for sure, glad to have you around @clockwork, I can already vouch for you around this community for a while as very capable of the sums, I'm highly supportive of what you come up with as the best means of getting these reserves self-sustainable or to grow.

At the end of the day I agree. It's completely absurd that gateway earns more than network itself. It's just not sustainable for any type of business in any industry human or alien one.

I support initiative to increase basic BTS fees and to somehow enforce to gateways lower fees as to be competition with CEX.



I would also say, first off we need to be honest about the numbers of people and users. I just did a post on that which is a good starting point.


Although there are accounts that trade without having any BTS (weird I know), your numbers as we have discussed in telegram are roughly inline with my findings as well.

Good thing is that this way, my 25% increase in userbase is actually quite easy to reach :D


Yeah, I totally agree with you. If you are getting some serious momentum on moving forward with this I would be happy to collaborate. I have a few ideas on how we might optimize the fee schedule. I am not the expert here, but there are several ways one could proceed. First, one really needs to do some research on what other players are doing (we both have a decent start) and get some tentative ideas on what might be the right fees, then one would need to get opinions of the large proxies. If they appear willing to entertain changes, forming a work group with significant players in the community would be the next step. Most of these fee schedules were set before I was active in the community so I don't know all the thinking that went into them.

Thanks for sharing your findings @clockwork. Sustainability is definitely important.

Do you think it's better to have variable or flat network fees?


I think flat (+ per KB as the current system is) is better. The only issue is that they're way too low right now.


Makes sense to me.

How about the 0.1% market fee from the bitUSD/bitCNY pairs to finance the worker?


I'm fighting to get it to 0.05% or under

I think it's a solid idea. I've always thought the transactions were too low for the service the DEX provides.

May I propose a different solution?

Quadruple the throughput.


downloadsbot2 is taking care of that :P


Everyone can. Instead of buying 5 doge, buy 1x5.

An excellent breakdown!

It's important to note that the fee schedule rework was implemented when BTS were approx .75 USD each. The market has fallen a long way since- and this is a drawback to a flat rate scheme.
Your 4x proposal would put it just about on the same track.
However- I believe this to be short sighted if we expect the core asset value to rise again.

While it's necessary to adjust occasionally, we don't want to overdo it- as users prefer as much stability as possible.
Perhaps we could consider setting a periodic fee review and correction- adjusting the schedule to reflect the moving average value of the core token within that time frame.
It would additionally give the opportunity to weigh the effects of recent changes after the adjustments have been implemented.

I'm not exactly sure about the consequences of reducing witness pay.
Is there a reason a worker proposal was required to additionally subsidize infrastructure? Why not consider eliminating that expense instead?

It seems like campaigning to meet a break even state is optimal, however this often turns into a constant battle that could potentially deter people from providing infrastructure, contributing to the network or voting in new workers. (While long standing, potentially less important ones soak up the bulk of potential and never get voted out)
It's a tough thing to balance and needs consistent, in depth oversight.

Alternatively, worker turnover rate could be increased in an effort to reduce overhead, promote competition and consistently strive to fill a surplus instead of the other way around.
Supplemented by a clear vision and episodic improvement tasks- with clear deadlines, it could greatly encourage growth and contribution.

Then again- That would require more management and oversight to meet the efficiency needs, and fundamental decentralization always chooses to do the opposite, (however potentially offset by the nature of greater turnover rate decentralizing workers...) soooo

Thanks for the fun thought exercise- xD

Best of luck to you!


Actually last update was 4 months ago with BTS at approx 18 cents. So pretty much on par (although it has gone up since yesterday). See:


Ah, thanks for the correction, I didn't even notice the difference! :)

I have an alternative approach. Since account creation and asset creation brings most of the fees, why not to leverage that first?

  1. let's start with assets, switch to pricing model similar to domain names... asset creation fee pays it for e.g. 1 year, then you need to renew, assets are being create mainly by businesses so it wouldn't annoy ordinary users; some safety measures would be necessary so that e.g. you cannot "steal" an asset name that issuer forgot to renew; what to do with prefixed assets etc.
  2. decouple private keys and account names... similar to first point, human-readable account name is a service that you need to renew annually; users need to be able to get their funds back after their name expires
  3. if still not enough, focus on trading fees - increase flat order creation fee; optionally it could become a part of % trading fee of assets (i.e. user would pay 0.2% fee on order creation when purchasing OPEN.BTC, the flat fee would go to network, rest to the issuer, it would be easier to understand for users, for businness it would be one of their costs)
  4. if still not enough, focus on existing worker proposals

I like the analysis, and your right... without insane growth the reserve pool would be drained. I think the goal should be to acquire this insane growth; not to be profitable in the short term.

A good analysis to do would be to calculate the fees required to compensate the loss from the reserve pool and compare to larger competitors. What percentage of market share would the DEX need to steal from poloniex or bittrex to make the network profitable?

The goal should be an Amazon like model. Spare no expense to grow as large as possible and don't care about profitability until you're dominant in the industry and can exploit market power to raise prices.

BINEX.TRADE is the next promising upcoming crypto exchange, which will daily payout 70% of their trading commission proportionally among the BEX token holders. Grab 3 free BEX tokens (5 Dollars) just for pre-registering:

get free Token