Principles to follow

  • All Activators can execute FCTs on any block (Kirobo can always activate)
  • “Gas War” should be avoided by design (high gas = low profits)
  • The Activator earns more when saving gas for the end user (win-win)
  • Every Activator, in the long run, is able to earn according to his staking share (pos)
  • Every Activator, in potential, earns the same for a specific FCT execution (motivation)
  • The user sets the max_gas_price and pays a very low service fee (in % of the transaction cost) Profit is split between the activator, Kirobo, and the builder (if exists)
  • The user is agnostic to profit split (no motivation to trick the payment info)


payment=profitmin{(blocklast)speedbalancetotal,1}payment=profit\ast\min\{\left(block-last\right)\ast speed\ast\frac{balance}{total},1\}
profit=usedGasPricegasbase+(maxGasPriceusedGasPrice)gasbonusprofit=usedGasPrice\ast gas\ast base+\left(\max GasPrice-usedGasPrice\right)\ast gas\ast bonus
1base<bonusprofitLimit1\le base<bonus\le profitLimit
activatorProfit=paymentactivatorShareactivatorProfit=payment\ast activatorShare
builderProfit=paymentbuilderSharebuilderProfit=payment\ast builderShare
0activatorShare+builderShare10\le activatorShare+builderShare\le1
a) If a builder does not exist, Kirobo gets the builder share.
b) The granulation of all % values is 0.01%

DAO Decides

base bonus builderShare activatorShare builder registry (name to address mapping) activators registry (banned activators) min user deposit (Kiro) min activator staking (Kiro) speed value (for fine-tuning the recovery period) payment algorithm contract address

Cannot be changed

existing balances maximum payment (in % of transaction price)

Human-Friendly Explanation

User Perspective

The user sets the maxGasPrice. The maximum payment will be the transaction gas price with an additional fixed base fee in % of the transaction gas price. Usually, the payment will be much lower because of the way Activators are rewarded.

Activator Perspective

The Activator pays for the transaction and gets all the money back in Kiros. The Activator profit depends on the following: portion in staking, time from the last activation, and the actual gas price that was used for activation. When the Activator activates an FCTs his profit for the next activation drops to 0. This profit returned to full capacity at a pace related to the Activator’s staking. The higher the staking, the faster it takes to recover to the full profit capacity. The full profit capacity is affected by the gas price that was used by the activator when executing FCTs. Lower gas price means higher profit capacity. The calculation is: baseProfit * totalGasPrice + bonusProfit * savedGasPrice savedGasPrice is the price saved when using a lower gas price than the max gas price that the user was willing to pay.

Numerical Example

Consider the following:
  • The max transaction price, as defined by the user by maxGasPrice, is $50
  • The base service fee is 10%
  • So the user agrees to pay a maximum of $55 for this transaction.
  • The bonus fee is 50%
  • The Activator share is 70%
  • The Builder share is 20%
Now the activator uses a lower gas price than the max causing the transaction to cost $30 The user will pay: $30 + (10% of $50) + (50% of $20) = $45 The activator will earn: 70% of ((10% of $50) + (50% of $20)) = $10.5 The builder will earn: 20% of ((10% of $50) + (50% of $20)) = $3 Kirobo will earn: 10% of ((10% of $50) + (50% of $20)) = $1.5
If the activator used the highest possible gas price then the transaction cost will be $50 The user will pay: $50 + (10% of $50) + (50% of $0) = $55 The activator will earn: 70% of ((10% of $50) + (50% of $0)) = $3.5 The builder will earn: 20% of ((10% of $50) + (50% of $0)) = $1 Kirobo will earn: 10% of ((10% of $50) + (50% of $20)) = $0.5
It is clearly more profitable for the activator to run the transaction with a lower gas price. It is also more profitable for the user, builder, and Kirobo.