Yes! Developers can find all the information they need for interacting with Polymarket. This includes documentation on market discovery, resolution, trading etc.
Whether you are an academic researcher a market maker or an indepedent developer, this documentation should provide you what you need to get started. All the code you find linked here and on our GitHub is open source and free to use.
If you have any questions please join our Discord and direct your questions to the #devs channel.
+
+
+
+
+## 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 |
+
+
+
+
+
+
+## How Orders Work
+
+All orders on Polymarket are **limit orders**. A limit order specifies the price you're willing to pay (or accept) and the quantity you want to trade.
+
+
+
+
+
+
+## Outcome Tokens
+
+Each market has exactly two outcome tokens:
+
+| Token | Redeems for | If... |
+| ------- | ----------- | ------------------------ |
+| **Yes** | \$1.00 | The event occurs |
+| **No** | \$1.00 | The event does not occur |
+
+Tokens are **ERC1155** assets on Polygon, using the [Gnosis Conditional Token Framework](https://github.com/gnosis/conditional-tokens-contracts/) (CTF). This means they're fully onchain and function as standard ERC1155 tokens.
+
+
+
+
+
+
+## Prices = 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
+
+
+
+
+
+
+## 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
+
+
+
+
+
+
+## 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` | USDC.e 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.
+
+
+| Benefit | Description |
+| ------------------- | ------------------------------------------------------------------------------- |
+| **Relayer Access** | Gas-free wallet deployment, approvals, order execution and CTF operations |
+| **Volume Tracking** | All orders attributed to your builder profile |
+| **Weekly Rewards** | USDC rewards program based on volume (Verified+) |
+| **Leaderboard** | Public visibility on [builders.polymarket.com](https://builders.polymarket.com) |
+| **Support** | Telegram channel and engineering support (Verified+) |
-### Customize Your Builder Identity
+
+
+
+
+
+
+### Prices = Probabilities
+
+Every share on Polymarket is priced between `$0.00` and `$1.00`. The price represents the market's belief in the probability of that outcome occurring.
+
+For example, if "Yes" shares for an event are trading at `$0.65`, the market believes there's approximately a `65%` chance the event will happen.
+
+### Collateral and Tokens
+
+Polymarket uses USDC.e (Bridged USDC on Polygon) as collateral. Every Yes/No pair is fully backed:
+
+* `$1 USDC.e` creates one Yes share and one No share
+* Winning shares are redeemable for `$1.00`
+* Losing shares are worth `$0.00`
+
+Shares are represented as tokens using the [Gnosis Conditional Token Framework](https://github.com/gnosis/conditional-tokens-contracts/) (ERC1155 standard), enabling seamless onchain trading and settlement.
+
+### Trading
+
+Polymarket uses a peer-to-peer order book (CLOB) for trading. You trade directly with other users, not against the house.
+
+* **Buy shares** when you think the market underestimates the probability
+* **Sell shares** when you think the market overestimates the probability
+* **Exit anytime** - Sell your position before resolution to lock in profits or cut losses
+
+| Action | When to Use | Profit Scenario |
+| ------- | ------------------------------------- | ------------------------- |
+| Buy Yes | You think the probability is too low | Event occurs |
+| Buy No | You think the probability is too high | Event does not occur |
+| Sell | Lock in gains or limit losses | Price moves in your favor |
+
+### Resolution
+
+When an event concludes, markets are resolved through the **UMA Optimistic Oracle**:
+
+1. A proposer submits the outcome with a bond
+2. There's a challenge period where anyone can dispute
+3. If disputed, UMA token holders vote on the correct resolution
+4. Winning tokens become redeemable for \$1 USDC.e
+
+This community-driven process ensures fair and accurate market resolution.
+
+## Why Blockchain?
+
+Polymarket is built on **Polygon**, a blockchain network, for several key reasons:
+
+* **Global accessibility** - Anyone with an internet connection can participate
+* **Non-custodial** - You control your funds, not a centralized entity
+* **Transparent** - All activity is publicly verifiable onchain
+* **Fast and affordable** - Polygon enables quick, low-cost transactions
+* **Stable value** - USDC.e is pegged 1:1 to the US dollar, avoiding crypto volatility
+
+## Proxy Wallets
+
+When a user first uses Polymarket.com to trade they are prompted to create a wallet. When they do this, a 1 of 1 multisig is deployed to Polygon which is controlled/owned by the accessing EOA (either MetaMask wallet or MagicLink wallet). This proxy wallet is where all the user's positions (ERC1155) and USDC.e (ERC20) are held.
+
+Using proxy wallets allows Polymarket to provide an improved UX where multi-step transactions can be executed atomically and transactions can be relayed by relayers on the gas station network. If you are a developer looking to programmatically access positions you accumulated via the Polymarket.com interface, you can either continue using the smart contract wallet by executing transactions through it from the owner account, or you can transfer these assets to a new address using the owner account.
+
+### Deployments
+
+Each user has their own proxy wallet (and thus proxy wallet address). See [Contract Addresses](/resources/contract-addresses) for all deployed factory and trading contract addresses on Polygon.
+
+
-
+Retrieve the full list of supported chains and tokens with their minimum deposit amounts.
-1. **Click on the Deposit button** and **select Transfer Crypto** as a source option
-2. **Select which supported token and chain** your assets are on from the dropdown
- * Depending on your combination, this **may update the deposit address**
- * Only send **supported token-chain combinations**
- * Sending non-supported tokens may cause an irrecoverable loss
-3. **Scan the QR code or copy the deposit address** and paste as the recipient in the withdrawal/transfer page of your exchange/wallet
- * This is where you'll specify how much crypto you're transferring
- * You **must send more than the minimum deposit** amount or the funds will not process
- * Always ensure to **double check the pasted address** versus that is shown on the widget to protect against clickjacking attempts
- * You can click on the **collapsible section at the bottom of the widget** for estimated price impact, slippage, delivery time, and our help guide
-4. **Withdraw/transfer the tokens** from your exchange/wallet and wait until they're reflected on the dApp
- * You will receive notifications on the Fun widget as your withdraw/transfer processes and completes as shown below
+```bash theme={null}
+curl https://bridge.polymarket.com/supported-assets
+```
-
+## Supported Chains
-
+The bridge supports deposits from these blockchain networks:
-## **What can I transfer?**
+| Chain | Address Type | Min Deposit | Example Tokens |
+| --------------- | ------------ | ----------- | ------------------------------------------- |
+| Ethereum | EVM | \$7 | ETH, USDC, USDT, WBTC, DAI, LINK, UNI, AAVE |
+| Polygon | EVM | \$2 | POL, USDC, USDT, DAI, WETH, SAND |
+| Arbitrum | EVM | \$2 | ETH, ARB, USDC, USDT, DAI, WBTC, USDe |
+| Base | EVM | \$2 | ETH, USDC, USDT, DAI, cbBTC, AERO, USDS |
+| Optimism | EVM | \$2 | ETH, OP, USDC, USDT, DAI, USDe |
+| BNB Smart Chain | EVM | \$2 | BNB, USDC, USDT, DAI, ETH, BTCB, BUSD |
+| Solana | SVM | \$2 | SOL, USDC, USDT, USDe, TRUMP |
+| Bitcoin | BTC | \$9 | BTC |
+| Tron | TVM | \$9 | USDT |
+| HyperEVM | EVM | \$2 | HYPE, USDC, USDe, stHYPE, UBTC, UETH |
+| Abstract | EVM | \$2 | ETH, USDC, USDT |
+| Monad | EVM | \$2 | MON, USDC, USDT |
+| Ethereal | EVM | \$2 | USDe, WUSDe |
+| Katana | EVM | \$2 | AUSD |
+| Lighter | EVM | \$2 | USDC |
-Transfer Crypto is compatible with a range of supported tokens and chains:
+
+## Next Steps
+
+
-
-
-
-
-***
-
-## Clarifications
-
-In rare cases, circumstances occur that were not foreseen at a market’s creation and it becomes necessary to clarify rules after trading has begun. In these cases Polymarket may issue an “Additional context” update to the rules.
-
-
-
+
-
-
-
-
-
-Simply put, the more you help the market by placing good orders, the more rewards you earn!
-
-## Seeing Rewards in the Order Book
-
-### Viewing Rewards
-
-The total rewards, max spread, and minimum shares required to earn rewards vary by market. You can view the rewards for a given market in its Order Book.
-
-* On the Polymarket order book, you can hover over the Rewards text to see the amount of rewards available in total on each market.
-
-* The blue highlighted lines correspond to the max spread — meaning the farthest distance your limit order can be from the midpoint of the market to earn rewards.
-
-* In the example below, because the max spread is 3c, every order within 3c of the midpoint is eligible for rewards. If the midpoint is \< \$0.10, you need to have orders on both sides to qualify.
-
-
-
-
-
-### Earning Rewards
-
-When your orders are earning rewards you’ll see a blue highlight around the clock icon, as shown below:
-
-
-
-
-
-## Learn more
-
-Rewards are paid out automatically every day at \~midnight UTC. Your history on your portfolio page will reflect rewards paid to your address.
-
-To read more about the specific calculations and formulas that determine rewards, visit our [Liquidity Rewards Documentation](/developers/market-makers/liquidity-rewards).
+


+
+
+