W-013 · Gas Sponsored Transactions

TITLE: Gas Sponsored Transactions
STARTED: 12-10-2026
STATUS: Completed


ORIGIN: Exploratory Testing on MetaMask.


QUESTION(S)

  • Can a dapp set what MetaMask pays for a sponsored transaction as suggested gas?
  • Is there a limit on how much will be Sponsored?
  • Which transactions are sponsored and which not?
  • What’s the fallback?

INVESTIGATION

Started performing some transactions on different networks. Some networks show “No fees”, and indeed they display Paid by MetaMask in those transactions. However not all of them are paid. Smart Contract deployments are not paid, even in “No fees” networks.

Explored dapp suggested transactions and dapp suggested transactions with suggested gas.

Created a smart contract to burn gas, by having a function which writes on a mapping.

PR: https://github.com/MetaMask/test-dapp/pull/437


DISCOVERIES

Gas sponsorship means MetaMask pays the network fee. The confirmation shows Paid by MetaMask. Eligibility comes from MetaMask’s simulation service, which returns whether the transaction is sponsored. The dapp does not get to set the bill by putting a large gas limit on eth_sendTransaction. The sponsored path is an EIP-7702 relay submission: chain, target, and call data. That request has no gas field. The relay prices the call itself.

The first eligible transaction on a supported network upgrades the account to a smart account. Hardware wallets are not sponsored. If the transaction is over the cap, or otherwise ineligible, you pay the fee yourself.

These are the networks and the transactions that qualify:

NetworkEligible transactionsExtra requirement
MonadSwap, send, or dapp call that stays on MonadIf you are sending MON, at least 10 MON must remain afterward. That balance rule does not apply to ERC-20 sends or swaps.
SEISwap, send, or dapp call that stays on SEINone published beyond staying on SEI.
SolanaA Solana swap, or a cross-chain swap that starts on SolanaSwap size at least $200.

CONCLUSIONS

MetaMask pays for the gas the relay allows for that execution, up to 5,000,000 gas, on an eligible transaction from an upgraded account. A dapp raises that amount by doing more work, not by suggesting a higher gas limit. The burner is the probe. Deploy a fresh contract, set the write count, and read the confirmation.

Below the cap, the confirmation should say Paid by MetaMask and the MON balance should stay put. Above the cap, the confirmation should show a normal network fee.