Ethereum Paymaster: Who Actually Signs The Gas Check

Forget the fairy tale that users always pay their own way on-chain. The entire magic trick of account abstraction hinges on one brutal question: when a transaction hits the mempool, whose ETH is bleeding out to cover the base fee and priority tip? The answer sits inside the paymaster contract, and it is far more predatory than most developers admit.

A paymaster is a smart contract that agrees to sponsor gas on behalf of a user. In the ERC-4337 flow, the UserOperation gets bundled, the EntryPoint contract calls validatePaymasterUserOp, and the paymaster either stakes ETH in the deposit ledger or burns its own balance. That deposit is the collateral. No deposit, no sponsorship, no exceptions.

The Three Bloodlines Of Gas Sponsorship

First bloodline: the dApp pays. Gaming platforms and betting frontends often eat the gas to remove friction for new wallets. Second bloodline: a third-party sponsor with a business model, usually a token issuer that wants users to mint without holding native ETH. Third bloodline: the paymaster is a relay that front-loads gas and later claws it back through an off-chain invoice or an on-chain debt token.

Every one of these models hides a solvency risk. If the paymaster's deposit runs dry mid-bundle, the entire UserOperation reverts and the bundler eats the loss. That is why serious operators monitor the deposit balance block by block, not once a day. 🛑

Stake, Reputation, And The Throttling No One Talks About

Post-ERC-7562, paymasters must stake ETH and obey strict storage access rules. A paymaster that touches banned storage slots gets throttled or banned by bundlers entirely. The reputation system scores entities based on inclusion rates, and a low score means your sponsored transactions sit in limbo while honest bundlers refuse to touch them.

Here is the ugly part: the reputation score is not portable. Different bundler implementations weight the penalties differently. A paymaster with a clean record on one bundler can be flagged as toxic on another. That fragmentation is a direct tax on gas sponsorship economics.

Token Paymasters And The Oracle Trap

Accepting ERC-20 tokens as gas payment sounds elegant until you inspect the oracle. The paymaster must convert the token amount into ETH value at execution time. If the price feed is stale, manipulable, or simply wrong, the paymaster either overcharges the user or eats the shortfall. Chainlink feeds are the default, but a low-liquidity token with a thin pool is a liquidation buffet for MEV searchers.

Worse, some paymasters use a single DEX spot price as their oracle. That is not an oracle. That is an invitation. A flash loan can move the pool, the paymaster mints a favorable conversion rate, and the sponsor bleeds value in a single block. 🎰

Who Really Pays When The Sponsor Defaults

The final backstop is always the bundler. If a paymaster's deposit is insufficient, the EntryPoint reverts the entire bundle, and the bundler has already paid the block builder for inclusion. That loss propagates back to the bundler's own staking and reputation. In practice, bundlers simulate UserOperations before inclusion and reject anything with a paymaster they do not trust.

So the real answer to who pays gas is layered: the user pays in tokens or off-chain fees, the paymaster fronts ETH from its deposit, the bundler advances the inclusion cost, and the block builder collects the tip. Break any layer in that chain and the whole abstraction collapses into a reverted transaction with wasted calldata. 💀

Deposit Accounting And The Withdrawal Race

Paymaster deposits sit inside the EntryPoint contract, not the paymaster itself. To pull funds out, the paymaster owner calls withdrawTo, which triggers a two-step unstake delay. That delay exists to prevent a paymaster from draining its deposit, sponsoring one final wave of transactions, and vanishing before bundlers can blacklist it.

Aggressive operators exploit this window anyway. A paymaster with a short unstake delay can schedule a withdrawal, keep sponsoring until the last block, and let the deposit hit zero exactly when the unstake period ends. Bundlers that do not simulate against the pending withdrawal state get burned. The mitigation is simple but rarely enforced: monitor the unstake queue and refuse any paymaster with a pending withdrawal.

That single on-chain signal, the unstake request timestamp, is the most reliable early warning of a paymaster about to rug its own gas deposit.