We recently shared Proposal for New Wallet RPCs to start a discussion on enabling apps and wallets to communicate about batch transactions, paymasters, and more. Thanks to everyone for the feedback so far.
In this post, we will explore the paymaster capability in more detail: covering the motivation, detailing call flows with updates based on feedback, and discussing the implied trust relationship between the wallet and app.
Motivation
Today, apps ask wallets to sign and send a transactions via the eth_sendTransaction RPC. This RPC has no field to express paymaster or sponsorship info. If we want to allow apps and wallet to communicate about paymasters, or sponsorship more generally, we need to standardize how that will happen.
We first brough this need up October 2023.
Suppose the dapp has its own paymaster, which my wallet knows nothing about, and wants to include the paymaster and signature in the request sent to the wallet. Perhaps the dapp wants to set some of the user operation gas values, and help the wallet with things it may not be aware of. Currently there is no way to do these things.