Skip to main content

Fee processing

Concept

Traditional Layer 1 blockchain networks like Ethereum use a complex, dynamic fee market determined by opcode prices and the computational "gas" consumed during transaction execution. In such a system, calculating the exact transaction cost can be cumbersome and time-consuming. Additionally, these opcode prices are deeply embedded within the protocol, typically requiring a network upgrade or hard fork for changes.

KIRA's approach replaces the conventional "gas" system with a governance-driven structure. Here, transaction fees are predefined for each type of transaction and uniformly denominated in ukex, simplifying and stabilizing the fee calculation. Additionally, the governance is tasked with setting failure fees for each transaction type and determining a specific timeout period for transactions. Complementing this streamlined fee structure, KIRA's Token Rates Registrar allows fees to be paid in other whitelisted tokens at a fee_rate defined by the governance. This mechanism ensures a clear and efficient conversion between ukex and other tokens, enhancing the network's flexibility and user accessibility.

Bounded Fee Range

While KIRA does have a fee market, it operates within a bounded range set by the min_tx_fee and max_tx_fee parameters. This approach serves two purposes:

  • Spam Prevention: The min_tx_fee sets a lower boundary, acting as a deterrent against spam transactions, thus maintaining the network's integrity by preventing it from being overloaded with low-value or malicious transactions.
  • User Protection: The max_tx_fee acts as an upper limit, safeguarding users from inadvertently incurring excessive fees. This is particularly important in preventing significant fund losses that might occur due to mistakenly high fee inputs during transaction submission.

Parameters

NAMETYPEEXAMPLEDESCRIPTION
transaction_typestringsubmit-proposalThe specific transaction type the following parameters apply to. All existing types can be found here.
execution_feeuint64100The required fee for users to successfully execute this particular transaction type.
failure_feeuint6450The fee users must pay in case the transaction execution is unsuccessful.
timeoutuint64300The time duration (in seconds) after which the transaction execution will be considered as failed if not completed.
default_parametersuint6442The default input values that the corresponding transaction function will utilize before execution.

Cli Syntax & Examples

note

Each CLI command and proposal process in KIRA requires specific permissions. These permissions must be added to the account's whitelist or obtained as sudo permissions for direct changes. Refer to the Roles & Permissions documentation for more details. $SIGNER represents the transaction signer's account name or address. For instructions on setting common flags as environment variables, such as $FLAGS_TX and $FLAGS_QR__, see the section

Transactions

set-execution-feeUpdate execution fee parameters for different transaction types.

Updating Execution Fees With Sudo Permission

The set-execution-fee CLI command allows accounts with sudo permission 7 to modify execution fee parameters for different transaction types.

Flags

  • $TX_TYPE: The type of transaction for which the fees are being updated.
  • $EXECUTION_FEE: The fee for successful execution of the transaction.
  • $FAILURE_FEE: The fee for failed execution of the transaction.
  • $TX_TIMEOUT: The timeout duration for the transaction.
sekaid tx customgov set-execution-fee \
--from=$SIGNER $FLAGS_TX \
--transaction_type=$TX_TYPE \
--execution_fee=$EXECUTION_FEE \
--failure_fee=$FAILURE_FEE \
--timeout=$TX_TIMEOUT