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

# Smart Money Holders

> Per-wallet smart-money holders of one position — one side of one market — within an event. Ask for the other side with the sibling position id.



## OpenAPI

````yaml /openapi.json post /api/v1/smart-money/holders
openapi: 3.0.3
info:
  title: DataDash Analytics API
  version: 1.0.0
servers:
  - url: https://api.datadash.xyz
security:
  - ApiKeyAuth: []
  - BearerAuth: []
paths:
  /api/v1/smart-money/holders:
    post:
      tags:
        - Smart Money
      summary: Smart Money Holders
      description: >-
        Per-wallet smart-money holders of one position — one side of one market
        — within an event. Ask for the other side with the sibling position id.
      operationId: listSmartMoneyHolders
      requestBody:
        content:
          application/json:
            example:
              eventId: '27185'
              orderBy:
                - direction: desc
                  field: atRisk
              page:
                limit: 50
                offset: 0
              positionId: '1038287'
              walletFilters:
                - field: userId
                  operator: inCohort
                  value: 0GYJ8T5V2Q1XW
            schema:
              properties:
                eventId:
                  description: >-
                    Query argument $1, bound as a query parameter and cast
                    inside the query.
                  type: string
                filter:
                  $ref: '#/components/schemas/UnifiedSmartMoneyHoldersFilter'
                orderBy:
                  description: >-
                    Sort keys in priority order; the first is the primary sort.
                    Defaults to the table's configured ranking when omitted.
                  items:
                    properties:
                      direction:
                        default: asc
                        enum:
                          - asc
                          - desc
                        type: string
                      field:
                        enum:
                          - userId
                          - netShares
                          - currentValue
                          - entryPrice
                          - unrealizedPnl
                          - unrealizedPnlPercentage
                          - atRisk
                        type: string
                    required:
                      - field
                    type: object
                  type: array
                page:
                  $ref: '#/components/schemas/PageInput'
                positionId:
                  description: >-
                    Query argument $2, bound as a query parameter and cast
                    inside the query.
                  type: string
                walletFilters:
                  $ref: >-
                    #/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletFilter
              required:
                - page
                - eventId
                - positionId
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/UnifiedSmartMoneyHoldersRow'
                type: array
          description: List of Smart Money Holders rows
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            invalid request (malformed body, unknown field, or failed
            validation)
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: internal error
      security: []
