转移 ARC-20
构建一笔把每个单位都放到你预期位置、且不销毁任何价值的转移。
Protocol behavior Verified 2026-08-31
Describes the Atomicals protocol itself at the pinned reference revision. It does not promise that any product exposes it.
- Page ID
-
guides/transfer-arc20 - Normative authority
- Executed source code at a pinned revision
- Networks
- mainnet
- Documentation version
- 2026.08
- Audience
- everyone, holder
- Owner
- bitcoin-universe-docs
- Sources
-
- Atomicals ElectrumX
at
v1.5.2.0 - Atomicals JavaScript CLI
at
1333565efbfe
- Atomicals ElectrumX
at
- Known limitations
-
- Universe 的可见转移界面不会根据金额字段构建面向收款人的部分分配或着色找零。请使用以 outpoint 和输出面值工作的兼容构建器。
- 支持的网络:mainnet。
- 状态:协议行为。
- 你需要一个以 outpoint 和聪面值工作的钱包或构建器,而不是一个金额输入框。
| 位置 | 内容 |
|---|---|
| 输入 0 | 着色批次 |
| 输入 1 及之后 | 用于手续费的基数输入 |
| 输出 0 | 收款方,大小精确等于你要发送的单位数 |
| 输出 1 | 着色找零,大小精确等于余额 |
| 输出 2 | 基数找零,如果有的话 |
- 列出你的着色 outpoint,并选择要花费的批次。
- 确定发送数量。这个数字同时也是输出 0 的聪面值。
- 计算余额:批次面值减去发送数量,就是输出 1 的聪面值。
- 在分配可视化工具中建模确切的输入与输出组合。
- 确认销毁数量为零。
- 添加用于手续费的基数输入,并在末尾添加基数找零输出。
- 在包含手续费输入与输出的情况下重新建模。销毁数量必须仍为零。
- 构建交易,并保持输入与输出的顺序。
- 将钱包提示与你的模型逐行比对。
- 签署并广播。
为什么需要第七步
Section titled “为什么需要第七步”添加手续费输入或找零输出会改变输出集合,而分配是按顺序遍历输出的。在钱包添加找零之前干净的转移, 之后可能就会销毁价值。
展示风险的两个向量
Section titled “展示风险的两个向量”| Case | Coloured inputs | Result per output | Burned | Clean |
|---|---|---|---|---|
A remainder smaller than the change output burns dust-remainder-burns | 1200 units at input 0 | out 0: 1000 sats to 1000 units; out 1: 200 sats to 200 units | none | yes |
A change output larger than the remainder burns it change-output-too-large | 1200 units at input 0 | out 0: 1000 sats to 1000 units; out 1: 546 sats to 0 units | 200 units of TOKENA | no |
意图相同、批次相同、发送数量相同。唯一的差别是找零输出的大小,而其中一种会销毁 200 个单位。
一笔比特币手续费,从基数输入支付。普通转移不需要 commit 与 reveal 组合,也不需要计算。
- 钱包不允许以聪设定输出面值:换一个构建器。
- 钱包会重排输出:换一个构建器。顺序即含义。
- 销毁数量不为零:调整输出大小,不要继续。
确认、等待索引、读取资产位置,并检查记录的销毁数量。 参见验证一笔交易。