ZooBC 维基
代币与市场

小数位数与步长

在 ZooBC 上,无论是 ZBC 还是任何代币,每个余额都以同一个原子单位计数:亿分之一(10⁻⁸)。代币的小数位数是发行时选定的一个 0 到 8 之间的数,它不会改变这个单位。它表示代币使用八个小数位中的几位,因而也决定了该代币可转移的最小数量。

步长

转移代币的每个数量都必须是其步长的整数倍:

step = 10^(8 − decimals) atomic units

代币的总供应量也必须是步长的整数倍。比步长更细的数量会被拒绝。

2 位小数代币的八个小数位:前两位在使用,后六位始终为 0;步长为 1,000,000 个原子单位,即 0.01 个代币
2 位小数代币的八个小数位:前两位在使用,后六位始终为 0;步长为 1,000,000 个原子单位,即 0.01 个代币
小数位数步长(原子单位)最小数量
0100,000,0001
110,000,0000.1
21,000,0000.01
3100,0000.001
410,0000.0001
51,0000.00001
61000.000001
7100.0000001
810.00000001

整数单位与细分单位

由于原子单位从不改变,无论小数位数是多少,一个完整代币总是 100,000,000 个原子单位。钱包会把用户输入的数换算成原子单位:12.5 个代币是 1,250,000,000 个原子单位,对任何至少有 1 位小数的代币都是有效数量。

因此,小数位数描述的是代币可以被分割得多细:

  • 0 位小数的代币只能按整数单位转移,如票或座位;
  • 8 位小数的代币可细分到 0.00000001,与 ZBC 相同。

十四种创世币都有 8 位小数。

小数位数在哪里起作用

  • 订单簿市场只接受使用全部 8 位小数的代币:市场交易对中的两种资产都需要 8 位小数(见 市场与订单)。
  • 兑换报价接受任何小数位数(见 兑换报价),因此小数位数较少的代币可以在那里交易。
  • 以代币支付的手续费所交出的单位会向上取整到该代币的步长(见 发行代币)。

所以,希望代币在订单簿上交易的发行方,应在发行时选择 8 位小数。

另见