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

# Markets

> List, paginate, and fetch market details. Holders + trades per market.

## GET /markets

List markets (paginated). Pulls from the Goldsky subgraph; falls back to direct chain reads if `GOLDSKY_GRAPHQL_URL` is unset.

| Query      | Type | Default |
| ---------- | ---- | ------- |
| `page`     | int  | `0`     |
| `pageSize` | int  | `24`    |

Response:

```json theme={null}
{
  "markets": [Market, ...],
  "total": 12,
  "source": "goldsky"
}
```

## GET /markets/top

Top markets by total volume. Subgraph-only.

| Query   | Type | Default |
| ------- | ---- | ------- |
| `limit` | int  | `10`    |

## GET /markets/:address

Fetch a single market with all enrichments — `postMetadata` (X post details cached locally) and `proposalDetails` (AI draft persisted by `/posts/evaluate`).

```bash theme={null}
curl https://api.signalium.site/markets/0x1b8992645570683dCeF5d75fabA03c5392620639
```

Returns a `Market` shape. Selected fields:

| Field                                | Type                                        | Source                                           |
| ------------------------------------ | ------------------------------------------- | ------------------------------------------------ |
| `address`                            | `0x…`                                       | on-chain                                         |
| `question`                           | string                                      | on-chain                                         |
| `description`                        | string                                      | API SQLite (proposal cache)                      |
| `resolutionCriteria`                 | string                                      | API SQLite                                       |
| `judgeStorageRoot`                   | `0x…`                                       | on-chain — points to sealed prompt on 0G Storage |
| `yesPool` / `noPool` / `totalVolume` | string (wei)                                | subgraph or on-chain                             |
| `status`                             | `0=Open, 1=Resolving, 2=Resolved, 3=Voided` | on-chain                                         |
| `outcome`                            | `0=Unresolved, 1=Yes, 2=No, 3=Invalid`      | on-chain                                         |
| `postMetadata`                       | object                                      | API SQLite (RapidAPI cache)                      |
| `proposalDetails`                    | object                                      | API SQLite                                       |

## GET /markets/:address/holders

Top YES/NO holders by total stake. Subgraph-only; capped at 100 rows.

## GET /markets/:address/trades

Recent trades for one market.

| Query   | Type | Default |
| ------- | ---- | ------- |
| `limit` | int  | `50`    |
