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

# Wallet Combo Redemptions

> List full combo redemptions and partial combo reductions for one wallet with exact leg changes.

Returns the canonical combo redemption and reduction history for one wallet. This is the wallet-scoped form of [`GET /v3/combos/redemptions`](/data/combos/redemptions).

## Request

```
GET /v3/wallets/{address}/combos/redemptions
```

### Query parameters

| Parameter          | Type    | Default | Description                                                                    |
| ------------------ | ------- | ------- | ------------------------------------------------------------------------------ |
| `market_id`        | string  | --      | One or more comma-separated combo condition IDs; matches any lineage condition |
| `condition_id`     | string  | --      | Combo condition ID; matches any lineage condition                              |
| `position_id`      | string  | --      | Primary, source, destination, or underlying position ID                        |
| `event_kind`       | string  | --      | Filter by canonical event kind                                                 |
| `redemption_scope` | string  | `all`   | `full`, `partial`, `transformation`, or `all`                                  |
| `redemption_type`  | string  | `all`   | `FULL_COMBO`, `PARTIAL_COMBO`, `COMBO_TRANSFORMATION`, or `all`                |
| `tx_hash`          | string  | --      | Exact Polygon transaction hash                                                 |
| `after`            | integer | --      | Inclusive Unix timestamp in seconds                                            |
| `before`           | integer | --      | Inclusive Unix timestamp in seconds                                            |
| `limit`            | integer | 100     | Results per page, max 300                                                      |
| `offset`           | integer | 0       | Pagination offset                                                              |

## Example

```bash theme={null}
curl "https://api.polynode.dev/v3/wallets/0xc82f0a25aad828f59347670e63ead5ea144466a7/combos/redemptions?redemption_scope=partial&limit=25" \
  -H "x-api-key: $POLYNODE_API_KEY"
```

```json theme={null}
{
  "address": "0xc82f0a25aad828f59347670e63ead5ea144466a7",
  "redemptions": [
    {
      "event_kind": "Compressed",
      "redemption_scope": "partial",
      "redemption_type": "PARTIAL_COMBO",
      "redemption_evidence": "post_resolution_compression",
      "is_full_combo_redemption": false,
      "is_partial_combo_redemption": true,
      "is_terminal_redemption": false,
      "is_partial_combo_reduction": true,
      "has_collateral_payout": false,
      "full_combo_condition_id": "0x0387525b6b182939b62c8ffd3f64c703aa0000000000000000000000000000",
      "reduced_combo_condition_id": "0x03f20b4d62f602343ec586eb21b1fd88320000000000000000000000000000",
      "amount_usdc": "392.295381",
      "source_leg_count": 5,
      "removed_leg_count": 4,
      "remaining_leg_count": 1,
      "leg_transition": "5_to_1",
      "remaining_combo": {
        "combo_condition_id": "0x03f20b4d62f602343ec586eb21b1fd88320000000000000000000000000000",
        "combo_position_id": "1784593540973682895298448580384733359095951577285561914582372891673092947969",
        "shares_created": "392.295381",
        "current_wallet_balance": "873.364653",
        "still_held": true,
        "status": "OPEN"
      },
      "tx_hash": "0xe73ed3c24d1ca763984df61fad854479c45ea67b555ebaa547c994aa777add0c",
      "log_index": 559,
      "block_number": 89561963
    }
  ],
  "rows_returned": 1,
  "has_more": false,
  "offset": 0,
  "limit": 25,
  "position_type": "combo",
  "source": "v3.wallet_combos.redemptions"
}
```

## Choosing this endpoint

* Use `redemption_scope=full` for terminal whole-combo redemptions.
* Use `redemption_scope=partial` for post-resolution compression into a smaller combo, including a three-leg combo becoming a two-leg combo when Polymarket emits that transition.
* Use `event_kind=Extracted` for structural full/reduced/residual lineage. Extraction is marked as a reduction, but not as a redemption.
* Use the default `all` when reconstructing the wallet's complete combo redemption and transformation history.
* Use the global endpoint when the wallet is unknown or when correlating one condition, position, or transaction across wallets.
* Read `source_leg_count`, `removed_leg_count`, `remaining_leg_count`, and `leg_transition` when you only need to know what changed in that redemption.
* Read `market_token_id`, `leg_result`, `leg_current_price`, and `leg_price_source` on each leg when you need an actionable standard-market identifier and outcome state.
* Read `remaining_combo` to see the resulting combo position and whether the wallet still holds a positive balance. Use the combo positions endpoint for full position, cost, and P\&L context.

