I am trying to make an argument here to not separate between protocol fee and gas fees but instead, simply have one (protocol) fee.
Let’s assume it would be our goal to only charge exactly the gas fee - that would cause larger issues
a) how to charge for failed solver attempts
b) very hard to “fairly” split gas costs across different traders in a batch
c) volatile gas prices make it hard at order submission to know the gas price at inclusion time
Gas optimization is a complex topic and can include:
a) using gas tokens (deleting order storage in GP)
b) using storage access lists
c) optimizing gas prices/ miner tip
Long term it seems better to let solvers compete here as well and just offer specific solver rewards and let solvers optimize the costs they have.
a) easier to understand for the user - why bother the user with 2 different fees. A simple statement like: “GP has a protocol fee that covers expenses like solver gas costs”
b) Total amount of fees taken is simply higher. Of course, it is important to be transparent about expenses. From a protocol perspective, these will be solver rewards (and those need to be high enough to cover gas costs)
How to define the fee:
Suggestion: base trade fee = (100k gas * current “1559 base fee”) + (e.g.)2 BIP
Even when just trying to cover gas costs it does make sense to charge a higher fee for larger trades as it makes sense for larger trades to use more gas (more complex executions)-