Website - Operational
CLOB API - Operational
Markets API - Operational
Polygon (RPC) - Operational
User auth - Operational
Sports API - Operational
+ npm install @polymarket/clob-client-v2 viem +
+pip install py-clob-client-v2
++ cargo add polymarket\_client\_sdk\_v2 --features clob +
+Website - Operational
CLOB API - Operational
Markets API - Operational
Polygon (RPC) - Operational
User auth - Operational
Sports API - Operational
+ npm install @polymarket/clob-client-v2 viem +
+pip install py-clob-client-v2
++ cargo add polymarket\_client\_sdk\_v2 --features clob +
++ npm install @polymarket/clob-client-v2 viem +
+pip install py-clob-client-v2
++ cargo add polymarket\_client\_sdk\_v2 --features clob +
+
+
+
+
+
+## Token Identifiers
+
+Each outcome token has a unique **position ID** (also called token ID or asset ID), computed onchain in three steps.
+
+### Step 1 - Condition ID
+
+```
+getConditionId(oracle, questionId, outcomeSlotCount)
+```
+
+| Parameter | Type | Value |
+| ------------------ | --------- | ---------------------------------------------------------------- |
+| `oracle` | `address` | [UMA CTF Adapter](https://github.com/Polymarket/uma-ctf-adapter) |
+| `questionId` | `bytes32` | Hash of the UMA ancillary data |
+| `outcomeSlotCount` | `uint` | `2` for all binary markets |
+
+### Step 2 - Collection IDs
+
+```
+getCollectionId(parentCollectionId, conditionId, indexSet)
+```
+
+| Parameter | Type | Value |
+| -------------------- | --------- | --------------------------------------------------------------- |
+| `parentCollectionId` | `bytes32` | `bytes32(0)` — always zero for top-level positions |
+| `conditionId` | `bytes32` | The condition ID from step 1 |
+| `indexSet` | `uint` | `1` (`0b01`) for the first outcome, `2` (`0b10`) for the second |
+
+The `indexSet` is a bitmask denoting which outcome slots belong to a collection. It must be a nonempty proper subset of the condition's outcome slots. Binary markets always have exactly two collections — one per outcome.
+
+### Step 3 - Position IDs
+
+```
+getPositionId(collateralToken, collectionId)
+```
+
+| Parameter | Type | Value |
+| ----------------- | --------- | ----------------------------------------- |
+| `collateralToken` | `IERC20` | pUSD contract address on Polygon |
+| `collectionId` | `bytes32` | One of the two collection IDs from step 2 |
+
+The two resulting position IDs are the ERC1155 token IDs for the Yes and No outcomes of the market.
+
+
+
+
+
+
+## Markets
+
+A **market** is the fundamental tradable unit on Polymarket. Each market represents a single binary question with Yes/No outcomes.
+
+
+
+
+
+
+
+Every market has:
+
+| Identifier | Description |
+| ---------------- | ------------------------------------------------------------------------ |
+| **Condition ID** | Unique identifier for the market's condition in the CTF contracts |
+| **Question ID** | Hash of the market question used for resolution |
+| **Token IDs** | ERC1155 token IDs used for trading on the CLOB — one for Yes, one for No |
+
+
+
+
+
+
+## Resolution Rules
+
+Every market has pre-defined resolution rules that specify:
+
+* **Resolution source** — Where the outcome will be determined from (e.g., official announcements, specific websites)
+* **End date** — When the market is eligible for resolution
+* **Edge cases** — How ambiguous situations should be handled
+
+
+
+
+
+
+## Prices Are Probabilities
+
+Every share on Polymarket is priced between `$0.00` and `$1.00`. The price directly represents the market's belief in the probability of that outcome.
+
+| Price | Implied Probability |
+| ------ | ------------------- |
+| \$0.25 | 25% chance |
+| \$0.50 | 50% chance |
+| \$0.75 | 75% chance |
+
+
+
+
+
+
+This design gives you the speed of centralized matching with the security of onchain settlement. You always maintain custody of your funds.
+
+## Price Discovery
+
+When a new market launches, there's no initial price. The first price emerges when:
+
+1. Someone places a limit order to buy Yes at a price (e.g., `$0.60`)
+2. Someone places a limit order to buy No at the complementary price (e.g., `$0.40`)
+3. Since `$0.60` + `$0.40` = `$1.00`, the orders match
+
+When matched, `$1.00` is converted into 1 Yes token and 1 No token, each going to their respective buyers.
+
+## Next Steps
+
+