components:
  schemas:
    UnifiedSmartMoneyHoldersFilter:
      description: Filters to apply, combined with AND. Use a group for OR.
      items:
        $ref: '#/components/schemas/UnifiedSmartMoneyHoldersFilterNode'
      minItems: 1
      type: array
    PageInput:
      properties:
        limit:
          minimum: 1
          type: integer
        offset:
          minimum: 0
          type: integer
      required:
        - limit
      type: object
    UnifiedSmartMoneyHoldersSubQueryWalletFilter:
      description: Filters to apply, combined with AND. Use a group for OR.
      items:
        $ref: '#/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletFilterNode'
      minItems: 1
      type: array
    UnifiedSmartMoneyHoldersRow:
      properties:
        atRisk:
          description: >-
            Dollars the wallet truly has at risk on this position — entry-cost
            buy dollars after canonicalization on a neg-risk event, or the raw
            leg's buy cost on a binary one (never current value). Recovered from
            the emitted columns as current value minus open PnL, which is
            exactly the cost the query divided by.
          format: double
          title: At Risk
          type: number
        currentValue:
          description: >-
            Current USD value of the wallet's position (its shares at the side's
            live price) — for a No position on a neg-risk event, the field legs
            valued at their own markets' live prices
          format: double
          title: Current Value
          type: number
        entryPrice:
          description: >-
            Average entry price of the position — at-risk buy cost divided by
            the share count, with cost attributed through the neg-risk
            conversion by current price on a neg-risk event, or the leg's own
            average buying price on a binary one. NULL when the position holds
            no shares.
          format: double
          title: Entry Price
          type: number
        netShares:
          description: >-
            The wallet's share count on the requested position. Neg-risk event —
            after per-wallet canonicalization (e' = e − min(e)); a Yes position
            gives canonical Yes shares on that market, a No position the
            wallet's field shares in synthetic NO-equivalent units. Binary event
            — the raw leg's shares. Recovered from the emitted columns as
            at-risk cost over entry price (NULL in the cost > 0, shares = 0
            corner, where the entry price is itself NULL).
          format: double
          title: Net Shares
          type: number
        unrealizedPnl:
          description: >-
            Unrealized profit/loss on the position — current value minus at-risk
            buy cost, on both market types (on a binary event this is just the
            leg's own unrealized PnL)
          format: double
          title: Open PnL
          type: number
        unrealizedPnlPercentage:
          description: >-
            Unrealized profit/loss as a percentage of the position's at-risk buy
            cost
          format: double
          title: Open PnL Percentage
          type: number
        user:
          $ref: '#/components/schemas/UserLookup'
      type: object
    Error:
      properties:
        code:
          description: machine-readable error code
          type: string
        message:
          description: human-readable description
          type: string
      required:
        - code
        - message
      type: object
    UnifiedSmartMoneyHoldersFilterNode:
      description: A single condition, or a group combining conditions with AND/OR.
      oneOf:
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersCondition'
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersFilterGroup'
      title: Filter
    UnifiedSmartMoneyHoldersSubQueryWalletFilterNode:
      description: A single condition, or a group combining conditions with AND/OR.
      oneOf:
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletCondition'
        - $ref: >-
            #/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletFilterGroup
      title: Filter
    UserLookup:
      description: Resolved User row.
      properties:
        bio:
          description: User biography
          title: Bio
          type: string
        createdAt:
          description: Timestamp when the user was created.
          format: date-time
          title: Created At
          type: string
        displayName:
          description: User display name
          title: Display Name
          type: string
        pnl:
          description: User's profit and loss.
          format: double
          title: Pnl
          type: number
        profileImageUrl:
          description: User profile image URL
          title: Profile Image
          type: string
        pseudonym:
          description: User pseudonym
          title: Pseudonym
          type: string
        rank:
          description: User's profit and loss.
          format: int32
          title: Rank
          type: integer
        userId:
          description: User wallet address
          title: User ID
          type: string
        verifiedBadge:
          description: Whether the user has a verified badge
          title: Verified
          type: boolean
        xUsername:
          description: User's X (Twitter) username
          title: X Username
          type: string
      title: User
      type: object
    UnifiedSmartMoneyHoldersCondition:
      description: >-
        A single field condition. in/notIn take an array of values;
        matches/notMatches take one search term.
      oneOf:
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersNumericCondition'
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersAddressCondition'
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersBooleanCondition'
        - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersUserIdLookupCondition'
      title: Condition
    UnifiedSmartMoneyHoldersFilterGroup:
      description: >-
        A group of conditions and nested groups, combined with the group's
        operator.
      properties:
        filters:
          items:
            oneOf:
              - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersCondition'
              - $ref: '#/components/schemas/UnifiedSmartMoneyHoldersFilterInnerGroup'
          minItems: 1
          type: array
        operator:
          enum:
            - AND
            - OR
          type: string
      required:
        - operator
        - filters
      title: Group
      type: object
    UnifiedSmartMoneyHoldersSubQueryWalletCondition:
      description: >-
        A single field condition. in/notIn take an array of values;
        matches/notMatches take one search term.
      oneOf:
        - $ref: >-
            #/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletAddressCondition
        - $ref: >-
            #/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletUserIdLookupCondition
      title: Condition
    UnifiedSmartMoneyHoldersSubQueryWalletFilterGroup:
      description: A group of conditions, combined with the group's operator.
      properties:
        filters:
          items:
            $ref: >-
              #/components/schemas/UnifiedSmartMoneyHoldersSubQueryWalletCondition
          minItems: 1
          type: array
        operator:
          enum:
            - AND
            - OR
          type: string
      required:
        - operator
        - filters
      title: Group
      type: object
    UnifiedSmartMoneyHoldersNumericCondition:
      properties:
        field:
          enum:
            - netShares
            - currentValue
            - entryPrice
            - unrealizedPnl
            - unrealizedPnlPercentage
            - atRisk
          type: string
        operator:
          enum:
            - eq
            - neq
            - lt
            - lte
            - gt
            - gte
          type: string
        value:
          oneOf:
            - format: double
              title: Single value
              type: number
            - items:
                format: double
                type: number
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Numeric
      type: object
    UnifiedSmartMoneyHoldersAddressCondition:
      description: inCohort/notInCohort take cohort ids instead of addresses.
      properties:
        field:
          enum:
            - userId
          type: string
        operator:
          enum:
            - in
            - notIn
            - matches
            - notMatches
            - inCohort
            - notInCohort
          type: string
        value:
          oneOf:
            - title: Single value
              type: string
            - items:
                type: string
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Wallet address
      type: object
    UnifiedSmartMoneyHoldersBooleanCondition:
      properties:
        field:
          enum:
            - inSignals
          type: string
        operator:
          enum:
            - eq
          type: string
        value:
          type: boolean
      required:
        - field
        - operator
        - value
      title: Boolean
      type: object
    UnifiedSmartMoneyHoldersUserIdLookupCondition:
      description: >-
        Match this field against the keys a filter over one of its lookup tables
        yields. The operator names which lookup table to filter through.
      oneOf:
        - properties:
            field:
              enum:
                - userId
              type: string
            operator:
              enum:
                - userProfileLookup
              type: string
            value:
              description: Conditions to run against User Profile Lookup.
              properties:
                duration:
                  description: Time window for aggregation
                  properties:
                    operator:
                      enum:
                        - in
                        - notIn
                        - matches
                        - notMatches
                      type: string
                    value:
                      oneOf:
                        - enum:
                            - 1D
                            - 1W
                            - 1M
                            - 1Y
                            - ALL
                          title: Single value
                          type: string
                        - items:
                            enum:
                              - 1D
                              - 1W
                              - 1M
                              - 1Y
                              - ALL
                            type: string
                          minItems: 1
                          title: List of values
                          type: array
                  required:
                    - operator
                    - value
                  type: object
                filter:
                  $ref: '#/components/schemas/UserProfileLookupInnerFilter'
              required:
                - duration
              type: object
          required:
            - field
            - operator
            - value
          title: User Profile Lookup
          type: object
        - properties:
            field:
              enum:
                - userId
              type: string
            operator:
              enum:
                - userTagProfileLookup
              type: string
            value:
              description: Conditions to run against User Tag Profile Lookup.
              properties:
                duration:
                  description: Time window for aggregation
                  properties:
                    operator:
                      enum:
                        - in
                        - notIn
                        - matches
                        - notMatches
                      type: string
                    value:
                      oneOf:
                        - enum:
                            - 1D
                            - 1W
                            - 1M
                            - 1Y
                            - ALL
                          title: Single value
                          type: string
                        - items:
                            enum:
                              - 1D
                              - 1W
                              - 1M
                              - 1Y
                              - ALL
                            type: string
                          minItems: 1
                          title: List of values
                          type: array
                  required:
                    - operator
                    - value
                  type: object
                filter:
                  $ref: '#/components/schemas/UserTagProfileLookupInnerFilter'
                tagId:
                  description: Tag identifier
                  properties:
                    operator:
                      enum:
                        - in
                        - notIn
                      type: string
                    value:
                      oneOf:
                        - format: int32
                          title: Single value
                          type: integer
                        - items:
                            format: int32
                            type: integer
                          minItems: 1
                          title: List of values
                          type: array
                  required:
                    - operator
                    - value
                  type: object
              required:
                - tagId
                - duration
              type: object
          required:
            - field
            - operator
            - value
          title: User Tag Profile Lookup
          type: object
      title: Wallet lookup filter
    UnifiedSmartMoneyHoldersFilterInnerGroup:
      description: >-
        A nested group. Its members must be conditions, which bounds grouping at
        two levels.
      properties:
        filters:
          items:
            $ref: '#/components/schemas/UnifiedSmartMoneyHoldersCondition'
          minItems: 1
          type: array
        operator:
          enum:
            - AND
            - OR
          type: string
      required:
        - operator
        - filters
      title: Nested group
      type: object
    UnifiedSmartMoneyHoldersSubQueryWalletAddressCondition:
      description: inCohort/notInCohort take cohort ids instead of addresses.
      properties:
        field:
          enum:
            - userId
          type: string
        operator:
          enum:
            - in
            - notIn
            - matches
            - notMatches
            - inCohort
            - notInCohort
          type: string
        value:
          oneOf:
            - title: Single value
              type: string
            - items:
                type: string
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Wallet address
      type: object
    UnifiedSmartMoneyHoldersSubQueryWalletUserIdLookupCondition:
      description: >-
        Match this field against the keys a filter over one of its lookup tables
        yields. The operator names which lookup table to filter through.
      oneOf:
        - properties:
            field:
              enum:
                - userId
              type: string
            operator:
              enum:
                - userProfileLookup
              type: string
            value:
              description: Conditions to run against User Profile Lookup.
              properties:
                duration:
                  description: Time window for aggregation
                  properties:
                    operator:
                      enum:
                        - in
                        - notIn
                        - matches
                        - notMatches
                      type: string
                    value:
                      oneOf:
                        - enum:
                            - 1D
                            - 1W
                            - 1M
                            - 1Y
                            - ALL
                          title: Single value
                          type: string
                        - items:
                            enum:
                              - 1D
                              - 1W
                              - 1M
                              - 1Y
                              - ALL
                            type: string
                          minItems: 1
                          title: List of values
                          type: array
                  required:
                    - operator
                    - value
                  type: object
                filter:
                  $ref: '#/components/schemas/UserProfileLookupInnerFilter'
              required:
                - duration
              type: object
          required:
            - field
            - operator
            - value
          title: User Profile Lookup
          type: object
        - properties:
            field:
              enum:
                - userId
              type: string
            operator:
              enum:
                - userTagProfileLookup
              type: string
            value:
              description: Conditions to run against User Tag Profile Lookup.
              properties:
                duration:
                  description: Time window for aggregation
                  properties:
                    operator:
                      enum:
                        - in
                        - notIn
                        - matches
                        - notMatches
                      type: string
                    value:
                      oneOf:
                        - enum:
                            - 1D
                            - 1W
                            - 1M
                            - 1Y
                            - ALL
                          title: Single value
                          type: string
                        - items:
                            enum:
                              - 1D
                              - 1W
                              - 1M
                              - 1Y
                              - ALL
                            type: string
                          minItems: 1
                          title: List of values
                          type: array
                  required:
                    - operator
                    - value
                  type: object
                filter:
                  $ref: '#/components/schemas/UserTagProfileLookupInnerFilter'
                tagId:
                  description: Tag identifier
                  properties:
                    operator:
                      enum:
                        - in
                        - notIn
                      type: string
                    value:
                      oneOf:
                        - format: int32
                          title: Single value
                          type: integer
                        - items:
                            format: int32
                            type: integer
                          minItems: 1
                          title: List of values
                          type: array
                  required:
                    - operator
                    - value
                  type: object
              required:
                - tagId
                - duration
              type: object
          required:
            - field
            - operator
            - value
          title: User Tag Profile Lookup
          type: object
      title: Wallet lookup filter
    UserProfileLookupInnerFilter:
      description: Filters to apply, combined with AND. Use a group for OR.
      items:
        $ref: '#/components/schemas/UserProfileLookupInnerFilterNode'
      minItems: 1
      type: array
    UserTagProfileLookupInnerFilter:
      description: Filters to apply, combined with AND. Use a group for OR.
      items:
        $ref: '#/components/schemas/UserTagProfileLookupInnerFilterNode'
      minItems: 1
      type: array
    UserProfileLookupInnerFilterNode:
      description: A single condition, or a group combining conditions with AND/OR.
      oneOf:
        - $ref: '#/components/schemas/UserProfileLookupInnerCondition'
        - $ref: '#/components/schemas/UserProfileLookupInnerFilterGroup'
      title: Filter
    UserTagProfileLookupInnerFilterNode:
      description: A single condition, or a group combining conditions with AND/OR.
      oneOf:
        - $ref: '#/components/schemas/UserTagProfileLookupInnerCondition'
        - $ref: '#/components/schemas/UserTagProfileLookupInnerFilterGroup'
      title: Filter
    UserProfileLookupInnerCondition:
      description: >-
        A single field condition. in/notIn take an array of values;
        matches/notMatches take one search term.
      oneOf:
        - $ref: '#/components/schemas/UserProfileLookupInnerNumericCondition'
        - $ref: '#/components/schemas/UserProfileLookupInnerAddressCondition'
      title: Condition
    UserProfileLookupInnerFilterGroup:
      description: A group of conditions, combined with the group's operator.
      properties:
        filters:
          items:
            $ref: '#/components/schemas/UserProfileLookupInnerCondition'
          minItems: 1
          type: array
        operator:
          enum:
            - AND
            - OR
          type: string
      required:
        - operator
        - filters
      title: Group
      type: object
    UserTagProfileLookupInnerCondition:
      description: >-
        A single field condition. in/notIn take an array of values;
        matches/notMatches take one search term.
      oneOf:
        - $ref: '#/components/schemas/UserTagProfileLookupInnerNumericCondition'
        - $ref: '#/components/schemas/UserTagProfileLookupInnerAddressCondition'
      title: Condition
    UserTagProfileLookupInnerFilterGroup:
      description: A group of conditions, combined with the group's operator.
      properties:
        filters:
          items:
            $ref: '#/components/schemas/UserTagProfileLookupInnerCondition'
          minItems: 1
          type: array
        operator:
          enum:
            - AND
            - OR
          type: string
      required:
        - operator
        - filters
      title: Group
      type: object
    UserProfileLookupInnerNumericCondition:
      properties:
        field:
          enum:
            - rank
            - roi
            - realizedPnl
          type: string
        operator:
          enum:
            - eq
            - neq
            - lt
            - lte
            - gt
            - gte
          type: string
        value:
          oneOf:
            - format: double
              title: Single value
              type: number
            - items:
                format: double
                type: number
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Numeric
      type: object
    UserProfileLookupInnerAddressCondition:
      description: inCohort/notInCohort take cohort ids instead of addresses.
      properties:
        field:
          enum:
            - userId
          type: string
        operator:
          enum:
            - in
            - notIn
            - matches
            - notMatches
            - inCohort
            - notInCohort
          type: string
        value:
          oneOf:
            - title: Single value
              type: string
            - items:
                type: string
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Wallet address
      type: object
    UserTagProfileLookupInnerNumericCondition:
      properties:
        field:
          enum:
            - rank
            - roi
            - realizedPnl
          type: string
        operator:
          enum:
            - eq
            - neq
            - lt
            - lte
            - gt
            - gte
          type: string
        value:
          oneOf:
            - format: double
              title: Single value
              type: number
            - items:
                format: double
                type: number
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Numeric
      type: object
    UserTagProfileLookupInnerAddressCondition:
      description: inCohort/notInCohort take cohort ids instead of addresses.
      properties:
        field:
          enum:
            - userId
          type: string
        operator:
          enum:
            - in
            - notIn
            - matches
            - notMatches
            - inCohort
            - notInCohort
          type: string
        value:
          oneOf:
            - title: Single value
              type: string
            - items:
                type: string
              minItems: 1
              title: List of values
              type: array
      required:
        - field
        - operator
        - value
      title: Wallet address
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: API key issued for programmatic access.
      in: header
      name: X-Api-Key
      type: apiKey
    BearerAuth:
      bearerFormat: JWT
      description: User access token.
      scheme: bearer
      type: http

````