What is the difference between "fees" and "gas prices"?

“Each transaction may either supply fees or gas prices, but not both.”

Thank you

If you provide gas prices, the fee is calculated like this:
Fee = gas limit * gas prices

Otherwise you can do the math yourself and provide the fee param.

Note that most validators have their minimum gas price 0.25uscrt, so using less than that will make your tx wait a bit longer to be added to the chain. I think with gas prices of 0 it takes 3 minutes to commit to the chain.

With a gas price of 0, wouldn’t the fee be zero, causing the tx to fail and return an error?

Some of the validators accept txs with not fee.

Do you mean some validators offer zero fee strictly for the sending tokens or do you mean for txs involving computations as well? What about “Invalid Coin” error when not including enough gas when staking SEFI?

For all types of transaction.

“Invalid Coin” on secretnodes means that you didn’t supply enough gas limit to the transaction.

So, in the Keplr tx dialogue box:

Selecting the “fee” as “low” is the equivalent of setting the gas price as zero.

The user is offering to pay just the gas limit.

Do I have that right?

No, Keplr doesn’t allow you to set the price to zero.

Gas limit is meant to meter the tx execution, to prevent DOS attacks. Most validators require gas price to add a tx to the chain, so txs aren’t fee and it’s not cheap to DOS the chain.

I am not quite understanding, are you saying that a 0 gas price is possible but just not with Keplr?