> ## Documentation Index
> Fetch the complete documentation index at: https://polymarketcn.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 條件代幣框架概覽

> 理解 Polymarket 的條件代幣系統和工作原理

<Callout type="success">
  還沒有帳號？[點擊這裡註冊 Polymarket](https://polymarket.com/?r=2026VIP) 並完成入金，才能用錢包私鑰為訂單籤名、實際成交。
</Callout>

<Warning>
  **法律合規提醒**：在使用 Polymarket 服務或 API 前，請確認您所在地區的法律規定。Polymarket 目前不支援比利時、法國、新加坡、泰國、中國大陸等地區，政策可能隨時變化。
</Warning>

條件代幣框架（Conditional Token Framework，CTF）是 Polymarket 的核心智能合約系統，它實現了預測市場的基礎機制。

## 什麼是條件代幣框架？

CTF 是一個基於以太坊的智能合約系統，允許創建、交易和結算與特定條件相關的代幣。這些代幣代表了預測市場中不同結果的所有權。

<CardGroup cols={2}>
  <Card title="拆分" icon="scissors">
    將 USDC 拆分成代表不同結果的代幣
  </Card>

  <Card title="交易" icon="exchange">
    在市場上交易這些結果代幣
  </Card>

  <Card title="合併" icon="layer-group">
    將完整的代幣集合合併回 USDC
  </Card>

  <Card title="贖回" icon="coins">
    市場結算後，用獲勝代幣兌換 USDC
  </Card>
</CardGroup>

## 核心概念

### 條件 ID（Condition ID）

每個預測市場問題對應一個唯一的條件 ID。這個 ID 基於以下信息生成：

* **Oracle 地址**：提供結果的預言機地址
* **問題 ID**：唯一標識這個問題
* **結果數量**：可能的結果數（對於二元市場是 2）

```solidity theme={null}
// 條件 ID 計算
conditionId = keccak256(
    abi.encodePacked(
        oracleAddress,
        questionId,
        outcomeSlotCount
    )
)
```

### 位置 ID（Position ID）

位置 ID 代表特定的結果組合。對於簡單的二元市場：

* **位置 1**：Yes 結果
* **位置 2**：No 結果

```solidity theme={null}
// 位置 ID 計算
positionId = keccak256(
    abi.encodePacked(
        collateralToken,  // USDC 地址
        conditionId,       // 條件 ID
        indexSet           // 結果索引集
    )
)
```

### ERC-1155 代幣

CTF 使用 ERC-1155 標準，允許在一個合約中管理多種代幣類型：

* **多代幣支援**：一個合約管理所有市場的所有代幣
* **高效批量操作**：可以批量轉移多種代幣
* **Gas 優化**：比 ERC-20 更省 Gas

## 工作流程

### 1. 創建條件

市場創建者準備條件：

```python theme={null}
# Python 偽代碼
condition = {
    'oracle': '0x...',           # Oracle 地址
    'question_id': '0x...',      # 問題 ID
    'outcome_count': 2           # Yes/No = 2 個結果
}

condition_id = prepare_condition(
    oracle=condition['oracle'],
    question_id=condition['question_id'],
    outcome_slot_count=condition['outcome_count']
)
```

### 2. 拆分抵押品

用戶將 USDC 拆分成條件代幣：

```python theme={null}
# 存入 100 USDC，獲得 100 個 Yes 代幣和 100 個 No 代幣
split_position(
    collateral_token='0x...USDC',
    condition_id=condition_id,
    partition=[1, 2],  # Yes 和 No
    amount=100 * 10**6  # 100 USDC（6位小數）
)
```

**結果**：

* 存入：100 USDC
* 獲得：100 Yes 代幣 + 100 No 代幣
* 總價值：100 USDC（始終守恆）

### 3. 交易代幣

用戶在市場上買賣代幣：

```python theme={null}
# 在 CLOB 上賣出 Yes 代幣
sell_order = {
    'token_id': yes_token_position_id,
    'price': 0.65,    # 以 0.65 USDC 賣出
    'size': 50        # 賣出 50 個
}
```

### 4. 合併代幣

持有完整代幣集的用戶可以合併回 USDC：

```python theme={null}
# 持有 50 個 Yes + 50 個 No = 可以合併成 50 USDC
merge_positions(
    collateral_token='0x...USDC',
    condition_id=condition_id,
    partition=[1, 2],
    amount=50 * 10**6
)
```

**結果**：

* 銷毀：50 Yes 代幣 + 50 No 代幣
* 獲得：50 USDC

### 5. 贖回代幣

市場結算後，獲勝代幣可以贖回：

```python theme={null}
# 假設 Yes 結果獲勝
# 持有 100 個 Yes 代幣可以贖回 100 USDC
redeem_positions(
    collateral_token='0x...USDC',
    condition_id=condition_id,
    index_sets=[1]  # Yes 的索引
)
```

**結果**：

* 銷毀：100 Yes 代幣
* 獲得：100 USDC
* No 代幣變為無價值

## 智能合約架構

### ConditionalTokens 合約

主合約地址（Polygon）：

```
0x4D97DCd97eC945f40cF65F87097ACe5EA0476045
```

主要函數：

| 函數                   | 描述          |
| -------------------- | ----------- |
| `prepareCondition()` | 創建新條件       |
| `splitPosition()`    | 拆分抵押品為代幣    |
| `mergePositions()`   | 合併代幣為抵押品    |
| `redeemPositions()`  | 贖回獲勝代幣      |
| `reportPayouts()`    | Oracle 報告結果 |

### CTF Exchange 合約

處理代幣交易的交換合約：

```
0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E
```

## 數學原理

### 價值守恆

條件代幣系統的核心原理是**價值守恆**：

```
Yes 代幣價值 + No 代幣價值 = 1 USDC
```

如果 Yes 代幣價格是 0.65 USDC，那麼 No 代幣價格必然是：

```
1 - 0.65 = 0.35 USDC
```

### 套利機會

當市場價格偏離時，套利者可以：

1. **價格和 > 1**：購買完整集合，拆分後分別賣出
2. **價格和 \< 1**：分别买入，合并后卖出

这种机制确保市场价格始终趋向有效。

## 优势

<CardGroup cols={2}>
  <Card title="資本效率" icon="chart-line">
    用戶只需鎖定與頭寸價值相等的資金
  </Card>

  <Card title="無需信任" icon="shield">
    完全鏈上，無需信任中介
  </Card>

  <Card title="可組合性" icon="cubes">
    可以與其他 DeFi 協議集成
  </Card>

  <Card title="透明度" icon="eye">
    所有操作完全透明且可驗證
  </Card>
</CardGroup>

## 使用場景

### 1. 做市商

做市商可以：

* 拆分 USDC 成代幣對
* 在兩邊提供流動性
* 從價差中獲利

### 2. 套利者

套利者可以：

* 監控價格和是否偏離 1
* 執行套利交易
* 幫助價格發現

### 3. 交易者

普通交易者可以：

* 直接在 CLOB 上交易
* 無需了解底層機制
* Polymarket 處理所有複雜性

## 與傳統預測市場的區別

| 特性   | 傳統預測市場 | CTF   |
| ---- | ------ | ----- |
| 託管   | 中心化託管  | 鏈上自託管 |
| 信任   | 需要信任平臺 | 無需信任  |
| 透明度  | 有限     | 完全透明  |
| 可審計性 | 困難     | 容易    |
| 結算   | 人工處理   | 自動化   |

## 安全性

CTF 合約已經過多次審計：

* **OpenZeppelin 審計**
* **ConsenSys Diligence 審計**
* **長期運行**：自 2020 年以來運行穩定

## 下一步

<CardGroup cols={2}>
  <Card title="拆分 USDC" icon="scissors" href="/api-tutorial/conditional-tokens/splitting">
    學習如何拆分 USDC
  </Card>

  <Card title="合併代幣" icon="layer-group" href="/api-tutorial/conditional-tokens/merging">
    學習如何合併代幣
  </Card>

  <Card title="贖回代幣" icon="coins" href="/api-tutorial/conditional-tokens/redeeming">
    市場結算後贖回
  </Card>

  <Card title="部署信息" icon="code" href="/api-tutorial/conditional-tokens/deployment">
    查看合約地址
  </Card>
</CardGroup>

## 參考資源

* [CTF 白皮書](https://docs.gnosis.io/conditionaltokens/)
* [Gnosis CTF 文檔](https://docs.gnosis.io/conditionaltokens/)
* [以太坊上的 CTF 合約](https://etherscan.io/address/0xC59b0e4De5F1248C1140964E0fF287B192407E0C)
