Skip to content
GuideSome background assumed

What a public Polymarket wallet does not tell you

A manila profile card filling the frame. EVENT and MARKET tickets do not line up. A punched hole shows empty paper. No faces. No prices. No headline.
A public profile is a named address. EVENT and MARKET are different objects. The hole is what the row does not carry. Sloppy Stakes editorial illustration
Follow us on X

A public profile is a named address plus optional display fields. Positions, activity, and a leaderboard row are different objects. None of them is a fill, a fee path, or a promise the next event is the same contract.

By Jordan NabigonPublished 8 min read

What you'll be able to do

  • Name a public profile as a field list, not a strategy or a fill.
  • Distinguish profile, positions, activity, and leaderboard as separate public objects.
  • State what those objects omit: fee path, fill, and whether the next event is the same contract.

Before you start

What this guide won't do

  • Vendor docs as of 2026-08-16T23:01Z only. Endpoint defaults can change.
  • No new P&L. No website chrome. Leaderboard pnl construction is UNKNOWN.
  • Not a how-to, not a copy-trade, not a leftover /strategy page.

Last reviewed 16 August 2026

A public Polymarket profile is a named address. Official docs for the public-profile endpoint, retrieved 2026-08-16T22:58Z, return a created-at stamp, a proxy-wallet address, an optional image, a bio, an auto-generated pseudonym, a user-chosen name, an X username, a verified-badge flag, whether that username is shown, and a small users array with creator and moderator flags. They do not return a fee, a fill, or a map of the next event.

The profile is not the tape

The public-profile call is one object. It is keyed by a 0x address. A 404 is "profile not found." A 200 is the field list above.

That address is the account wallet. Official wallet docs, retrieved the same hour, name three smart-wallet types: a Deposit Wallet for accounts deployed on or after 4 May 2026, a Proxy Wallet for a legacy Magic Link or Google login, and a Safe Wallet for a legacy external signer. The profile field is still named proxyWallet. Do not upgrade the field name into "this address is always a Proxy Wallet." The signer and the account wallet can differ. The public page is the account wallet.

Positions, closed positions, activity, portfolio value, and a leaderboard row are different public endpoints. Official wallet-activity docs treat them as separate reads. Collapsing them into "the profile" is a category error.

A named receipts piece already showed the practical version of that error: a newsroom conversion and a profile widget can disagree on which dollar is the win. This page owns the objects, not a new dollar.

Positions and activity are different objects

The current-positions endpoint, retrieved 2026-08-16T22:59Z, returns open outcome exposure. Documented fields include a condition id, a size, an average price, an initial value, a current value, cash and realized pnl fields, a current price, a title, a market slug, an event slug, an outcome, and an end date.

Defaults hide rows. sizeThreshold defaults to 1. Archived positions are excluded unless includeArchived is set. The default page is 100 rows; the documented maximum is 500.

Closed positions are another call. The schema retrieved this run has average price, total bought, realized pnl, current price, a timestamp, title, slugs, and outcome. The documented default page is 10 rows, maximum 50. The closed-position schema retrieved tonight does not include the buy-fee fields that the open-position schema names.

Activity is a third call. Documented types include TRADE, SPLIT, MERGE, REDEEM, REWARD, CONVERSION, DEPOSIT, WITHDRAWAL, YIELD, MAKER_REBATE, TAKER_REBATE, and REFERRAL_REWARD. Split, merge, and redeem sit outside the order book. A TRADE row is not those operations.

Deposits and withdrawals are excluded by default, even if the type filter asks for them. The default time window is the most recent about three years unless a start timestamp is set. Offset past 5000 is rejected. A combo flag, when present, is a flag only — the legs are not embedded.

Notifications are not a public profile field. Official wallet-activity docs put them on an authenticated client and say the CLOB retains them for 48 hours. Resting orders are also not on the public profile: placing and listing open orders is an authenticated CLOB path.

The fee the row does not carry

On the open-position schema, avgPrice and initialValue keep fee-exclusive semantics. entryFeesUsdc is the attributed BUY-fee component of a separate gross basis. The same page says sell fees are exit costs and are never included. Optional fee fields: treat an omitted field as unavailable, not as zero.

