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

# Conditional Token Framework

> 为 Polymarket 仓位提供支持的链上代币机制

Polymarket 上的所有结果都使用 **Conditional Token Framework (CTF)** 进行代币化，这是由 Gnosis 开发的开放标准。理解 CTF 操作可以实现高级交易策略、做市和直接智能合约交互。

## 什么是 CTF

Conditional Token Framework 创建代表预测市场结果的 **ERC1155 代币**。每个二元市场有两种代币：

| 代币      | 兑换为         | 条件    |
| ------- | ----------- | ----- |
| **Yes** | \$1.00 pUSD | 事件发生  |
| **No**  | \$1.00 pUSD | 事件不发生 |

这些代币始终**完全抵押**——每对 Yes/No 代币都由锁定在 CTF 合约中的 \$1.00 pUSD 支持。

## 核心操作

CTF 提供三个基本操作：

<CardGroup cols={3}>
  <Card title="Split" icon="scissors" href="/trading/ctf/split">
    将 pUSD 转换为 Yes + No 代币对
  </Card>

  <Card title="Merge" icon="merge" href="/trading/ctf/merge">
    将 Yes + No 代币对转换回 pUSD
  </Card>

  <Card title="Redeem" icon="hand-holding-dollar" href="/trading/ctf/redeem">
    判定后将获胜代币兑换为 pUSD
  </Card>
</CardGroup>

## 代币流转

<Frame>
  <img src="https://mintcdn.com/polymarket-292d1b1b/FOMte3ewbG-LVy3k/images/core-concepts/token-flow.png?fit=max&auto=format&n=FOMte3ewbG-LVy3k&q=85&s=36f5a57946ac2b83136e17b6c06b358c" alt="" className="dark:hidden" width="1596" height="952" data-path="images/core-concepts/token-flow.png" />

  <img src="https://mintcdn.com/polymarket-292d1b1b/FOMte3ewbG-LVy3k/images/dark/core-concepts/token-flow.png?fit=max&auto=format&n=FOMte3ewbG-LVy3k&q=85&s=69d150ea49ffa18cd7f24689342b1bec" alt="" className="hidden dark:block" width="1596" height="952" data-path="images/dark/core-concepts/token-flow.png" />
</Frame>

## 代币标识符

每个结果代币都有一个唯一的 **position ID**（也称为 token ID 或 asset ID）。这些是通过三个步骤在链上计算的：

1. **`getConditionId(oracle, questionId, outcomeSlotCount)`** — oracle 是 [UMA CTF Adapter](https://github.com/Polymarket/uma-ctf-adapter)，`questionId` 是 UMA ancillary data 的哈希，`outcomeSlotCount` 对于二元市场是 `2`
2. **`getCollectionId(parentCollectionId, conditionId, indexSet)`** — `parentCollectionId` 对于顶级仓位是 `bytes32(0)`，`indexSet` 是位掩码（`0b01 = 1` 表示第一个结果，`0b10 = 2` 表示第二个）
3. **`getPositionId(collateralToken, collectionId)`** — 将 pUSD 地址与 collection 结合生成最终的 token ID

<Note>
  你可以通过 Markets API（Gamma API 上的 `GET /markets`）或 Events API（Gamma API 上的 `GET /events`）找到 token ID。`tokens` 数组包含两个结果代币 ID。手动计算它们仅在直接智能合约集成时需要。
</Note>

## 标准市场 vs Neg Risk 市场

Polymarket 有两种具有不同 CTF 配置的市场类型：

| 特性           | 标准市场              | Neg Risk 市场           |
| ------------ | ----------------- | --------------------- |
| CTF 合约       | ConditionalTokens | ConditionalTokens     |
| Exchange 合约  | CTF Exchange      | Neg Risk CTF Exchange |
| 多结果          | 独立市场              | 通过转换关联                |
| `negRisk` 标志 | `false`           | `true`                |

对于 neg risk 市场，额外的**转换**操作允许将一个 No 代币兑换为所有其他结果中的 Yes 代币。详见 [Negative Risk Markets](/advanced/neg-risk)。

## 合约地址

所有 Polymarket 智能合约地址详见[合约](/resources/contracts)。

## 资源

<CardGroup cols={2}>
  <Card title="CTF Source Code" icon="github" href="https://github.com/gnosis/conditional-tokens-contracts">
    Gnosis Conditional Tokens 智能合约
  </Card>

  <Card title="Code Examples" icon="code" href="https://github.com/Polymarket/examples/tree/main/examples">
    链上操作的 Python 和 TypeScript 示例
  </Card>
</CardGroup>

## 下一步

<CardGroup cols={3}>
  <Card title="Split Tokens" icon="scissors" href="/trading/ctf/split">
    从 pUSD 创建结果代币对
  </Card>

  <Card title="Merge Tokens" icon="merge" href="/trading/ctf/merge">
    将代币对转换回 pUSD
  </Card>

  <Card title="Redeem Tokens" icon="hand-holding-dollar" href="/trading/ctf/redeem">
    判定后领取奖金
  </Card>
</CardGroup>
