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

# Outcome Balances

<div className="venue-tags" aria-label="Supported venues">
  <span className="venue-tag">Hyperliquid</span>
</div>

Returns a user's non-zero Hyperliquid-routed outcome-share balances and held quantities.

## Endpoints

Preferred unified request:

```text theme={null}
POST /info
```

```json theme={null}
{
  "type": "outcomeBalances",
  "user": "0x1111111111111111111111111111111111111111"
}
```

Compatibility GET request:

```text theme={null}
GET /outcome/balances?user=0x1111111111111111111111111111111111111111
```

The GET endpoint also accepts the wallet address through the `x-wallet` header.

## Response

<Tabs sync={false}>
  <Tab title="200: Balances">
    ```json theme={null}
    [
      {
        "assetId": "0004000005f77024",
        "hlEncoding": 100102180,
        "label": "Below 4.3% Yes",
        "questionId": 820,
        "outcomeId": 10218,
        "sideIndex": 0,
        "total": "12",
        "hold": "3",
        "entryNtl": "6"
      }
    ]
    ```
  </Tab>
</Tabs>

## Fields

| Field        | Meaning                                                           |
| ------------ | ----------------------------------------------------------------- |
| `assetId`    | 16-character AssetId, e.g., `"0004000005f77024"`                  |
| `hlEncoding` | Encoded outcome-side ID, e.g., `100102180`                        |
| `label`      | Display label, e.g., `"Below 4.3% Yes"`, or `null`                |
| `questionId` | Question ID, e.g., `820`, or `null` when metadata is unavailable  |
| `outcomeId`  | Outcome ID, e.g., `10218`, or `null` when metadata is unavailable |
| `sideIndex`  | Outcome side index, e.g., `0`, or `null`                          |
| `total`      | Total outcome shares, e.g., `"12"`                                |
| `hold`       | Shares reserved by active orders, e.g., `"3"`                     |
| `entryNtl`   | Estimated total entry value, or `null` when unavailable           |

Zero-balance rows without a hold are omitted. An empty array is a valid response.

## Mergeable Balance

For one `outcomeId`, match its Yes and No rows and compute each available balance as
`total - hold`. The maximum complete-set merge is the smaller of those two values. You can compute
that amount client-side or send `amount: null` to
[`userOutcome.mergeOutcome`](/api-reference/exchange-endpoints/merge-outcome).

An accepted merge increases `hold` on both rows while venue execution is pending. Execution removes
the held shares and credits USDC; failure releases the holds.
