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

# Reverse resolve address to profile

> Resolve an Ethereum address to its full verified ENS profile.

Reverse-resolve an Ethereum address and return its full verified ENS profile in one call. Unlike the single-name reverse endpoint, this performs reverse resolution **with forward verification** and bundles the complete profile — text records, multichain addresses, contenthash, and convenience fields (`avatar`, `displayName`, `description`) — so you don't need a second forward lookup.

Returns `200` with `hasReverseRecord: false` and null profile fields when no verified reverse record exists. Upstream RPC/resolver errors are propagated unchanged.


## OpenAPI

````yaml openapi/resolvio.json GET /ens/v2/reverse/{address}/profile
openapi: 3.0.0
info:
  title: Resolvio API
  description: >-
    ENS Resolution Service - Resolve ENS names, addresses, profiles and bulk
    reverse resolve
  version: '1.0'
  contact:
    name: Development Team
    url: https://namespace.ninja
    email: arti@namespace.ninja
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.resolvio.xyz
    description: Production
security: []
tags:
  - name: Forward Resolution
    description: Resolve ENS names to addresses, text records, and content hashes
  - name: Reverse Resolution
    description: Resolve Ethereum addresses to ENS names
paths:
  /ens/v2/reverse/{address}/profile:
    get:
      tags:
        - Reverse Resolution
      summary: Reverse-resolve an address to its verified ENS profile
      description: >-
        Validates the address, performs reverse resolution with forward
        verification, then returns the full ENS profile plus convenience fields
        (avatar, displayName, description). Returns 200 with null profile fields
        when no verified reverse record exists. Upstream RPC/resolver errors are
        propagated unchanged.
      operationId: EnsReverseController_getReverseProfile
      parameters:
        - name: address
          required: true
          in: path
          description: Ethereum address
          schema:
            example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
            type: string
        - name: noCache
          required: false
          in: query
          description: Skip cache for both reverse and forward lookups
          schema:
            default: false
            type: boolean
        - name: contenthash
          required: false
          in: query
          description: 'Include contenthash in the profile (default: true)'
          schema:
            type: boolean
        - name: addresses
          required: false
          in: query
          description: >-
            Comma-separated chain names or coin type numbers; defaults to the
            standard profile set
          schema:
            example: eth,base,btc
        - name: texts
          required: false
          in: query
          description: >-
            Comma-separated profile text keys; defaults to the standard profile
            set
          schema:
            example: avatar,com.twitter
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReverseProfileResponse'
        '400':
          description: Invalid Ethereum address
components:
  schemas:
    ReverseProfileResponse:
      type: object
      properties:
        address:
          type: string
          description: Requested Ethereum address
          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
        hasReverseRecord:
          type: boolean
          description: Whether a verified reverse record exists for this address
          example: true
        name:
          type: string
          description: >-
            Primary ENS name from the verified reverse record (null when none
            exists)
          example: artii.eth
          nullable: true
        avatar:
          type: string
          description: Value of the avatar text record, if present in the resolved profile
          example: https://example.com/avatar.jpg
          nullable: true
        displayName:
          type: string
          description: Value of the name text record, if present in the resolved profile
          example: Arti
          nullable: true
        description:
          type: string
          description: >-
            Value of the description text record, if present in the resolved
            profile
          example: ENS enjoyer
          nullable: true
        profile:
          description: >-
            Full ENS profile (texts, addresses, contenthash, optional resolver).
            Null when there is no verified reverse record.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ProfileResponse'
      required:
        - address
        - hasReverseRecord
        - name
        - avatar
        - displayName
        - description
        - profile
    ProfileResponse:
      type: object
      properties:
        name:
          type: string
          example: artii.eth
        texts:
          type: array
          items:
            $ref: '#/components/schemas/TextResult'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressResult'
        contenthash:
          $ref: '#/components/schemas/ContenthashResult'
        resolver:
          type: string
          example: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63'
      required:
        - name
        - texts
        - addresses
        - contenthash
    TextResult:
      type: object
      properties:
        key:
          type: string
          example: avatar
        value:
          type: string
          example: https://example.com/avatar.jpg
        exists:
          type: boolean
          example: true
      required:
        - key
        - exists
    AddressResult:
      type: object
      properties:
        coin:
          type: number
          example: 60
          description: Coin type identifier
        chain:
          type: string
          example: eth
          description: Chain name
        value:
          type: string
          example: '0x179A862703a4adfb29896552DF9e307980D19285'
        exists:
          type: boolean
          example: true
      required:
        - coin
        - exists
    ContenthashResult:
      type: object
      properties:
        value:
          type: string
          example: ipfs://bafybeifx7yeb55armcsxwwitkymga5xf53dxiarykms3ygqic223w5sk3m
        exists:
          type: boolean
          example: true
      required:
        - exists

````