Fees
Native Fees
Native fees are applied to normal transactions, native to Substrate. For example, balance transfer, using dApp staking, creating a multisig, voting on a referendum, etc.
They are calculated using a model commonly used by Polkadot and (probably) all parachains.
tx_fee = tx_length_fee + base_fee + c * weight_fee + tip
tx_length_fee - this is part of the fee related to the transaction length (number of bytes).
base_fee - a fixed fee that needs to be paid for every transaction included in the block.
weight_fee - is the fee related to the weight of the transaction; right now, it scales with
ref time
- the more CPU time required, the higher this fee will be.c - adjustment factor; if network utilization is above ideal, c factor will increase, forcing users to pay more for weight.
tip - extra payment transaction submitter pays to ensure their transaction gets included faster into a block.
Ethereum Fees
Uomi is fully Ethereum compatible. This means it also supports Ethereum’s gas concept. Gas is similar to weight but not quite the same. As a result, Ethereum transaction fees are calculated a bit differently. A simplified formula looks like this:
tx_fee = gas * (base_fee_per_gas + priority_fee_per_gas)
gas - encapsulates all the resources spent to execute the block.
base_fee_per_gas - how much needs to be paid by the user per unit of gas.
priority_fee_per_gas - how much is the user tipping each unit of gas.
Comparing it with the previous example using native fees, it’s clear that Ethereum transactions are quite different. They are less configurable, and more information is hidden from the user. Regardless of the transaction type, 20% of the fee is burned, adding a deflationary force to the system. The remaining 80% is received by the collator responsible for authoring the block.
Generally, the more block resources consumed, the more user has to pay. That sounds fair.
Last updated