Well, if it’s a simple transaction–say, sending ETH or an ERC-721 token to another address, you should be spending 21,000 units of gas.
However when I try to do this, MetaMask estimates a gas limit much, much higher. Then if you go to Advanced Options to see more details, the gas limit it sets is usually 100,000-200,000 or more. Is 21,000 incorrect for transferring an NFT from one wallet to another? If so MetaMask should definitely remove this help page, or update with an accurate value. What is a better estimate for an ERC-721 transfer?
The NFT I am trying to transfer has already been minted (from OpenSea) and is now in my MetaMask wallet. So this is not related to gas fees for minting.
OK that page also says: " Remember, a normal transaction sending ETH or a token normally costs 21,000 gas"
So if 21,000 gas is normal, why does Metamask default to a gas limit well over 100,000? I understand the gas price (measured in gwei) is volatile, but there are 2 places in your documentation that says the number of gas units should be 21,000 while your app sets it to 5-10x higher.
The gas limit that is set by MetaMask varies depending on the price of gas at the time, it is not set at a default of 100,000. A token transfer normally costs 21,000 units of gas, but because gas prices are volatile this often changes.
If it changes often, your docs should not say it “normally” costs 21,000 units. Secondly, MetaMask never defaults to 21,000 or anywhere close. Just now, it set the gas limit to 146,058.
Again, I am not talking about the price of gas, but the gas limit. Your docs say 21,000 is normal, the actual app uses a number between 100,000 and 250,000.