Existing standard and combo position endpoints are unchanged.


## OpenAPI

````yaml GET /v3/wallets/{address}/combos/redemptions
openapi: 3.1.0
info:
  title: PolyNode API
  description: >-
    Real-time Polymarket data API with decoded mempool settlements, OHLCV
    candles, and full Polygon JSON-RPC proxy.
  contact:
    name: PolyNode
    url: https://polynode.dev
  license:
    name: ''
  version: 2.0.0
servers:
  - url: https://api.polynode.dev
    description: Production
security:
  - api_key: []
paths:
  /v3/wallets/{address}/combos/redemptions:
    get:
      tags:
        - V3 Combos
      summary: Wallet combo redemptions and reductions
      description: >-
        List full combo redemptions, partial reductions, and related
        transformations for one wallet with exact condition and position
        lineage, before/removed/remaining leg counts, canonical market token
        IDs, per-leg result and price context, and a compact remaining-combo
        holding when applicable.
      operationId: v3_wallet_combo_redemptions
      parameters:
        - name: address
          in: path
          required: true
          schema:
            type: string
            pattern: ^0x[a-fA-F0-9]{40}$
          description: Wallet address
        - name: market_id
          in: query
          schema:
            type: string
          description: >-
            One or more comma-separated combo condition IDs. Matches any
            condition in the lineage.
        - name: condition_id
          in: query
          schema:
            type: string
            pattern: ^0x[a-fA-F0-9]{62}$
          description: Combo condition ID. Matches any condition in the lineage.
        - name: position_id
          in: query
          schema:
            type: string
            pattern: ^[0-9]+$
          description: Primary, source, destination, or underlying position ID
        - name: event_kind
          in: query
          schema:
            type: string
            enum:
              - PositionRedeemed
              - Compressed
              - ConvertedOnEvent
              - ConvertedToYesBasket
              - Extracted
              - Injected
              - MergedFromYesBasket
              - MergedOnCondition
              - MergedOnEvent
              - SplitOnCondition
              - SplitOnEvent
              - Unwrapped
              - Wrapped
              - all
        - name: redemption_scope
          in: query
          schema:
            type: string
            enum:
              - full
              - partial
              - transformation
              - all
            default: all
          description: >-
            full = terminal redemption; partial = non-terminal post-resolution
            compression; transformation = non-redemption lifecycle lineage
        - name: redemption_type
          in: query
          schema:
            type: string
            enum:
              - FULL_COMBO
              - PARTIAL_COMBO
              - COMBO_TRANSFORMATION
              - all
            default: all
        - name: tx_hash
          in: query
          schema:
            type: string
            pattern: ^0x[a-fA-F0-9]{64}$
          description: Exact Polygon transaction hash
        - name: after
          in: query
          schema:
            type: integer
            format: int64
            minimum: 0
          description: Inclusive Unix timestamp in seconds
        - name: before
          in: query
          schema:
            type: integer
            format: int64
            minimum: 0
          description: Inclusive Unix timestamp in seconds
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 300
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
      responses:
        '200':
          description: Wallet combo redemptions and reductions
          content:
            application/json:
              schema:
                type: object
                properties:
                  address:
                    type: string
                  redemptions:
                    type: array
                    items:
                      $ref: '#/components/schemas/ComboRedemption'
                  rows_returned:
                    type: integer
                  has_more:
                    type: boolean
                  offset:
                    type: integer
                  limit:
                    type: integer
                  position_type:
                    type: string
                    const: combo
                  source:
                    type: string
                    const: v3.wallet_combos.redemptions
        '400':
          description: Invalid wallet address or filter
        '401':
          description: Unauthorized
        '503':
          description: Combo read model unavailable
      security:
        - api_key: []
