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

# 上市与退市

> 一个市场如何开放、会经历哪些状态、如何被下线，以及公告发布在哪里。

上市一个市场、改变它的状态、让它退役，都是**协议操作**，不是在别处进行的管理动作。它们在区块内执行，排在[区块优先级](/zh/trading/tx-sequencing)的最前面，效果落在某个具体的区块高度上，看得见，而不是先宣布、再不透明地生效。

这对做集成的人有一个实际影响：市场状态是链上状态，而且是权威的。客户端不需要别人告诉它某个市场开了——它自己能看见。

<h2 id="the-states-a-market-can-be-in">
  市场可能处于的状态
</h2>

市场从来不只是“开”或“关”。它带着一个状态，精确决定订单簿会接受哪些订单。

<div className="dg" data-dg="market-states">
  <div className="dg-c" style={{aspectRatio:"720 / 354"}}>
    <svg className="dg-w" viewBox="0 0 720 354" aria-hidden="true">
      <path className="dg-wire" d="M 154.00 153.00 L 175.60 153.00" />

      <path className="dg-head" d="M 182.00 153.00 L 175.60 157.40 L 175.60 148.60 Z" />

      <path className="dg-wire dg--green" d="M 340.00 153.00 L 361.60 153.00" />

      <path className="dg-head dg--green" d="M 368.00 153.00 L 361.60 157.40 L 361.60 148.60 Z" />

      <path className="dg-wire dg--sky" d="M 526.00 153.00 L 554.05 65.10" />

      <path className="dg-head dg--sky" d="M 556.00 59.00 L 558.25 66.43 L 549.86 63.76 Z" />

      <path className="dg-wire dg--yellow" d="M 526.00 153.00 L 549.60 153.00" />

      <path className="dg-head dg--yellow" d="M 556.00 153.00 L 549.60 157.40 L 549.60 148.60 Z" />

      <path className="dg-wire dg--orange" d="M 526.00 153.00 L 554.05 240.90" />

      <path className="dg-head dg--orange" d="M 556.00 247.00 L 549.86 242.24 L 558.25 239.57 Z" />

      <path className="dg-wire dg--orange" d="M 556.00 247.00 L 532.40 247.00" />

      <path className="dg-head dg--orange" d="M 526.00 247.00 L 532.40 242.60 L 532.40 251.40 Z" />
    </svg>

    <div className="dg-b" style={{left:"0.0000%",top:"33.8983%",width:"20.8333%",height:"18.6441%"}}><span className="dg-t">Initializing</span><span className="dg-s">订单簿什么都不接受</span></div>
    <div className="dg-b dg--yellow" style={{left:"25.8333%",top:"33.8983%",width:"20.8333%",height:"18.6441%"}}><span className="dg-t">PreOpen</span><span className="dg-s">只挂单订单，且仅限白名单账户</span></div>
    <div className="dg-b dg--green" style={{left:"51.6667%",top:"33.8983%",width:"20.8333%",height:"18.6441%"}}><span className="dg-t">Active</span><span className="dg-s">全部接受</span></div>
    <div className="dg-b dg--sky" style={{left:"77.7778%",top:"7.3446%",width:"22.2222%",height:"18.6441%"}}><span className="dg-t">PostOnly</span><span className="dg-s">所有吃单订单都被拒绝</span></div>
    <div className="dg-b dg--yellow" style={{left:"77.7778%",top:"33.8983%",width:"22.2222%",height:"18.6441%"}}><span className="dg-t">Paused</span><span className="dg-s">什么都不接受</span></div>
    <div className="dg-b dg--orange" style={{left:"77.7778%",top:"60.4520%",width:"22.2222%",height:"18.6441%"}}><span className="dg-t">ReduceOnly</span><span className="dg-s">只接受减少现有仓位的订单</span></div>
    <div className="dg-b dg--orange" style={{left:"51.6667%",top:"60.4520%",width:"20.8333%",height:"18.6441%"}}><span className="dg-t">FinalSettlement</span><span className="dg-s">什么都不接受 — 终态</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"84.7458%",width:"100.0000%"}}><div className="dg-s">PostOnly 和 Paused 可以回到 Active。ReduceOnly 不能——它是下线路径。</div><div className="dg-n">市场状态是链上状态，在区块优先级的最前面执行。客户端不需要别人告诉它某个市场开了——它自己能看见。</div></div>
  </div>
</div>

| 状态                        | 订单簿接受什么              |
| ------------------------- | -------------------- |
| **Initializing**（初始化）     | 什么都不接受。市场已存在，但未开放    |
| **PreOpen**（预开放）          | 只挂单订单，且仅限白名单账户       |
| **Active**（活跃）            | 全部接受                 |
| **PostOnly**（只挂单）         | 只接受只挂单订单——所有吃单订单都被拒绝 |
| **ReduceOnly**（只减仓）       | 只接受减少现有仓位的订单         |
| **Paused**（暂停）            | 什么都不接受               |
| **FinalSettlement**（最终结算） | 什么都不接受。退市市场的终态       |

