> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockscout.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a user operation by hash

> Retrieves a user operation by its hash.



## OpenAPI

````yaml /openapi-specs/pro-api-v11.yaml get /v2/proxy/account-abstraction/operations/{operation_hash_param}
openapi: 3.0.0
info:
  contact:
    email: info@blockscout.com
  title: Blockscout
  version: 11.0.3
servers:
  - url: http://localhost/api
    variables: {}
security: []
tags:
  - name: blocks
  - name: transactions
  - name: addresses
  - name: internal-transactions
  - name: tokens
  - name: token-transfers
  - name: smart-contracts
  - name: config
  - name: main-page
  - name: search
  - name: stats
  - name: csv-export
  - name: account-abstraction
  - name: withdrawals
  - name: advanced-filters
  - name: arbitrum
  - name: legacy
  - name: optimism
  - name: mud
  - name: celo
  - name: scroll
  - name: zilliqa
paths:
  /v2/proxy/account-abstraction/operations/{operation_hash_param}:
    get:
      tags:
        - account-abstraction
      summary: Get a user operation by hash
      description: Retrieves a user operation by its hash.
      operationId: BlockScoutWeb.API.V2.Proxy.AccountAbstractionController.operation
      parameters:
        - description: User operation hash in the path
          in: path
          name: operation_hash_param
          required: true
          schema:
            $ref: '#/components/schemas/FullHash'
        - description: API key for rate limiting or for sensitive endpoints
          in: query
          name: apikey
          required: false
          schema:
            type: string
            x-struct: null
            x-validate: null
        - description: Secret key for getting access to restricted resources
          in: query
          name: key
          required: false
          schema:
            type: string
            x-struct: null
            x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOperation'
          description: User operation
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotImplementedResponse'
          description: Not Implemented
      callbacks: {}
