For the complete documentation index, see llms.txt. This page is also available as Markdown.

资产发行协议

比特币主网本身只原生理解 BTC 与 UTXO。Ordinals、Runes、BRC20、ORDX 等资产协议,都把资产语义写入 BTC 交易、脚本、铭文、sat range 或协议事件中。Indexer 的职责不是发明这些资产,而是把它们从链上事实中解析出来,形成统一、可查询、可复核的资产状态。

因此,资产发行协议应放在 Indexer 下面理解:它们是 Indexer 需要支持和统一表达的协议族。ORDX 是 SAT20 独自设计的聪绑定资产协议,但它不是唯一资产协议;聪网需要同时服务 BTC 主网上已经存在和未来出现的多种资产。

Indexer 支持的主要资产类型

协议 / 资产类型
核心语义
Indexer 需要表达什么

BTC

比特币原生 UTXO 资产

地址 UTXO、金额、确认数、花费状态、mempool / reorg 状态

Ordinals

基于 sat 序号和 inscription 的数字对象

sat range、inscription、owner、所在 UTXO、转移历史

Runes

BTC L1 上的同质化资产协议

etching、mint、transfer、余额、UTXO 归属和有效性

BRC20

基于 inscription 的 deploy / mint / transfer 资产协议

ticker、deploy、mint、transfer inscription、有效/无效 transfer、地址余额

ORDX

SAT20 设计的聪绑定资产发行协议

ticker、deploy、mint、绑定聪、解绑、冻结、UTXO 归属和 sat range

STP 和 SatoshiNet 通过 Indexer 确认资产事实,而不是直接猜测资产。资产进入通道前,客户端必须先通过 L1 indexer 确认目标 UTXO 中的资产协议、数量、有效性和确认状态。资产进入聪网后,L2 indexer 继续追踪 ascend、descend、enUTXO、通道和合约状态。

统一表达原则

Indexer 对不同资产协议应尽量提供统一的查询语义:

  1. 资产标识:协议、ticker / rune id / inscription id / asset name。

  2. 资产数量:按协议精度表达,不能丢失 divisibility。

  3. 承载位置:txid、vout、sat range、address、layer。

  4. 有效性:协议事件是否有效,是否已被后续事件消费或失效。

  5. 确认状态:mempool、confirmations、height、reorg 风险。

  6. 跨层状态:是否已经 ascend 到聪网,是否已经 descend 回 BTC L1。

钱包、交易平台、STP 客户端和 AI Agent 都应基于这些字段做判断,而不是只依赖单个余额字段。

ORDX 协议

ORDX 是 SAT20 体系中的聪绑定资产发行协议。它的核心思想是:资产不是独立存在的账户余额,而是绑定在可识别、可追踪的聪上。聪在哪里,资产就在哪里;聪属于谁,资产就属于谁。

核心属性

ORDX 资产继承聪的几个关键属性:

  1. 聪不可凭空销毁,因此绑定在聪上的资产也不能在协议外随意消失。

  2. 聪的序号使每一聪具备可识别性,资产可以绑定到特定聪或特定聪集合上。

  3. 聪在 UTXO 中流动,资产也随 UTXO 流动。

  4. 聪的非均质化让资产天然具备 SFT 属性。

  5. 资产发行、铸造、解绑、冻结等状态都应由 indexer 从 BTC L1 交易中复算。

ORDX 与账户模型资产不同。钱包和交易平台不能只看地址余额,还必须理解承载资产的 UTXO、sat range、绑定数量和协议状态。

基础能力

ORDX 依赖两类基础能力:

  1. 识别和跟踪聪:确定某个 UTXO 中包含哪些 sat range,某个聪当前位于哪里。

  2. 在聪上写入和读取协议数据:通过铭文或 OP_RETURN 表达 deploy、mint、unbind、freeze 等协议事件。

Indexer 是 ORDX 的事实计算层。它负责解析 BTC L1 交易,判断协议事件是否有效,并向钱包、浏览器、STP 客户端和交易平台提供可查询结果。

Deploy

deploy 用于部署一个 ORDX ticker。

字段
必填
含义

p

协议名,固定为 ordx

op