components:
  schemas:
    ComboRedemption:
      type: object
      description: >-
        One chain-derived combo redemption, post-resolution compression, or
        related lifecycle transformation.
      required:
        - position_type
        - is_combo
        - id
        - type
        - event_kind
        - side
        - module_kind
        - user_address
        - wallet_address
        - combo_condition_id
        - module_id
        - timestamp
        - tx_hash
        - log_index
        - block_number
        - redemption_scope
        - redemption_type
        - redemption_evidence
        - is_full_combo_redemption
        - is_partial_combo_redemption
        - is_terminal_redemption
        - is_partial_combo_reduction
        - has_collateral_payout
        - lineage_event_id
        - lineage_status
        - legs
        - full_legs
        - source_legs
        - remaining_legs
        - removed_legs
        - residual_legs
        - metadata_coverage
        - parity_status
      properties:
        position_type:
          type: string
          const: combo
        is_combo:
          type: boolean
          const: true
        id:
          type: string
          description: Stable public log identifier.
        type:
          type: string
          description: Polymarket-compatible activity type.
        event_kind:
          type: string
          enum:
            - PositionRedeemed
            - Compressed
            - ConvertedOnEvent
            - ConvertedToYesBasket
            - Extracted
            - Injected
            - MergedFromYesBasket
            - MergedOnCondition
            - MergedOnEvent
            - SplitOnCondition
            - SplitOnEvent
            - Unwrapped
            - Wrapped
        side:
          type: string
        module_kind:
          type: string
          const: Combinatorial
        user_address:
          type: string
          pattern: ^0x[a-f0-9]{40}$
        wallet_address:
          type: string
          pattern: ^0x[a-f0-9]{40}$
        combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        combo_position_id:
          type: string
          pattern: ^[0-9]+$
        combo_outcome_index:
          type: integer
          minimum: 0
          maximum: 255
        module_id:
          type: integer
          const: 3
        amount_usdc:
          type: string
        payout_usdc:
          type: string
        position_amount_usdc:
          type: string
        collateral_out_usdc:
          type: string
        timestamp:
          type: integer
          format: int64
        tx_dttm:
          type: string
          format: date-time
        tx_hash:
          type: string
          pattern: ^0x[a-f0-9]{64}$
        log_index:
          type: integer
        block_number:
          type: integer
          format: int64
        redemption_scope:
          type: string
          enum:
            - full
            - partial
            - transformation
          description: >-
            Terminal redemption, non-terminal post-resolution compression, or
            non-redemption lifecycle transformation.
        redemption_type:
          type: string
          enum:
            - FULL_COMBO
            - PARTIAL_COMBO
            - COMBO_TRANSFORMATION
        redemption_evidence:
          type: string
          enum:
            - terminal_position_redeemed
            - terminal_compression
            - post_resolution_compression
            - condition_extraction
            - condition_injection
            - lifecycle_transformation
        is_full_combo_redemption:
          type: boolean
        is_partial_combo_redemption:
          type: boolean
        is_terminal_redemption:
          type: boolean
        is_partial_combo_reduction:
          type: boolean
        has_collateral_payout:
          type: boolean
        source_event_kind:
          type: string
        full_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
          description: >-
            Pre-transition full/source combo for this event; not a guessed
            earliest ancestor.
        parent_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        source_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        reduced_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        residual_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        child_yes_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        child_no_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        destination_combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        source_position_id:
          type: string
          pattern: ^[0-9]+$
        destination_position_id:
          type: string
          pattern: ^[0-9]+$
        underlying_position_id:
          type: string
          pattern: ^[0-9]+$
        event_id:
          type: string
        condition_index:
          type: integer
        lineage_event_id:
          type: string
        lineage_status:
          type: string
        lineage:
          type: object
          additionalProperties: true
        source_leg_count:
          type: integer
          minimum: 0
          description: >-
            Number of legs in the source combo immediately before this
            operation.
        removed_leg_count:
          type: integer
          minimum: 0
          description: Number of source legs removed by this operation.
        remaining_leg_count:
          type: integer
          minimum: 0
          description: >-
            Number of legs left in the destination combo; zero for a full
            redemption.
        leg_transition:
          type: string
          pattern: ^[0-9]+_to_[0-9]+$
          description: Compact before-to-after leg count, for example 3_to_2 or 3_to_0.
        legs:
          type: array
          items:
            $ref: '#/components/schemas/ComboRedemptionLeg'
        full_legs:
          type: array
          items:
            $ref: '#/components/schemas/ComboRedemptionLeg'
        source_legs:
          type: array
          items:
            $ref: '#/components/schemas/ComboRedemptionLeg'
        remaining_legs:
          type: array
          items:
            $ref: '#/components/schemas/ComboRedemptionLeg'
        removed_legs:
          type: array
          items:
            $ref: '#/components/schemas/ComboRedemptionLeg'
        residual_legs:
          type: array
          items:
            $ref: '#/components/schemas/ComboRedemptionLeg'
        remaining_combo:
          $ref: '#/components/schemas/ComboRedemptionRemainingCombo'
        metadata_coverage:
          type: string
          enum:
            - complete
            - missing_source_legs
            - missing_reduced_legs
        parity_status:
          type: string
    ComboRedemptionLeg:
      type: object
      description: >-
        One selected standard-market outcome represented inside a combo
        redemption.
      required:
        - leg_index
      properties:
        leg_index:
          type: integer
          minimum: 0
        leg_position_id:
          type: string
          pattern: ^[0-9]+$
          description: >-
            Combo-contract position identifier for this leg. This is distinct
            from market_token_id.
        leg_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{64}$
        leg_outcome_index:
          type: integer
          minimum: 0
        leg_outcome_label:
          type: string
        leg_status:
          type: string
        leg_resolved_at:
          type: string
          format: date-time
        market_token_id:
          type: string
          pattern: ^[0-9]+$
          description: Canonical Polymarket CLOB token ID for the selected outcome.
        leg_result:
          type: string
          enum:
            - won
            - lost
            - resolved
            - pending
        leg_current_price:
          type: string
          pattern: ^(0\.[0-9]{4}|1\.0000)$
          description: Best available selected-outcome price from 0.0000 to 1.0000.
        leg_price_source:
          type: string
          enum:
            - settlement
            - clob_mid
            - last_fill
            - polymarket_market
        market:
          $ref: '#/components/schemas/ComboRedemptionLegMarket'
    ComboRedemptionRemainingCombo:
      type: object
      description: >-
        Compact destination-combo holding created by a partial redemption. This
        is not a positions, cost-basis, or P&L record.
      required:
        - combo_condition_id
        - combo_position_id
      properties:
        combo_condition_id:
          type: string
          pattern: ^0x[a-f0-9]{62}$
        combo_position_id:
          type: string
          pattern: ^[0-9]+$
        shares_created:
          type: string
          pattern: ^[0-9]+\.[0-9]{6}$
        current_wallet_balance:
          type: string
          pattern: ^[0-9]+\.[0-9]{6}$
        still_held:
          type: boolean
        status:
          type: string
          enum:
            - OPEN
            - CLOSED
    ComboRedemptionLegMarket:
      type: object
      description: >-
        Public Polymarket market metadata and current resolution state for a
        combo leg.
      properties:
        market_id:
          type: string
        slug:
          type: string
        title:
          type: string
        outcome:
          type: string
        image_url:
          type: string
        icon_url:
          type: string
        category:
          type: string
        subcategory:
          type: string
        tags:
          type: array
          items: {}
        end_date:
          type: string
          format: date-time
        active:
          type: boolean
        closed:
          type: boolean
        accepting_orders:
          type: boolean
        resolved:
          type: boolean
        winning_outcome_index:
          type: integer
          minimum: 0
        event:
          $ref: '#/components/schemas/ComboRedemptionLegEvent'
    ComboRedemptionLegEvent:
      type: object
      description: Public Polymarket event metadata associated with a combo leg.
      properties:
        event_id:
          type: string
        event_slug:
          type: string
        event_title:
          type: string
        event_image:
          type: string
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: x-api-key

````