The gas limit for single send transaction is about 21000 gas which turns out to be 0.000378 ether per 21000 gas, roughly equal to 0.4 US$.
The SafeLow cost for a transaction is currently $0.019, which is a lot less than your $0.40. It's possible, however, that the price has fluctuated since you wrote your question, which I'll talk about more below.
Now I am creating my own Ethereum based crypto-coin, and I want to keep its conversion rate as 1 coin = 1 US$
This is perhaps possible during an ICO phase, where you can sell the tokens for this amount, but how will you prevent them being traded for different amounts on the open market? (This is perhaps worth a new question, if it hasn't been asked before.)
But if my traders send 1 or just half coin, then also for this transaction, if they have to pay the whole gass limit then it will be of no use as it will be more of a loss.
Ethereum's gas prices form a market. As above, I think your estimate of $0.40 is too high, at least for the current market. However, as the number of transactions being sent on the network increases, so does demand for throughput and space in blocks. This pushes up the gas price, and this is how it was designed to work.
Fees will likely be lower when further scalability solutions have been implemented, but the price market will always exist. If that doesn't appeal to you, then perhaps a different platform would be a better fit (and especially if you want to peg your token to a fiat value).
The solution to sending out tokens is to look at other transactions that are sending the same token from its contract source. From there you can see how much other people are paying and what you should set in the settings. For me, looked at the usdt contract and saw others setting GAS_PRICE
to 1 Gwei and gas limit to 400,000. That worked.
Best Answer
Short answer: it really depends on the token, and typically varies from 25'000 to 150'000, with very rare cases going over 500'000 gas.
Recommendation: set it 200'000 if you don't have access to an estimate, it will work 99% of the time. It is a "limit" anyway, you will get back any unspent gas immediately.
If your wallet proposes an estimate, add roughly 10-20% to it.
Long answer:
There are several ways to get to the numbers you are looking for. The simplest is probably to use a good software wallet and let it do an estimate.
Many plugins and apps that allow you to send transactions on the Ethereum blockchain will tell you in advance how much gas they think the transaction will cost, and that is usually a good starting point to choose your gas limit.
What they do is actually pre-run the transaction locally, and by simulating the transaction, you get the estimated gas cost, which is often exactly correct. It may however vary, if the smart contract was called and its state changed in between the estimate and the actual mining of the tx. If the state change in some way affects your transaction, then the real gas cost may be different.
So I usually recommend to take the estimate and roughly round it up by about 10-20%. E.g. 129'543 ==> 150000. Anyway any excess gas sent along the transaction will be refunded immediately after the transaction is mined.
You can use any good wallet app or the Metamask plugin, there's many tools that could do the job.
As for which other operations make the limit rise: all of them.
Sending a transaction costs a minimum of 21000gas in principle. If the transaction involves any kind of computation or storage, then the gas cost will go up, and the gas limit you need to use must at least match it. So any call to a smart contract function will cost 21000 plus the cost of executing its code.
Most typical arithmetic operations cost between 3 and 10gas, as do most logical, memory and flow operations. Reading a 256bits word from storage costs 50, and writing a new variable to storage costs 20000, updating it costs 5000. Getting the eth balance costs 20. Validating the address of an elliptic curve signature costs 3000.
So a typical erc20 transfer will cost around 45k gas if the recipient didnt have any tokens before: 21k base + 20k to store the brand new token balance for this user + a few thousand for the validations, flow and event. A second transfer to the same rexipient will cost closer to 30, since his balance is now non-zero.
This should get you an idea of what's lying under the hood, and you can refer to the yellow paper for detailed gas costs of all opcodes.