EIP idea: eth_signUserOperation RPC

I’d like to see a JSON Schema definition for the parameters of eth_signUserOperation. These things always end up underspecified and have slight differences between wallets.

For example:

  • Does the dapp have to provide the nonce, or does the wallet figure that out? Would it be useful to support both?
  • Can chainId be omitted? If so, does that mean “create a UserOperation that can work on multiple chains” or “use the currently active chain in the wallet”?
  • Does the dapp have to provide callGasLimit/verificationGasLimit/preVerificationGas/maxFeePerGas/maxPriorityFeePerGas?

Is eth_signTypedData sufficient? Can we standardize a signature format using that, and not create a new RPC endpoint, or is there information in the UserOperation that only the wallet would know?

Not saying this is the correct approach, but I wanted to raise it as an option.


Is it important to define how to hash the UserOperation? That seems like it only matters between the account/aggregator and the wallet doing the signing.

1 Like