[Feature] Dynamic Outbound Fee Multiplier #check-lint-warning
Dynamic Outbound Fee Multiplier:
Currently, users are charged a constant 3x multiplier on the "base outbound fee" of an external L1 chain for outbounds. Data shows that this is a over-estimation on what they should be charged, as shown by this graph:
outbound_gas_costs
is what the Reserve has paid for outbounds, and outbound_fees
is what the users have been charged - there is a clear gap here, and space to bring down fees for users.
New Design
Create a dynamic "outbound fee multiplier" that moves between a max_multiplier
and a min_multiplier
based on the current outbound fee "surplus" of the network in relation to a "target" surplus. The "surplus" is the difference between the gas users are charged and the gas the network has spent. As the network's surplus grows in relation to the target surplus, the outbound multiplier will decrease from a Max Multiplier, to a Min Multiplier. The outbound fee multiplier will then be a "sliding scale" instead of being a constant 3x.
New Mimirs
-
TargetOutboundFeeSurplusRune
: target amount of $RUNE to have as a surplus. Suggested initial value100_000_00000000
(100,000 $RUNE) -
MaxOutboundFeeMultiplierBasisPoints
: max multiplier in basis points. Suggested initial value:30_000
-
MinOutboundFeeMultiplierBasisPoints
: min multiplier in basis points. Suggested initial value:15_000
New Network Properties
-
outbound_gas_spent_rune
: Sum of $RUNE spent by the network on outbounds -
outbound_gas_withheld_rune
: Sum of $RUNE withheld from the user for outbounds
current surplus = outbound_gas_withheld_rune
- outbound_gas_spent_rune
The current surplus is compared with the target surplus, and the outbound fee multiplier is adjusted accordingly on a sliding scale: If surplus => target, use the min multiplier. If surplus = 0 use the max multiplier. If surplus > 0 && surplus < target, return the basis points value in between min and max multiplier that represents the "progress" to the target surplus.
Behavior
The result will be that the outbound fee multiplier will move between 1.5x and 3x, which will result in significant savings for the user, but still ensure the network isn't losing money on outbound fees.