components:
  schemas:
    FullHash:
      nullable: false
      pattern: ^0x([A-Fa-f0-9]{64})$
      title: FullHash
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.FullHash
      x-validate: null
    UserOperation:
      additionalProperties: false
      description: UserOperation struct.
      nullable: false
      properties:
        aggregator_signature:
          $ref: '#/components/schemas/HexStringNullable'
        bundler:
          $ref: '#/components/schemas/Address'
        block_number:
          $ref: '#/components/schemas/IntegerString'
        entry_point:
          $ref: '#/components/schemas/Address'
        user_logs_count:
          nullable: false
          type: integer
          x-struct: null
          x-validate: null
        paymaster:
          $ref: '#/components/schemas/AddressNullable'
        user_logs_start_index:
          nullable: false
          type: integer
          x-struct: null
          x-validate: null
        nonce:
          $ref: '#/components/schemas/FullHash'
        timestamp:
          $ref: '#/components/schemas/TimestampNullable'
        consensus:
          nullable: true
          type: boolean
          x-struct: null
          x-validate: null
        call_gas_limit:
          $ref: '#/components/schemas/IntegerString'
        factory:
          $ref: '#/components/schemas/AddressNullable'
        gas_price:
          $ref: '#/components/schemas/IntegerString'
        verification_gas_limit:
          $ref: '#/components/schemas/IntegerString'
        sender:
          $ref: '#/components/schemas/Address'
        execute_call_data:
          $ref: '#/components/schemas/HexStringNullable'
        fee:
          $ref: '#/components/schemas/IntegerString'
        status:
          nullable: false
          type: boolean
          x-struct: null
          x-validate: null
        execute_target:
          $ref: '#/components/schemas/AddressNullable'
        gas_used:
          $ref: '#/components/schemas/IntegerString'
        signature:
          $ref: '#/components/schemas/HexString'
        entry_point_version:
          enum:
            - v0.6
            - v0.7
            - v0.8
            - v0.9
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        call_data:
          $ref: '#/components/schemas/HexString'
        aggregator:
          $ref: '#/components/schemas/AddressHashNullable'
        max_priority_fee_per_gas:
          $ref: '#/components/schemas/IntegerString'
        index:
          nullable: false
          type: integer
          x-struct: null
          x-validate: null
        block_hash:
          $ref: '#/components/schemas/FullHash'
        sponsor_type:
          enum:
            - wallet_deposit
            - wallet_balance
            - paymaster_sponsor
            - paymaster_hybrid
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        revert_reason:
          $ref: '#/components/schemas/HexStringNullable'
        gas:
          $ref: '#/components/schemas/IntegerString'
        max_fee_per_gas:
          $ref: '#/components/schemas/IntegerString'
        hash:
          $ref: '#/components/schemas/FullHash'
        decoded_execute_call_data:
          allOf:
            - $ref: '#/components/schemas/DecodedInput'
          nullable: true
          x-struct: null
          x-validate: null
        bundle_index:
          nullable: false
          type: integer
          x-struct: null
          x-validate: null
        decoded_call_data:
          allOf:
            - $ref: '#/components/schemas/DecodedInput'
          nullable: true
          x-struct: null
          x-validate: null
        pre_verification_gas:
          $ref: '#/components/schemas/IntegerString'
        raw:
          anyOf:
            - additionalProperties: false
              description: Raw user operation data v0.6.
              nullable: false
              properties:
                call_data:
                  $ref: '#/components/schemas/HexString'
                call_gas_limit:
                  $ref: '#/components/schemas/IntegerString'
                init_code:
                  $ref: '#/components/schemas/HexString'
                max_fee_per_gas:
                  $ref: '#/components/schemas/IntegerString'
                max_priority_fee_per_gas:
                  $ref: '#/components/schemas/IntegerString'
                nonce:
                  $ref: '#/components/schemas/IntegerString'
                paymaster_and_data:
                  $ref: '#/components/schemas/HexString'
                pre_verification_gas:
                  $ref: '#/components/schemas/IntegerString'
                sender:
                  $ref: '#/components/schemas/AddressHash'
                signature:
                  $ref: '#/components/schemas/HexString'
                verification_gas_limit:
                  $ref: '#/components/schemas/IntegerString'
              required:
                - sender
                - nonce
                - init_code
                - call_data
                - call_gas_limit
                - verification_gas_limit
                - pre_verification_gas
                - max_fee_per_gas
                - max_priority_fee_per_gas
                - paymaster_and_data
                - signature
              type: object
              x-struct: null
              x-validate: null
            - additionalProperties: false
              description: Raw user operation data v0.7-v0.9.
              nullable: false
              properties:
                account_gas_limits:
                  $ref: '#/components/schemas/FullHash'
                call_data:
                  $ref: '#/components/schemas/HexString'
                gas_fees:
                  $ref: '#/components/schemas/FullHash'
                init_code:
                  $ref: '#/components/schemas/HexString'
                nonce:
                  $ref: '#/components/schemas/IntegerString'
                paymaster_and_data:
                  $ref: '#/components/schemas/HexString'
                pre_verification_gas:
                  $ref: '#/components/schemas/IntegerString'
                sender:
                  $ref: '#/components/schemas/AddressHash'
                signature:
                  $ref: '#/components/schemas/HexString'
              required:
                - sender
                - nonce
                - init_code
                - call_data
                - account_gas_limits
                - pre_verification_gas
                - gas_fees
                - paymaster_and_data
                - signature
              type: object
              x-struct: null
              x-validate: null
          description: Raw user operation data.
          x-struct: null
          x-validate: null
        transaction_hash:
          $ref: '#/components/schemas/FullHash'
      required:
        - hash
        - sender
        - nonce
        - call_data
        - call_gas_limit
        - verification_gas_limit
        - pre_verification_gas
        - max_fee_per_gas
        - max_priority_fee_per_gas
        - signature
        - raw
        - aggregator
        - aggregator_signature
        - entry_point
        - entry_point_version
        - transaction_hash
        - block_number
        - block_hash
        - bundler
        - bundle_index
        - index
        - factory
        - paymaster
        - status
        - revert_reason
        - gas
        - gas_price
        - gas_used
        - sponsor_type
        - user_logs_start_index
        - user_logs_count
        - fee
        - consensus
        - timestamp
        - execute_target
        - execute_call_data
        - decoded_call_data
        - decoded_execute_call_data
      title: UserOperation
      type: object
      x-struct: >-
        Elixir.BlockScoutWeb.Schemas.API.V2.Proxy.AccountAbstraction.UserOperation
      x-validate: null
    BadRequestResponse:
      description: Response returned when the request is invalid
      properties:
        message:
          description: Error message indicating the request is invalid
          example: Invalid request
          type: string
          x-struct: null
          x-validate: null
      title: BadRequestResponse
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.ErrorResponses.BadRequestResponse
      x-validate: null
    NotFoundResponse:
      description: Response returned when the requested resource is not found
      properties:
        message:
          description: Error message indicating the requested resource was not found
          example: Resource not found
          type: string
          x-struct: null
          x-validate: null
      title: NotFoundResponse
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.ErrorResponses.NotFoundResponse
      x-validate: null
    NotImplementedResponse:
      description: Response returned when the feature is not implemented
      properties:
        message:
          description: Error message indicating the feature is not implemented
          example: Feature not implemented
          type: string
          x-struct: null
          x-validate: null
      title: NotImplementedResponse
      type: object
      x-struct: >-
        Elixir.BlockScoutWeb.Schemas.API.V2.ErrorResponses.NotImplementedResponse
      x-validate: null
    HexStringNullable:
      nullable: true
      pattern: ^0x([A-Fa-f0-9]*)$
      title: HexStringNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.HexStringNullable
      x-validate: null
    Address:
      additionalProperties: false
      description: Address
      properties:
        ens_domain_name:
          description: ENS domain name associated with the address
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        hash:
          $ref: '#/components/schemas/AddressHash'
        implementations:
          description: Implementations linked with the contract
          items:
            $ref: '#/components/schemas/Implementation'
          type: array
          x-struct: null
          x-validate: null
        is_contract:
          description: Has address contract code?
          nullable: true
          type: boolean
          x-struct: null
          x-validate: null
        is_scam:
          description: Has address scam badge?
          nullable: false
          type: boolean
          x-struct: null
          x-validate: null
        is_verified:
          description: Has address associated source code?
          nullable: true
          type: boolean
          x-struct: null
          x-validate: null
        metadata:
          allOf:
            - $ref: '#/components/schemas/Metadata'
          nullable: true
          x-struct: null
          x-validate: null
        name:
          description: Name associated with the address
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        private_tags:
          description: Private tags associated with the address
          items:
            $ref: '#/components/schemas/Tag'
          type: array
          x-struct: null
          x-validate: null
        proxy_type:
          $ref: '#/components/schemas/ProxyType'
        public_tags:
          description: Public tags associated with the address
          items:
            $ref: '#/components/schemas/Tag'
          type: array
          x-struct: null
          x-validate: null
        reputation:
          description: Reputation of the address
          enum:
            - ok
            - scam
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        watchlist_names:
          description: Watchlist name associated with the address
          items:
            $ref: '#/components/schemas/WatchlistName'
          type: array
          x-struct: null
          x-validate: null
      required:
        - hash
        - is_contract
        - name
        - is_scam
        - reputation
        - proxy_type
        - implementations
        - is_verified
        - ens_domain_name
        - metadata
      title: Address
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.Address
      x-validate: null
    IntegerString:
      nullable: false
      pattern: ^-?([1-9][0-9]*|0)$
      title: IntegerString
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.IntegerString
      x-validate: null
    AddressNullable:
      additionalProperties: false
      description: AddressNullable
      nullable: true
      properties:
        ens_domain_name:
          description: ENS domain name associated with the address
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        hash:
          $ref: '#/components/schemas/AddressHash'
        implementations:
          description: Implementations linked with the contract
          items:
            $ref: '#/components/schemas/Implementation'
          type: array
          x-struct: null
          x-validate: null
        is_contract:
          description: Has address contract code?
          nullable: true
          type: boolean
          x-struct: null
          x-validate: null
        is_scam:
          description: Has address scam badge?
          nullable: false
          type: boolean
          x-struct: null
          x-validate: null
        is_verified:
          description: Has address associated source code?
          nullable: true
          type: boolean
          x-struct: null
          x-validate: null
        metadata:
          allOf:
            - $ref: '#/components/schemas/Metadata'
          nullable: true
          x-struct: null
          x-validate: null
        name:
          description: Name associated with the address
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        private_tags:
          description: Private tags associated with the address
          items:
            $ref: '#/components/schemas/Tag'
          type: array
          x-struct: null
          x-validate: null
        proxy_type:
          $ref: '#/components/schemas/ProxyType'
        public_tags:
          description: Public tags associated with the address
          items:
            $ref: '#/components/schemas/Tag'
          type: array
          x-struct: null
          x-validate: null
        reputation:
          description: Reputation of the address
          enum:
            - ok
            - scam
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        watchlist_names:
          description: Watchlist name associated with the address
          items:
            $ref: '#/components/schemas/WatchlistName'
          type: array
          x-struct: null
          x-validate: null
      required:
        - hash
        - is_contract
        - name
        - is_scam
        - reputation
        - proxy_type
        - implementations
        - is_verified
        - ens_domain_name
        - metadata
      title: AddressNullable
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.Address
      x-validate: null
    TimestampNullable:
      format: date-time
      nullable: true
      title: TimestampNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.TimestampNullable
      x-validate: null
    HexString:
      nullable: false
      pattern: ^0x([A-Fa-f0-9]*)$
      title: HexString
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.HexString
      x-validate: null
    AddressHashNullable:
      nullable: true
      pattern: ^0x([A-Fa-f0-9]{40})$
      title: AddressHashNullable
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.AddressHashNullable
      x-validate: null
    DecodedInput:
      additionalProperties: false
      nullable: false
      properties:
        method_call:
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        method_id:
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        parameters:
          items:
            additionalProperties: false
            nullable: false
            properties:
              name:
                nullable: false
                type: string
                x-struct: null
                x-validate: null
              type:
                nullable: false
                type: string
                x-struct: null
                x-validate: null
              value:
                anyOf:
                  - type: object
                    x-struct: null
                    x-validate: null
                  - items:
                      anyOf:
                        - type: object
                          x-struct: null
                          x-validate: null
                        - items:
                            type: string
                            x-struct: null
                            x-validate: null
                          type: array
                          x-struct: null
                          x-validate: null
                        - type: string
                          x-struct: null
                          x-validate: null
                      x-struct: null
                      x-validate: null
                    type: array
                    x-struct: null
                    x-validate: null
                  - type: string
                    x-struct: null
                    x-validate: null
                nullable: false
                x-struct: null
                x-validate: null
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
        - method_id
        - method_call
        - parameters
      title: DecodedInput
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.DecodedInput
      x-validate: null
    AddressHash:
      nullable: false
      pattern: ^0x([A-Fa-f0-9]{40})$
      title: AddressHash
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.AddressHash
      x-validate: null
    Implementation:
      additionalProperties: false
      description: Proxy smart contract implementation
      properties:
        address_hash:
          $ref: '#/components/schemas/AddressHash'
        name:
          nullable: true
          type: string
          x-struct: null
          x-validate: null
      required:
        - address_hash
        - name
      title: Implementation
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.Implementation
      x-validate: null
    Metadata:
      additionalProperties: false
      description: Metadata struct
      properties:
        tags:
          description: Metadata tags linked with the address
          items:
            $ref: '#/components/schemas/MetadataTag'
          type: array
          x-struct: null
          x-validate: null
      required:
        - tags
      title: Metadata
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.Proxy.Metadata
      x-validate: null
    Tag:
      additionalProperties: false
      description: Address tag struct
      properties:
        address_hash:
          $ref: '#/components/schemas/AddressHash'
        display_name:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        label:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
      required:
        - address_hash
        - display_name
        - label
      title: Tag
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.Tag
      x-validate: null
    ProxyType:
      enum:
        - eip1167
        - eip1967
        - eip1822
        - eip1967_oz
        - eip1967_beacon
        - master_copy
        - basic_implementation
        - basic_get_implementation
        - comptroller
        - eip2535
        - clone_with_immutable_arguments
        - eip7702
        - resolved_delegate_proxy
        - erc7760
      nullable: true
      title: ProxyType
      type: string
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.ProxyType
      x-validate: null
    WatchlistName:
      additionalProperties: false
      description: Watchlist name struct
      properties:
        display_name:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        label:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
      required:
        - display_name
        - label
      title: WatchlistName
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.General.WatchlistName
      x-validate: null
    MetadataTag:
      additionalProperties: false
      description: Metadata tag struct
      properties:
        meta:
          nullable: false
          type: object
          x-struct: null
          x-validate: null
        name:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        ordinal:
          nullable: false
          type: integer
          x-struct: null
          x-validate: null
        slug:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
        tagType:
          nullable: false
          type: string
          x-struct: null
          x-validate: null
      required:
        - slug
        - name
        - tagType
        - ordinal
        - meta
      title: MetadataTag
      type: object
      x-struct: Elixir.BlockScoutWeb.Schemas.API.V2.Proxy.MetadataTag
      x-validate: null

````