Skip to main content
Polymarket positions are ERC-1155 conditional tokens (CTF) held in your proxy wallet. The positions endpoints let you inspect open and closed holdings and perform on-chain lifecycle actions: redeeming a resolved market for pUSD payout, splitting pUSD into a complete outcome set to gain exposure simultaneously, or merging a complete set back to recover pUSD. All on-chain operations are submitted by Bravado on your behalf and confirmed before the response returns.

GET /v2/trade/positions

Returns a paginated list of outcome token positions associated with your account.

Query parameters

string
Filter by position status. active (default) returns positions with a non-zero current balance and a live mark price. closed returns fully exited or redeemed positions with realized PnL.
number
Maximum number of results to return per page. Defaults to 50.
number
Zero-based offset for pagination.

Response

array
Array of position objects.
Active positions include a live cur_price mark sourced from the CLOB mid-quote. Closed positions omit mark-price fields and populate realized_pnl instead.

Example


POST /v2/trade/positions/redeem

Redeems a resolved Conditional Token Framework (CTF) position and delivers the pUSD payout to your proxy wallet. The call is synchronous: it waits for the Polygon transaction to confirm before returning. Winning positions receive a payout of 1 pUSD per share; losing positions receive 0. Required headers

Request body

string
required
The condition to redeem, formatted as 0x followed by exactly 64 hex characters.
number
required
Zero-based index of the outcome token you hold (e.g. 0 for the first outcome, 1 for the second).
boolean
required
Set to true for negative-risk (multi-outcome) markets. Set to false for standard binary markets.
string
Number of shares to redeem as a decimal string. Omit to redeem your entire position.

Response

string
Polygon transaction hash of the on-chain redemption.
string
STATE_CONFIRMED once the transaction is included in a block.
string
Echo of the submitted condition ID.
number
Echo of the submitted outcome index.
boolean
Echo of the submitted flag.
string
pUSD payout in 6-decimal base units as a string (e.g. "500000000" = 500 pUSD). Returns "0" for a losing position.

Example

Convert payout_base_units to a human-readable dollar amount by dividing by 1_000_000 (6 decimals). A value of "500000000" equals 500 pUSD.

POST /v2/trade/positions/split

Splits pUSD collateral into one share of every outcome token in a condition. After splitting, you hold a complete outcome set, useful for then selling one side on the CLOB while retaining the other. Splitting is the on-chain equivalent of buying both sides simultaneously. Required headers

Request body

string
required
The condition to split into (0x + 64 hex characters).
string
required
pUSD amount to split, as a decimal string (e.g. "100.00"). You will receive amount shares of each outcome token.
boolean
required
true for negative-risk markets; false for standard binary markets.

Response

string
Polygon transaction hash.
string
STATE_CONFIRMED once the transaction is mined.
string
Echo of the submitted condition ID.
string
Echo of the submitted pUSD amount split.
boolean
Echo of the submitted flag.

Example


POST /v2/trade/positions/merge

Merges a complete set of outcome tokens back into pUSD collateral. You must hold at least amount shares of every outcome in the condition. This is the reverse of splitting and lets you exit a delta-neutral position without hitting the CLOB. Required headers

Request body

string
required
The condition whose outcome tokens you are merging (0x + 64 hex characters).
string
required
Number of complete outcome sets to merge, as a decimal string. You receive this many pUSD in return.
boolean
required
true for negative-risk markets; false for standard binary markets.

Response

string
Polygon transaction hash.
string
STATE_CONFIRMED once the transaction is mined.
string
Echo of the submitted condition ID.
string
Echo of the submitted share set count.
boolean
Echo of the submitted flag.

Example

The amount field for merge represents the number of complete outcome sets (one share of each outcome), not a dollar amount. Merging 100 sets of a binary market burns 100 YES tokens and 100 NO tokens and returns 100 pUSD.