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

# By Eth or Sol addresses

> Fetches all users based on multiple Ethereum or Solana addresses.

Each farcaster user has a custody Ethereum address and optionally verified Ethereum or Solana addresses. This endpoint returns all users that have any of the given addresses as their custody or verified Ethereum or Solana addresses.

A custody address can be associated with only 1 farcaster user at a time but a verified address can be associated with multiple users.
You can pass in Ethereum and Solana addresses, comma separated, in the same request. The response will contain users associated with the given addresses.

<Info>
  ### See related guide: [User by wallet address](/docs/fetching-farcaster-user-based-on-ethereum-address)
</Info>

## Node.js SDK

🔗 **SDK Method:** [fetchBulkUsersByEthOrSolAddress](/nodejs-sdk/user-apis/fetchBulkUsersByEthOrSolAddress)

Use this API endpoint with the Neynar Node.js SDK for typed responses and better developer experience.


## OpenAPI

````yaml get /v2/farcaster/user/bulk-by-address/
openapi: 3.0.4
info:
  contact:
    email: team@neynar.com
    name: Neynar
    url: https://neynar.com/
  description: >-
    The Neynar API allows you to interact with the Farcaster protocol among
    other things. See the [Neynar docs](https://docs.neynar.com/reference) for
    more details.
  title: Neynar API
  version: 3.173.0
servers:
  - url: https://api.neynar.com
security:
  - ApiKeyAuth: []
tags:
  - description: Operations related to user
    externalDocs:
      description: More info about user
      url: https://docs.neynar.com/reference/user-operations
    name: User
  - description: Operations related to signer
    externalDocs:
      description: More info about signer
      url: https://docs.neynar.com/reference/signer-operations
    name: Signer
  - description: Operations related to cast
    externalDocs:
      description: More info about cast
      url: https://docs.neynar.com/reference/cast-operations
    name: Cast
  - description: Operations related to feed
    externalDocs:
      description: More info about feed
      url: https://docs.neynar.com/reference/feed-operations
    name: Feed
  - description: Operations related to reaction
    externalDocs:
      description: More info about reaction
      url: https://docs.neynar.com/reference/reaction-operations
    name: Reaction
  - description: Operations related to notifications
    externalDocs:
      description: More info about notifications
      url: https://docs.neynar.com/reference/notifications-operations
    name: Notifications
  - description: Operations related to channels
    externalDocs:
      description: More info about channels
      url: https://docs.neynar.com/reference/channel-operations
    name: Channel
  - description: Operations related to follows
    externalDocs:
      description: More info about follows
      url: https://docs.neynar.com/reference/follows-operations
    name: Follows
  - description: Operations related to storage
    externalDocs:
      description: More info about storage
      url: https://docs.neynar.com/reference/storage-operations
    name: Storage
  - description: Operations related to mini apps
    name: Frame
  - description: Operations for building AI agents
    name: Agents
  - description: Operations related to fname
    name: fname
  - description: Operations related to a webhook
    name: Webhook
  - description: >-
      Securely communicate and perform actions on behalf of users across
      different apps
    externalDocs:
      description: More info about farcaster actions
      url: https://docs.neynar.com/docs/farcaster-actions-spec
    name: Action
  - description: Operations related to a subscriptions
    name: Subscribers
  - description: Operations related to a mute
    name: Mute
  - description: Operations related to a block
    name: Block
  - description: Operations related to a ban
    name: Ban
  - description: Operations related to onchain data
    name: Onchain
  - description: Operations related to login
    name: Login
  - description: Operations related to retrieving metrics
    name: Metrics
  - description: Operations related to mini app host notifications
    externalDocs:
      description: More info about mini app host notifications
      url: https://docs.neynar.com/docs/app-host-notifications
    name: App Host
paths:
  /v2/farcaster/user/bulk-by-address/:
    get:
      tags:
        - User
      summary: By Eth or Sol addresses
      description: >-
        Fetches all users based on multiple Ethereum or Solana addresses.


        Each farcaster user has a custody Ethereum address and optionally
        verified Ethereum or Solana addresses. This endpoint returns all users
        that have any of the given addresses as their custody or verified
        Ethereum or Solana addresses.


        A custody address can be associated with only 1 farcaster user at a time
        but a verified address can be associated with multiple users.

        You can pass in Ethereum and Solana addresses, comma separated, in the
        same request. The response will contain users associated with the given
        addresses.
      operationId: fetch-bulk-users-by-eth-or-sol-address
      parameters:
        - $ref: '#/components/parameters/NeynarExperimentalHeader'
        - description: >-
            Comma separated list of Ethereum or Solana addresses, up to 350 at a
            time
          in: query
          name: addresses
          required: true
          schema:
            example: >-
              0xa6a8736f18f383f1cc2d938576933e5ea7df01a1,0x7cac817861e5c3384753403fb6c0c556c204b1ce
            type: string
            x-comma-separated: true
        - description: >-
            Customize which address types the request should search for. This is
            a comma-separated string that can include the following values:
            'custody_address' and 'verified_address'. By default api returns
            both. To select multiple types, use a comma-separated list of these
            values.
          in: query
          name: address_types
          schema:
            items:
              enum:
                - custody_address
                - verified_address
              title: BulkUserAddressType
              type: string
            type: array
        - in: query
          name: viewer_fid
          schema:
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUsersByAddressResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorRes'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorRes'
          description: Resource not found
      externalDocs:
        url: >-
          https://docs.neynar.com/reference/fetch-bulk-users-by-eth-or-sol-address
components:
  parameters:
    NeynarExperimentalHeader:
      description: >-
        Enables experimental features including filtering based on the Neynar
        score. See
        [docs](https://neynar.notion.site/Experimental-Features-1d2655195a8b80eb98b4d4ae7b76ae4a)
        for more details.
      in: header
      name: x-neynar-experimental
      schema:
        default: false
        type: boolean
      x-is-global-header: true
  schemas:
    BulkUsersByAddressResponse:
      anyOf:
        - additionalProperties:
            items:
              $ref: '#/components/schemas/User'
            type: array
      title: BulkUsersByAddressResponse
      type: object
    ErrorRes:
      description: Details for the error response
      properties:
        code:
          type: string
        message:
          type: string
        property:
          type: string
        status:
          format: int32
          type: integer
      required:
        - message
      title: ErrorRes
      type: object
    User:
      properties:
        auth_addresses:
          items:
            properties:
              address:
                $ref: '#/components/schemas/EthAddress'
              app:
                $ref: '#/components/schemas/UserDehydrated'
            required:
              - address
              - app
            type: object
          type: array
        custody_address:
          $ref: '#/components/schemas/EthAddress'
        display_name:
          nullable: true
          type: string
        experimental:
          properties:
            deprecation_notice:
              type: string
            neynar_user_score:
              description: >-
                Score that represents the probability that the account is not
                spam.
              format: double
              type: number
          required:
            - neynar_user_score
          type: object
        fid:
          $ref: '#/components/schemas/Fid'
        follower_count:
          description: The number of followers the user has.
          format: int32
          type: integer
        following_count:
          description: The number of users the user is following.
          format: int32
          type: integer
        object:
          enum:
            - user
          type: string
        pfp_url:
          description: The URL of the user's profile picture
          nullable: true
          type: string
        pro:
          properties:
            expires_at:
              format: date-time
              type: string
            status:
              description: The subscription status of the user
              enum:
                - subscribed
                - unsubscribed
              type: string
            subscribed_at:
              format: date-time
              type: string
          required:
            - status
            - subscribed_at
            - expires_at
          type: object
        profile:
          properties:
            banner:
              properties:
                url:
                  description: The URL of the user's banner image
                  format: uri
                  type: string
              type: object
            bio:
              properties:
                mentioned_channels:
                  items:
                    $ref: '#/components/schemas/ChannelDehydrated'
                  type: array
                mentioned_channels_ranges:
                  description: >-
                    Positions within the text (inclusive start, exclusive end)
                    where each mention occurs.

                    Each index within this list corresponds to the same-numbered
                    index in the mentioned_channels list.
                  items:
                    $ref: '#/components/schemas/TextRange'
                  type: array
                mentioned_profiles:
                  items:
                    $ref: '#/components/schemas/UserDehydrated'
                  type: array
                mentioned_profiles_ranges:
                  description: >-
                    Positions within the text (inclusive start, exclusive end)
                    where each mention occurs.

                    Each index within this list corresponds to the same-numbered
                    index in the mentioned_profiles list.
                  items:
                    $ref: '#/components/schemas/TextRange'
                  type: array
                text:
                  type: string
              required:
                - text
              type: object
            location:
              $ref: '#/components/schemas/Location'
          required:
            - bio
          type: object
        registered_at:
          format: date-time
          type: string
        score:
          description: Score that represents the probability that the account is not spam.
          format: double
          type: number
        username:
          type: string
        verifications:
          items:
            $ref: '#/components/schemas/EthAddress'
          type: array
        verified_accounts:
          items:
            description: >-
              Verified accounts of the user on other platforms, currently only X
              is supported.
            properties:
              platform:
                enum:
                  - x
                  - github
                type: string
              username:
                type: string
            type: object
          type: array
        verified_addresses:
          properties:
            eth_addresses:
              description: >-
                List of verified Ethereum addresses of the user sorted by oldest
                to most recent.
              items:
                $ref: '#/components/schemas/EthAddress'
              type: array
            primary:
              properties:
                eth_address:
                  allOf:
                    - $ref: '#/components/schemas/EthAddress'
                  nullable: true
                sol_address:
                  allOf:
                    - $ref: '#/components/schemas/SolAddress'
                  nullable: true
              required:
                - eth_address
                - sol_address
              type: object
            sol_addresses:
              description: >-
                List of verified Solana addresses of the user sorted by oldest
                to most recent.
              items:
                $ref: '#/components/schemas/SolAddress'
              type: array
          required:
            - eth_addresses
            - sol_addresses
            - primary
          type: object
        viewer_context:
          $ref: '#/components/schemas/UserViewerContext'
      required:
        - object
        - fid
        - username
        - custody_address
        - registered_at
        - profile
        - follower_count
        - following_count
        - verifications
        - auth_addresses
        - verified_addresses
        - verified_accounts
      title: User
      type: object
    EthAddress:
      description: Ethereum address
      example: '0x5a927ac639636e534b678e81768ca19e2c6280b7'
      pattern: ^0x[a-fA-F0-9]{40}$
      title: EthAddress
      type: string
    UserDehydrated:
      properties:
        custody_address:
          $ref: '#/components/schemas/EthAddress'
        display_name:
          nullable: true
          type: string
        fid:
          $ref: '#/components/schemas/Fid'
        object:
          enum:
            - user_dehydrated
          type: string
        pfp_url:
          nullable: true
          type: string
        score:
          type: number
        username:
          type: string
      required:
        - object
        - fid
      title: UserDehydrated
      type: object
    Fid:
      description: The unique identifier of a farcaster user or app (unsigned integer)
      example: 3
      format: int32
      minimum: 0
      title: Fid
      type: integer
    ChannelDehydrated:
      properties:
        id:
          type: string
        image_url:
          type: string
        name:
          type: string
        object:
          enum:
            - channel_dehydrated
          type: string
        viewer_context:
          $ref: '#/components/schemas/ChannelUserContext'
      required:
        - id
        - name
        - object
      title: ChannelDehydrated
      type: object
    TextRange:
      properties:
        end:
          minimum: 0
          type: number
        start:
          minimum: 0
          type: number
      required:
        - start
        - end
      title: TextRange
      type: object
    Location:
      description: Coordinates and place names for a location
      properties:
        address:
          $ref: '#/components/schemas/LocationAddress'
        latitude:
          format: double
          maximum: 90
          minimum: -90
          type: number
        longitude:
          format: double
          maximum: 180
          minimum: -180
          type: number
        radius:
          description: >-
            The radius in meters for the location search. Any location within
            this radius will be returned.
          minimum: 0
          type: number
      required:
        - latitude
        - longitude
      title: Location
      type: object
    SolAddress:
      description: Solana address
      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
      title: SolAddress
      type: string
    UserViewerContext:
      description: Adds context on the viewer's follow relationship with the user.
      properties:
        blocked_by:
          description: Indicates if the viewer is blocked by the user.
          type: boolean
        blocking:
          description: Indicates if the viewer is blocking the user.
          type: boolean
        followed_by:
          description: Indicates if the viewer is followed by the user.
          type: boolean
        following:
          description: Indicates if the viewer is following the user.
          type: boolean
      required:
        - following
        - followed_by
        - blocking
        - blocked_by
      title: UserViewerContext
      type: object
    ChannelUserContext:
      description: Adds context on the viewer's or author's role in the channel.
      properties:
        following:
          description: Indicates if the user is following the channel.
          type: boolean
        role:
          $ref: '#/components/schemas/ChannelMemberRole'
      required:
        - following
      title: ChannelUserContext
      type: object
    LocationAddress:
      properties:
        city:
          type: string
        country:
          type: string
        country_code:
          type: string
        state:
          type: string
        state_code:
          type: string
      required:
        - city
        - country
      title: LocationAddress
      type: object
    ChannelMemberRole:
      description: The role of a channel member
      enum:
        - member
        - moderator
        - owner
      title: ChannelMemberRole
      type: string
  securitySchemes:
    ApiKeyAuth:
      description: API key to authorize requests
      in: header
      name: x-api-key
      type: apiKey
      x-default: NEYNAR_API_DOCS

````