Skip to main content
Use a wallet address to understand an account’s current exposure and trace how its activity has changed over time.

Open Positions

Inspect a wallet’s current outcome exposure and unrealized performance.
Call listPositions() on a PublicClient or SecureClient.
firstEntryAt is the first acquisition time in Unix epoch milliseconds, or undefined when unrecorded. Acquisitions include buys, splits, mints, migrations, and incoming transfers.

Filter Positions by Title

Narrow positions to markets whose titles contain a search term, ignoring case. This works across position statuses and when listing a market’s holders.
Pass title to listPositions() on the existing PublicClient or SecureClient:
title accepts at most 200 Unicode characters. Empty or whitespace-only input disables the filter. Other patterns are preserved unchanged; % matches any sequence of characters and _ matches one character. The paginator retains title on every page, including when resumed with pages.from(nextCursor).

Closed Positions

Review the positions a wallet has exited or that have resolved, including their realized performance.
One method serves the whole position lifecycle: call listPositions() with status: PositionStatus.Closed. Closed rows keep the same Position shape with realized economics (currentSize is a ~0 residual and realizedPnl carries the outcome); they default to sorting by realized PnL.
Position Example

Sort Positions by Price

Rank a wallet’s holdings by current effective price to find its lowest- or highest-priced outcomes.
Call listPositions() on an existing PublicClient or SecureClient, using the address from the open positions example.
PositionSortBy.Price orders by currentPrice. Use SortDirection.Desc for highest prices first. The paginator retains the selected sort on later pages.
Redeemable holdings keep winners ahead of losing holdings, then apply the selected price order within each group. A wallet’s closed positions use realized profit and loss ordering when price ordering is requested. Without an explicit sort, mergeable holdings use token quantity, closed positions use realized profit and loss, and other holdings use current value. The default direction is descending.

Activity History

Follow the timeline for a wallet across trades and other activity.
Call listActivity() on a PublicClient or SecureClient.
You can narrow down the activity types using the type field:
Activity is a discriminated union. The type field identifies each variant:

Notifications

Notifications provide a short-lived record of unread events for the connected account. The CLOB retains them for 48 hours.
Clients authenticated with Session Keys receive only notifications generated by those Session Keys.

List Notifications

Call fetchNotifications() on a SecureClient:

Drop Notifications

Mark notifications as read after processing them. Dropped notifications no longer appear when you list unread notifications.
Call dropNotifications() on a SecureClient with the notification IDs:

Portfolio Value

Read the current portfolio value for a wallet.
Call fetchPortfolioValue() on a PublicClient or SecureClient. It returns a single object: the wallet’s marked portfolio value in USDC, rounded to four decimals.

Wallet Stats

Read a wallet’s lifetime trading statistics.
Call fetchUserStats() on a PublicClient or SecureClient.
tradedMarketCount counts distinct markets, not fills. stats is null for an unknown user.

Wallet PnL History

Track a wallet’s cumulative profit and loss over time.
Call fetchUserPnl() on a PublicClient or SecureClient.
The default is one day sampled hourly. points are cumulative and ordered oldest first. Nullable amounts mean unavailable, not zero.

Wallet Trading Volume

Measure a wallet’s trading volume over a selected period.
Call fetchUserVolume() on a PublicClient or SecureClient.
volume.volume is in shares, volume.volumeUsdc is in USD, and volume.tradeCount counts fills. Window bounds expand to whole UTC days.