这些不是刻度盘上的严重程度等级。每一个都是针对不同问题的不同答案。

**PreOpen** 让市场先有订单簿，再有第一笔成交。白名单挂单方可以报价，而由于只接受只挂单订单，订单簿搭建期间没有任何订单能跨价成交。等市场开放，两侧已经有报价，不会开在空簿上、由第一个吃单方定价。

**PostOnly** 停掉吃单，不停报价。它对应的是“此刻价格发现失效了”——挂单方仍可调整报价，但没人能吃掉一个过期的报价。

**ReduceOnly** 只出不进。市场正在下线，或者风险特征变化到不再适合继续增加敞口，就会进这个状态。

<h2 id="how-a-market-opens">
  市场如何开放
</h2>

上市是一次配置操作，把[合约规格](/zh/trading/markets)写到链上：最小价格变动单位、最小数量单位、指数构成、杠杆档位、资金费率参数、仓位上限和价格带。这个市场的行为，没有哪一部分落在那条记录之外。

规格在市场接受任何订单之前就写好了，从存在的那一刻起就能读。轮询市场列表的客户端会先看到这个新市场，连同它的完整参数，然后市场才变得可交易；中间那段时间差，正是集成方给自己做配置的窗口。

上市操作可以加**多签要求**：操作必须带上满足签名门槛的证明，否则执行会把它拒掉。这一条由协议在执行时强制，不靠外围流程，所以它不是一条谁想绕就能绕的政策。

<h2 id="how-a-market-is-retired">
  市场如何退役
</h2>

退市是一段反向流程，不是一个开关。市场先转入 **ReduceOnly**，已开仓位可以平掉，新的敞口建不起来，然后才转入 **FinalSettlement**。

这个顺序是操作规程，状态机自己并不强制——但关键恰恰在顺序上。仓位还开着就直接关掉市场，持仓者会背上一个没法从订单簿退出的敞口，一次计划中的运维变更就变成了一次按协议指定价格的强制结算。先过一遍 ReduceOnly，等于给每个持仓者一次按市场价平仓的机会。

最终结算时仍未平仓的仓位怎么结，取决于具体合约，会连同退市通知和通知期一起公布。

<Warning>
  退市通知是唯一一类需要你动手的公告。如果你在一个即将进入 ReduceOnly 的市场里有仓位，自己挑价格平掉，和交给最终结算流程处理，结果有实质差别。通知期怎么运作，见[规则变更](/zh/programs/rule-changes)。
</Warning>

<h2 id="pre-market-contracts">
  盘前合约
</h2>

有些市场在标的还没有流动的现货市场时就已上市——比如代币上市之前，或股票发行之前。

在内核眼里它们是普通市场，在交易者眼里不是。[指数价格](/zh/trading/index-price)的来源更少、更薄，因而更容易被推动，也更容易跳空。规格上反映了这一点：更低的杠杆、更宽的资金费率上限、更紧的仓位限制。见[市场](/zh/trading/markets#pre-market-contracts)。

<h2 id="building-against-listings">
  面向上市做集成
</h2>

**反复枚举市场，不要只枚举一次。** 客户端只在启动时读一遍市场列表、之后再也不读，就会悄无声息地错过此后上市的一切。上市是常态化、持续发生的事。

**读取规格，不要把规格存下来。** 最小价格变动单位、杠杆档位、资金费率上限，在已上线的市场上照样会变。客户端手里攥着陈旧副本，提交的订单会被网络拒绝，算仓位大小时套的也是早已失效的限制。

**处理所有状态，不要只处理 Active。** 订单因市场状态被拒，不是你的订单有 bug——那是市场在告诉你它当前接受什么。把 PostOnly、ReduceOnly、Paused 当成彼此不同的东西来处理，正是“优雅降级的集成”和“对着墙不停重试的集成”之间的区别。

<h2 id="announcements">
  公告
</h2>

<Note>
  公告渠道自 **2026 年 9 月 20 日**公开测试网开始。在那之前，[私有测试网](/zh/protocol/architecture/network-status)上的市场上线与变更不发通知，因为那里的一切都不承载价值。
</Note>

每一份上市与退市通知都会包含：市场及其完整规格、生效区块或日期、给出的通知期，以及——对退市而言——仍未平仓仓位的结算办法。

<h2 id="where-to-go-next">
  后续阅读
</h2>

<CardGroup cols={2}>
  <Card title="市场" href="/zh/trading/markets">
    一份合约规格包含什么。
  </Card>

  <Card title="规则变更" href="/zh/programs/rule-changes">
    通知期，以及变更如何生效。
  </Card>

  <Card title="交易排序" href="/zh/trading/tx-sequencing">
    为什么系统操作排在区块最前面。
  </Card>

  <Card title="协议变更日志" href="/zh/protocol/roadmap/changelog">
    已发布内容的带日期记录。
  </Card>
</CardGroup>
