The idea behind Ardor is brilliant. And sometimes brilliant ideas require some time to be fully understood.

One of the great features of Ardor is that there can be many child chains running under the blockchain infrastructure built on the Ardor nodes (main chain). At the release of the live Ardor software in Q3 2017, all the functionalities of the current NXT will be implemented in the first Ardor child chain called Ignis.

But one thing that is apparently not clear to everybody is how the fees structure looks like in the child chains and in the Ardor main chain. So let’s clarify.

Let’s start from the Ardor main chain.

Forging blocks on the Ardor main chain will work as today’s NXT forging. The Proof of Stake protocol allows the forging node with more tokens to have better chances to forge a block. Forging is the equivalent of mining in the NXT/Ardor world. The reward of a forged block is the sum of the transaction fees within that block.

These blocks will contain transactions from the main chain and from the child chains. The Ardor main chain will be the only one forging and providing the blockchain infrastructure to all child chains.

So that’s clear. Ardor’s forging process works as today’s NXT forging with the exception that there are also transactions from the child chains packed in the same blocks.

Let’s now move to the child chains. Let’s take for example Ignis, the first child chain of Ardor.

Users doing transactions within Ignis do not have to worry about Ardor fees. They can simply transfer Ignis from one account to the other, issue an Asset, send a message, etc by just paying a fee in Ignis. The child chain fees can change because they will be defined by the “bundlers”.

So what is a “bundler”? A “bundler” is the link between the child chain and the main chain. It’s the one that collects the child chain fees and then pays the main chain (Ardor) to pack those transactions in a block.

There will be bundlers for each child chain and anyone can setup a bundler as long the account holds some Ardor.

Here is how the Bundler setup page looks like (example for Ignis):

The field “Minimum Rate” is a multiplier for the defined Ardor fee for that specific transaction. The result of that multiplication will be the minimum transaction fee in child chain token users will have to pay so that the bundler will bundle their child chain transaction.

“Fee Limit” is the total amount you want to spend in Ardor fees.

“Overpay” is the extra you want to pay more in case of competing bundlers. This is a multiplier of what you will pay in terms of Ardor fee.

Let’s hypothetically assume that these are the fixed prices for a couple of transaction in Ardor (still in development so let’s not be too picky with the exact amounts):

  • Basic transaction (money transfer, sending message, etc): 0.1 Ardor
  • Asset issuing: 1000 Ardor

Now lets assume a bundler is set with these parameters:

  • Minimum Rate: 10
  • Fee Limit: 200
  • Overpay: 0.1

Someone now sends a message to someone else in the Ignis child chain. The client will automatically set the fee to the minimum fee offered by the bundlers. Let’s assume that our bundler is the only one, then the fee that will be applied will be:

0.1 Ardor fee x 10 Minimum Rate = 1 Ignis

So the message will be delivered with 1 Ignis fee.

The bundler then has to pay 0.1 Ardor + (0.1 Ardor x 0.1 Overpay) = 0.11 Ardor

Let’s set another bundler with these parameters:

  • Minimum Rate: 1
  • Fee Limit: 5000
  • Overpay: 2

Someone issues an Asset on the Ignis child chain. Here is how the fees will look like:

1000 Ardor fee x 1 Minimum Rate = 1000 Ignis

So the Asset will cost 1000 Ignis to the user.

The bundler instead will pay 1000 Ardor + (1000 Ardor x 2 Overpay) = 3000 Ardor

As the bundler has set a Fee Limit of 5000, it can afford to pay the 3000 Ardor mentioned above and still have 2000 Ardor budget for the following “bundles”.

Keep in mind that the bundler gets the child chain fees, and this is where it gets interesting. The bundlers will then have to follow the exchange rate between, for example, Ardor and Ignis and define the Bundler in a way that he/she can recover the expenses.

Let’s assume that 1 Ardor = 1 Ignis in terms of value.

Let’s suppose that we have a Bundler set in the following way:

  • Minimum Rate: 1
  • Fee Limit: 1000
  • Overpay: 0

Someone sends a message and pays a fee of 0.1 Ignis (0.1 fixed Ardor fee multiplied by Minimum Rate 1) to the bundler.

So the bundler received a value 0.1 Ignis and pays a 0.1 Ardor as the value of Ardor and Ignis, in this example are the same, then there is no loss and no gain for the Bundler.

Assuming the same Bundler defined above, but the value of Ardor is 10 times the value of Ignis, so you need 10 Ignis to buy 1 Ardor.

In that case there would be a loss for the Bundler as it will receive 0.1 Ignis fee but will pay 0.1 Ardor fee which is worth 10 times more. So in that scenario the Bundlers have to adjust their Bundler settings to be more reasonable financially, in this case a 0 gain/loss would be achieved by setting Minimum Rate to 10.

This is where more Bundlers will have to compete to be the most attractive but also to make a little gain maybe. This will be defined by the market.

I hope this example helps to understand the fee structure in Ardor, but please be aware that Ardor is still being developed so things might be different when it will go live.

  1. Neofelis 3 months ago

    This is a repost from nxtforum:

    If a forger has earned the right to forge a block (based on stake and the pseudo-random protocol), what would be the harm in allowing that forger to set his own minimum fee and not include any transactions that don’t meet that minimum? Seems to me this could be easy to implement in the local software (NRS) and transmitted to the blockchain. If a forger set his fees too high, the transactions would be not included in his block and the forger would miss out on those fees and the next forger with more reasonable fees would benefit. This would create a true free market of forger fees. Fees could be set differently for simple transactions, registering aliases, etc. This would work for both NXT and ARDOR.

  2. Neofelis 3 months ago

    This bundler is too complicated. Why does it have to be so complicated?

    • Author
      TheWireMaster 3 months ago

      Hey James!
      I think that the idea behind is to delegate to the childchains all the tasks related to fees while Ardor owners will have no task but just receiving the forged Ardor fees if a block is forged.
      Your approach to the fees mechanism maybe could cause the fees to be too low that there could be some spamming? Not sure, but just thinking about something that could not work with your idea.
      My only concern with fixed fees in the Ardor chain is that it’s own success might be counterproductive for the functioning of the platform. If Ardor fees are too high, childchains will not have a bundler willing to loose money. Of course there can always be the possibility for the devs to issue an update of the client with lower Ardor fees, but that might also create some chaos with all the bundlers settings. So if that happens, there has to be a smart way to allow the bundlers time to adapt to the new fees.
      Also the form where you put your bundler settings is not so intuitive. I would have put some instead some slider bars that start at the recommended values, according to the current Ardor-Childchain exchange rate, and also some other indication about where the other bundlers are standing so it’s easier to compete with them.
      My idea instead was to distinguish the “public” childchains from the “private” ones. For example, Ignis, BTC, EUR and USD are “public” chains. Let’s suppose that a big company needs a childchain for some reason, that would be a “private” chain.
      In my opinion, “public” childchains should send fixed fees directly to the Ardor forger. Then it will be the forger’s task to either convert those fees in Ardor or keep them in the original currency.
      I would then use the bundlers for the “private” childchains where companies have to take care of the costs of maintaining a childchain by setting un bundlers. Of course, in case of extreme gaps between the Ardor evaluation and the chilchains evaluation there would have to be a way to adapt the Ardor fees, but doing that will not create chaos over the bundlers of the “public” chains as there are none.
      But anyway, I think that the devs are still working on it, so I won’t be surprised if something changes in the next weeks before the launch…. and I really believe that the Ardor devs are a smart bunch, so I’m sure that they know what they are doing.

Leave a reply

©2017 The Wiring

Log in with your credentials


Forgot your details?

Create Account