MetaMask Fees – Fee Collection When Transaction Cost Exceeds Fee

erc-20gasmetamask

Especially on Ethereum network, the transaction fee (when exchanging a token with another) might be more than $10 in many cases. I am interested, how MetaMask charges its small fee (i.e. 0.87% or whatever), while let's say for example, if sum of fee is up to $10, but transaction cost is more than that, then how does MetaMask obtains those fees from us? What method it uses to cut that fee and send to themselves?

Best Answer

Don't confuse the gas fee with the Metamask fee. The metamask fee only applies to swaps, not on direct wallet to wallet transfer. You will always have to pay the gas fee anyway, but it's not part of your metamask swap order.

In the case of a swap, as they explain here :

A service fee of 0.875% is automatically factored into each quote

A currency / coin pair is alway in the format BASE/QUOTE.

In ETH/USDT, ETH is the Base and USDT the Quote.

Meaning that if the actual change rate of coin A to coin B is 1, you will pay for a change rate of 1.00875.

So to buy 100 ETH you will pay 100.875 BUSD. ( 100 for the change rate, and 0.875 for the fee )

When swapping using metamask you will interact with their smart contract swap router first.

The swap router will internally forward your order to another contract that currently seems to live at 0x74de5d4FCbf63E00296fd95d33236B9794016631.

If you check the internal transactions made by that contract you will see that for each call received from the Metamask Swap Router, one transaction goes to an Exchange, and another one goes to the Metamask: Fees contract, this is the 0.875.

So when you send quote + fee Metamask forwards the quote to the exchange to fulfill your order, and forwards your fee to their own contract.

Related Topic