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

# Wallet Tracker API — Cross-Platform Positions

> Fetch open positions and trade history for an Ethereum wallet address across six integrated prediction market platforms in a single API call.

The wallet tracker endpoint fetches open positions and trade history for a wallet address across six integrated prediction market platforms simultaneously. Pass an Ethereum address and optionally a Solana address and Manifold username to pull consolidated portfolio data without building separate connectors for each venue. Results are cached for up to 60 seconds.

## Endpoint

```
GET https://api.predexy.com/api/v1/wallet-tracker/{address}
```

## Authentication

A session JWT is required:

```
Authorization: Bearer <your_jwt>
```

## Path parameters

<ParamField path="address" type="string" required>
  Ethereum wallet address. Used for Polymarket, Predict.fun, Azuro, and Limitless lookups.
</ParamField>

## Query parameters

<ParamField query="solana" type="string">
  Solana wallet address. Required to fetch Drift BET positions. Omit if you do not trade on Drift.
</ParamField>

<ParamField query="manifold" type="string">
  Manifold Markets username (not wallet address). Required to fetch Manifold positions and bet history.
</ParamField>

## Supported platforms

| Platform    | Identifier used                   |
| ----------- | --------------------------------- |
| Polymarket  | Ethereum address (path parameter) |
| Predict.fun | Ethereum address (path parameter) |
| Azuro       | Ethereum address (path parameter) |
| Limitless   | Ethereum address (path parameter) |
| Drift       | Solana address (`?solana=`)       |
| Manifold    | Username (`?manifold=`)           |

## Example request

```bash cURL theme={null}
curl "https://api.predexy.com/api/v1/wallet-tracker/0xAbCd1234EfGh5678IjKl9012MnOp3456QrSt7890?solana=7vT3...&manifold=jdoe" \
  -H "Authorization: Bearer <your_jwt>"
```

## Response

The response groups data by platform. Each platform entry contains positions, trade history, and summary totals. If a platform's connector fails during the parallel fetch, that entry will contain an `error` string instead of data.

### Top-level fields

<ResponseField name="address" type="string" required>
  The Ethereum address that was queried.
</ResponseField>

<ResponseField name="solanaAddress" type="string">
  Solana address, if provided.
</ResponseField>

<ResponseField name="manifoldUser" type="string">
  Manifold username, if provided.
</ResponseField>

<ResponseField name="platforms" type="object" required>
  Object keyed by platform slug. Each value contains `positions`, `history`, `totalValue`, `totalPnL`, `positionCount`, and optionally `error`.
</ResponseField>

<ResponseField name="summary" type="object" required>
  Cross-platform totals.

  <Expandable title="summary fields">
    <ResponseField name="totalValue" type="number">
      Combined current value of all open positions in USD.
    </ResponseField>

    <ResponseField name="totalPnL" type="number">
      Combined profit/loss across all platforms in USD.
    </ResponseField>

    <ResponseField name="totalPositions" type="number">
      Total number of open positions.
    </ResponseField>

    <ResponseField name="activePlatforms" type="number">
      Number of platforms with at least one open position.
    </ResponseField>
  </Expandable>
</ResponseField>

### TrackedPosition fields

<ResponseField name="platform" type="string" required>
  Platform slug, e.g. `polymarket`.
</ResponseField>

<ResponseField name="marketTitle" type="string" required>
  Title of the market where the position is held.
</ResponseField>

<ResponseField name="marketUrl" type="string" required>
  Direct URL to the market on the platform.
</ResponseField>

<ResponseField name="outcome" type="string" required>
  The outcome held, e.g. `"Yes"`, `"No"`, `"Buy"`.
</ResponseField>

<ResponseField name="size" type="number" required>
  Number of shares or amount invested.
</ResponseField>

<ResponseField name="avgPrice" type="number" required>
  Average price paid per share.
</ResponseField>

<ResponseField name="currentPrice" type="number" required>
  Current market price for this outcome.
</ResponseField>

<ResponseField name="currentValue" type="number" required>
  Current value of the position in base currency.
</ResponseField>

<ResponseField name="pnl" type="number" required>
  Unrealized profit/loss in base currency.
</ResponseField>

<ResponseField name="pnlPercent" type="number" required>
  Unrealized profit/loss as a percentage.
</ResponseField>

<ResponseField name="status" type="string" required>
  Position status: `open`, `closed`, or `resolved`.
</ResponseField>

<ResponseField name="endDate" type="string">
  Market resolution date in `YYYY-MM-DD` format.
</ResponseField>

### TradeHistoryItem fields

<ResponseField name="platform" type="string" required>
  Platform slug.
</ResponseField>

<ResponseField name="type" type="string" required>
  Trade type, e.g. `BUY`, `SELL`, `BET`, `REDEMPTION`.
</ResponseField>

<ResponseField name="side" type="string" required>
  Trade side, e.g. `BUY`, `SELL`, `YES`, `NO`.
</ResponseField>

<ResponseField name="marketTitle" type="string" required>
  Market title at the time of the trade.
</ResponseField>

<ResponseField name="price" type="number">
  Price per share at execution.
</ResponseField>

<ResponseField name="size" type="number">
  Number of shares or units traded.
</ResponseField>

<ResponseField name="timestamp" type="string" required>
  ISO 8601 timestamp of the trade.
</ResponseField>

<ResponseField name="status" type="string">
  Trade status.
</ResponseField>

## Sample response

```json theme={null}
{
  "address": "0xAbCd1234EfGh5678IjKl9012MnOp3456QrSt7890",
  "solanaAddress": null,
  "manifoldUser": null,
  "platforms": {
    "polymarket": {
      "positions": [
        {
          "platform": "polymarket",
          "marketTitle": "Will BTC reach $100k by 2026?",
          "marketUrl": "https://polymarket.com/market/btc-100k-2026",
          "outcome": "Yes",
          "size": 250,
          "avgPrice": 0.55,
          "currentPrice": 0.62,
          "currentValue": 155.00,
          "pnl": 17.50,
          "pnlPercent": 12.73,
          "status": "open",
          "endDate": "2026-01-01"
        }
      ],
      "history": [
        {
          "platform": "polymarket",
          "type": "BUY",
          "side": "YES",
          "marketTitle": "Will BTC reach $100k by 2026?",
          "price": 0.55,
          "size": 250,
          "timestamp": "2026-03-15T10:30:00Z",
          "status": "filled"
        }
      ],
      "totalValue": 155.00,
      "totalPnL": 17.50,
      "positionCount": 1
    },
    "limitless": {
      "positions": [],
      "history": [],
      "totalValue": 0,
      "totalPnL": 0,
      "positionCount": 0
    }
  },
  "summary": {
    "totalValue": 155.00,
    "totalPnL": 17.50,
    "totalPositions": 1,
    "activePlatforms": 1
  }
}
```