The closed-position schema retrieved this run does not name those fee fields at all.

Takers on certain markets pay a fee. Makers are never charged a trading fee. Official fees docs, retrieved 2026-08-16T22:59Z, still print fee = C × feeRate × p × (1 − p), with documented taker rates by category (Crypto 0.07; Sports, Economics, Culture, Weather, and Other 0.05; Finance, Politics, Mentions, and Tech 0.04; Geopolitics 0). Those rates are documentation as of that retrieval. The current fee on a named live market is UNKNOWN unless that market's own fee schedule is read. A public wallet row does not tell you whether the address was the taker or the maker on a given print.

A leaderboard row has a pnl field and a vol field. Official leaderboard docs, retrieved 2026-08-16T23:00Z, let you rank by either, for DAY, WEEK, MONTH, or ALL, defaulting to DAY and to PNL. How that pnl is constructed — realized versus mark, fees in or out — is UNKNOWN from the page we opened. Do not treat it as Sergeenkov's address-level realized cut, and do not treat it as the open-position realizedPnl.

Most addresses on this venue are not in realized profit. Sergeenkov's all-address cut through 1 April 2026 is 15.9 percent. Other public cuts sit near 30 percent. Neither is an active-trader rate. A named wallet does not rewrite that ladder, and this page does not recompute it.

A printed price is not a fill

An activity TRADE row has a price and a side. Official activity docs do not say that price is a midpoint, an ask, a bid, or a fee-inclusive fill. Which object it is stays UNKNOWN.

On the documented venue, the number on the screen is often a midpoint. Official prices-and-orderbook docs, retrieved 2026-08-16T23:00Z, say the displayed price is the midpoint of the best bid and the best ask, unless the spread is wider than ten cents, in which case last trade is shown. Their documentation example is a $0.34 bid and a $0.40 ask, which displays as $0.37; a buyer in that example pays $0.40. Those three figures are documentation, not a live book, and not a wallet's fill.

A "market order" on this venue is still a limit, priced to cross the book. Orders can fill in pieces. Official place-orders docs say an estimate is a snapshot: the available price can change before the order is submitted. A market order never rests; unfilled size is cancelled. Large orders may move the price. None of that is visible as "the fill you would get if you sent the same button now."

A Yes-plus-No sum that looks like a dollar is still not a lock. Complementary prices add toward a dollar of collateral before spread, size, two orders, and fees. A public wallet does not hand you those four.

The next event is not the same contract

A position row and an activity row both carry a market slug and an eventSlug. Official markets-and-events docs, retrieved 2026-08-16T23:00Z, treat a market as the tradable unit — one binary Yes/No question with its own condition id — and an event as a container of one or more such markets. The event page and the market page are not the same object. A matching headline is not identity. The next game, the next meeting, or the next similarly worded question is a different condition id unless the row says otherwise.

For sports, the same markets-and-events page says outstanding limit orders are automatically cancelled once the game begins. If a game starts earlier than scheduled, orders may not be cleared in time. That is a fact about resting orders on that venue, not a reason to send a new one.

What a copycat cannot know

You cannot copy the fee path. Buy-fee fields are optional on open positions, absent on the closed-position schema we opened, and silent on whether the address was the taker. Category rates are a documentation table, not that wallet's invoice.

You cannot copy the fill. A displayed midpoint, an activity price, and a leaderboard pnl are different objects. Maker versus taker, partial fills, depth walked, and whether the order rested or crossed are not on the public profile.

You cannot copy the next event. An event slug is a container. A market slug is a book. The next similar headline is not that condition id.

You cannot copy the hidden rows. Small positions below the default size threshold, archived markets, deposits and withdrawals, activity older than the default window, offset past 5,000, resting orders, and 48-hour authenticated notifications are not the public profile.

You cannot copy a person. An address is an address. Official docs do not say one person equals one wallet.

This is not a system. It is a set of opened public objects that refuse to be a strategy.

Editorial review

Reviewed by Jordan Nabigon on 16 August 2026.

How AI was used here

Research packet, draft, reviewer/editor pass. Tim adversarial pass under 2026-08-15 auto-approve standing order. Not a claim Jordan fact-checked the piece.

Our AI policy

Sources