指令,固定为 deploy

tick

资产名称;通常为 3 个或 5-16 个字符,4 字符名称为 BRC20 保留

lim

单次 mint 上限,默认 10000;特殊 sat 资产默认 1

n

每聪绑定的 token 数量,默认 1,最大 65535

selfmint

项目方或持有者自铸比例

max

最大供应量

block

允许 mint 的高度区间

attr

对可绑定聪的属性要求

des

描述信息

示例:

部署规则应至少包括:

  1. ticker 名称未被使用。

  2. 如果设置 block,deploy 确认高度必须早于 mint 起始高度足够区块。

  3. 字段格式、数量上限、名称长度和属性条件必须通过 indexer 校验。

Mint

mint 用于铸造已经部署的 ticker。

字段
必填
含义

p

协议名,固定为 ordx

op

指令,固定为 mint

tick

已部署资产名称

amt

本次 mint 数量,默认等于 lim,不能超过 lim

sat

当 deploy 设置 sat 属性要求时,指定满足条件的聪

示例:

Mint 校验应至少包括:

  1. ticker 已经部署。

  2. amt 不超过单次上限。

  3. 总供应量不超过 max

  4. 如果有 block,mint 高度位于允许区间内。

  5. 如果有 selfmint,按 selfmint 规则校验铸造权限和额度。

  6. 如果有 attrsat,目标聪满足稀有度、尾零或其他扩展条件。

ORDX v2 指令

ORDX v2 在兼容旧版本的基础上,增加了更适合 L2 流通和受控资产场景的能力。

数据写入方式

v2 支持通过 OP_RETURN 写入协议数据:

OP_RETURN 让部分协议事件表达更简洁,也更便于 indexer 直接解析。

Unbind

unbind 将指定 UTXO 输出中的某个 ORDX ticker 与聪解绑。该操作是永久的,只能由资产 owner 发起。

规则:

  1. 输入包含需要解绑的目标 UTXO。

  2. 输出指定目标 vout。

  3. OP_RETURN 内容指定 ticker 与 vout。

  4. 该 vout 中指定 ticker 的资产全部解绑,其他资产类型不受影响。

Freeze / Unfreeze

freezeunfreeze 面向稳定币等受控资产场景,用于地址级权限控制。

规则:

  1. 冻结目标是 ticker + address + height

  2. 冻结高度由指令声明,且指令确认高度必须与冻结高度接近。

  3. 被冻结地址上该 ticker 的现有资产和后续流入资产都视为冻结资产。

  4. 冻结资产不可作为该 ticker 的有效可转移资产使用。

  5. 如果底层 BTC UTXO 被花费,冻结资产不会随输出转移,而是在协议层失效。

  6. 解冻后,该地址上仍有效的绑定资产可以正常转移;已经因冻结花费而失效的资产不会恢复。

发起权限:

  1. 只有满足协议规则的受控 ticker 才能被冻结或解冻。

  2. 通常仅允许该 ticker 的当前 deploy owner 发起。

与 STP 和聪网的关系

资产进入聪网时,必须先由 L1 indexer 确认其协议类型、数量、有效性和所在 UTXO。STP splicing-in 只会让用户明确指定的一种资产进入聪网;如果一个 UTXO 同时携带多种资产,未指定资产不会被 ascend。

ORDX 必然绑定聪。进入聪网时,客户端必须根据资产数量和 bindingSat 计算需要多少聪。ORDX mint 结果中可能同时包含 ordinals NFT 与 ORDX ticker 资产;当前 STP 不把 ordx:o 类型资产 ascend 到聪网,客户端和 indexer 应把它作为不进入聪网的附带对象处理。

BRC20 和 Runes 在聪网上不需要绑定聪,但在 BTC L1 上仍受各自协议和比特币输出规则约束。STP 客户端和 Agent 不能把 L2 的 0 聪资产 UTXO 规则套用到 L1。

相关服务

ORDX 可以扩展出名字服务、KV 数据服务、SFT/NFT/FT/DID 等应用形态。但这些应用都应建立在同一个基础上:资产事实由 BTC L1 交易和 indexer 复算,资产控制权由 UTXO 所有权决定。

Last updated