eth_sendUserOperation
Submits a user operation to be included onchain and returns the user operation hash if successful (or queued). If the operation is not successful, it will return an error. This method uses 80 credits from your daily balance.
Parameters
-
userOperation
: The user operation object containing the following fields:sender
: (string) - The address of the account making the operation.nonce
: (string) - Unique identifier for the request from this sender. This includes the key and sequence number.factory
: (string) [optional] - The factory contract address that will deploy the smart account if it doesn't exist yet.factoryData
: (string) [optional] - The data passed to the factory contract to deploy the smart account.callData
: (string) [optional] - The data to pass to the sender during the main execution call.callGasLimit
: (string) - The amount of gas to allocate the main execution call.verificationGasLimit
: (string) - The amount of gas to allocate for the verification step.preVerificationGas
: (string) - The amount of gas to pay for to compensate the bundler for pre-verification execution andcalldata
.maxFeePerGas
: (string) - Maximum fee per gas, in wei, the sender is willing to pay per gas.maxPriorityFeePerGas
: (string) - Maximum fee, in wei, the sender is willing to pay per gas above the base fee.paymaster
: (string) [optional] - Address of paymaster sponsoring the transaction, ornull
if none.paymasterVerificationGasLimit
: (string) [optional] - The amount of gas to allocate for the verification step of the paymaster, ornull
if no paymaster.paymasterPostOpGasLimit
: (string) [optional] - The amount of gas to allocate for the post-operation step of the paymaster, ornull
if no paymaster.paymasterData
: (string) [optional] - The data to pass to the paymaster during the verification step, ornull
if no paymaster.signature
: (string) - The signature data.eip7702Auth
: (object) [optional] - The EIP-7702 authorization data.SignedAuthorization Type
:address
: (string) - The contract address for the authorization.chainId
: (string) - The chain ID.nonce
: (string) - The nonce.r
: (string) - The r component of the signature.s
: (string) - The s component of the signature.v
: (string) - The v component of the signature.yParity
: (string) - The y-parity value.
-
entryPoint
: (string) - The entry point contract address (0x0000000071727De22E5E9d8BAf0edAc6f37da032
).
Returns
The 32-bytehash of the user operation (userOpHash
). This hash uniquely identifies the user operation
and can be used to track its status.
Example
Replace <YOUR-API-KEY>
with an API key from your MetaMask Developer dashboard.
Request
- curl
curl http://mainnet.infura.io/v3/<YOUR-API-KEY> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_sendUserOperation",
"params": [
{
"sender": "0x5a6b47F4131bf1feAFA56A05573314BcF44C9149",
"nonce": "0x845ADB2C711129D4F3966735ED98A9F09FC4CE5700000000000000000000",
"factory": "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
"factoryData": "0xc5265d5d000000000000000000000000aac5d4240af87249b3f71bc8e4a2cae074a3e419",
"callData": "0xe9ae5c5300000000000000000000000000000000000000000000000000000000000000000000000000",
"callGasLimit": "0x13880",
"verificationGasLimit": "0x60B01",
"preVerificationGas": "0xD3E3",
"maxPriorityFeePerGas": "0x3B9ACA00",
"maxFeePerGas": "0x7A5CF70D5",
"paymaster": "0x",
"paymasterVerificationGasLimit": "0x0",
"paymasterPostOpGasLimit": "0x0",
"paymasterData": null,
"signature": "0xa6cc6589c8bd561cfd68d7b6b0757ef6f208e7438782939938498eee7d703260137856c840c491b3d415956265e81bf5c2184a725be2abfc365f7536b6af525e1c"
},
"0x0000000071727De22E5E9d8BAf0edAc6f37da032"
],
"id": 1
}'
Response
- JSON
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x4c31ae84205a9c862dd8d0822f427fb516448451850ee6f65351951f6a2b2154"
}
Example
Replace <YOUR-API-KEY>
with an API key from your MetaMask Developer dashboard.
Request
- curl
curl https://mainnet.infura.io/v3/<YOUR-API-KEY> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_sendUserOperation",
"params": [
{
"sender": "0x5a6b47F4131bf1feAFA56A05573314BcF44C9149",
"nonce": "0x845ADB2C711129D4F3966735ED98A9F09FC4CE5700000000000000000000",
"factory": "0xd703aaE79538628d27099B8c4f621bE4CCd142d5",
"factoryData": "0xc5265d5d000000000000000000000000aac5d4240af87249b3f71bc8e4a2cae074a3e419",
"callData": "0xe9ae5c5300000000000000000000000000000000000000000000000000000000000000000000000000",
"callGasLimit": "0x13880",
"verificationGasLimit": "0x60B01",
"preVerificationGas": "0xD3E3",
"maxPriorityFeePerGas": "0x3B9ACA00",
"maxFeePerGas": "0x7A5CF70D5",
"paymaster": "0x",
"paymasterVerificationGasLimit": "0x0",
"paymasterPostOpGasLimit": "0x0",
"paymasterData": null,
"signature": "0xa6cc6589c8bd561cfd68d7b6b0757ef6f208e7438782939938498eee7d703260137856c840c491b3d415956265e81bf5c2184a725be2abfc365f7536b6af525e1c"
},
"0x0000000071727De22E5E9d8BAf0edAc6f37da032"
],
"id": 1
}'
Response
- JSON
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x4c31ae84205a9c862dd8d0822f427fb516448451850ee6f65351951f6a2b2154"
}