Uniswap · Schema

UserOperation

ERC-4337 v0.8 UserOperation.

BlockchainCryptocurrencyDeFiDecentralized ExchangeLiquiditySwaps

Properties

Name Type Description
sender string Smart account address that will execute the operation.
nonce string Anti-replay nonce from the EntryPoint.
callData string ABI-encoded call data for the batch execution.
callGasLimit string Gas limit for the main execution call.
verificationGasLimit string Gas limit for the verification step.
preVerificationGas string Gas to cover bundler overhead and L1 data costs.
maxFeePerGas string EIP-1559 max fee per gas.
maxPriorityFeePerGas string EIP-1559 max priority fee per gas.
factory string Account factory address (present for first-time account deployment).
factoryData string Calldata for the account factory.
paymaster string Paymaster contract address (present when gas is sponsored).
paymasterVerificationGasLimit string Gas limit for paymaster verification.
paymasterPostOpGasLimit string Gas limit for paymaster post-operation.
paymasterData string Paymaster-specific data.
signature string Dummy signature placeholder; the client signs the UserOperation after receiving this response.
eip7702Auth object
View JSON Schema on GitHub

JSON Schema

uniswap-user-operation-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/uniswap/refs/heads/main/json-schema/uniswap-user-operation-schema.json",
  "title": "UserOperation",
  "description": "ERC-4337 v0.8 UserOperation.",
  "type": "object",
  "properties": {
    "sender": {
      "type": "string",
      "description": "Smart account address that will execute the operation."
    },
    "nonce": {
      "type": "string",
      "description": "Anti-replay nonce from the EntryPoint."
    },
    "callData": {
      "type": "string",
      "description": "ABI-encoded call data for the batch execution."
    },
    "callGasLimit": {
      "type": "string",
      "description": "Gas limit for the main execution call."
    },
    "verificationGasLimit": {
      "type": "string",
      "description": "Gas limit for the verification step."
    },
    "preVerificationGas": {
      "type": "string",
      "description": "Gas to cover bundler overhead and L1 data costs."
    },
    "maxFeePerGas": {
      "type": "string",
      "description": "EIP-1559 max fee per gas."
    },
    "maxPriorityFeePerGas": {
      "type": "string",
      "description": "EIP-1559 max priority fee per gas."
    },
    "factory": {
      "type": "string",
      "description": "Account factory address (present for first-time account deployment)."
    },
    "factoryData": {
      "type": "string",
      "description": "Calldata for the account factory."
    },
    "paymaster": {
      "type": "string",
      "description": "Paymaster contract address (present when gas is sponsored)."
    },
    "paymasterVerificationGasLimit": {
      "type": "string",
      "description": "Gas limit for paymaster verification."
    },
    "paymasterPostOpGasLimit": {
      "type": "string",
      "description": "Gas limit for paymaster post-operation."
    },
    "paymasterData": {
      "type": "string",
      "description": "Paymaster-specific data."
    },
    "signature": {
      "type": "string",
      "description": "Dummy signature placeholder; the client signs the UserOperation after receiving this response."
    },
    "eip7702Auth": {
      "$ref": "#/components/schemas/Eip7702Authorization"
    }
  },
  "required": [
    "sender",
    "nonce",
    "callData",
    "callGasLimit",
    "verificationGasLimit",
    "preVerificationGas",
    "maxFeePerGas",
    "maxPriorityFeePerGas",
    "signature"
  ]
}