Positions
client.wallets.positions(wallet) — open holdings per (market, outcome), fully marked to market: live odds for open markets, the CTF payout for resolved-but-unredeemed. Label-joined, so no per-row lookups.
no open positions
const { positions } = await client.wallets.positions(wallet)
// per row: marketName / marketTitle, outcomeLabel, shares, costBasis, sellRevenue,
// price (0..1) → live odds (open) | payout (resolved)
// value → shares × price
// unrealizedPl → value + sellRevenue − costBasis
// maxPayout → shares (each winning share redeems 1 PST)
// lastTradeAt