跳转至

wallet-cli asset issue

发行一个 TRC10 token,并锁定其 ICO 条款。

用法

wallet-cli asset issue --name <name> --supply <n> --price <trx>:<tokens>
                       --start <datetime> --end <datetime> --url <url>
                       [--abbr <s>] [--precision <0-6>] [--description <s>]
                       [--free-net-per-account <n>] [--public-free-net <n>]
                       [--freeze <amount>:<days> ...]
                       [--dry-run | (--sign-only | --build-only) [--expiration <ms>] | --wait [--wait-timeout <ms>]]
                       [--permission-id <n>] [options]

说明

创建一个 TRC10 token,并在同一笔交易中固定其 ICO 条款:总供应量、精度、TRX 兑 token 的比率、募集窗口,以及全部冻结批次。

此操作不可撤销。 发行费用会被燃烧——即链参数 getAssetIssueFee,目前约 1,024 TRX,可用 chain params 读取——而且一个账户终身只能发行一个 TRC10。此后只有描述、URL 和两项免费带宽限额可以修改(asset update),其他字段均为永久设置。因此,回执会完整显示最终写入的 token 定义。

--price 会按 --precision 换算。 链上把比率存为一对整数 trxNum / num,满足 num ÷ trxNum = tokens × 10^precision ÷ (trx × 10^6),并约分至最简。于是 --price 1:100--precision 6 下存为 trxNum=1, num=100,而在 --precision 0 下存为 trxNum=10000, num=1——同一个参数,链上比率却不同。约分后两个值都必须落在正 int32 范围内;否则命令以 invalid_value 失败,什么都不会广播。

金额(--supply--freeze)以完整 token 计——--supply 1000000000 --precision 6 在链上会成为 total_supply1000000000000000

日期按 UTC 解析,格式为 YYYY-MM-DDYYYY-MM-DD HH:mm:ss;只写日期表示 00:00:00--start 必须晚于本机在构建时的时钟(这是本地校验,不会去读节点),因此只写日期最早也要到明天——想当天开售,就把时间一并写上。链上还会在此之上再做一次自己的窗口校验。

以下条件会在广播前进行本地校验:--name--abbr 必须由 1–32 个可见 ASCII 字符组成(0x210x7E,不能包含空格或非 ASCII 字符);--url 必填且不超过 256 字节;--description 不超过 200 字节;--precision 为 0–6;--start 必须在未来,--end 必须晚于 --start;每个 --freeze 批次的金额和天数都必须大于零。命令还会预先读取账户状态;如果该账户已经发行过 TRC10,会在产生发行费用之前拒绝操作。其他边界由节点校验,包括冻结批次限制(getMinFrozenSupplyTimegetMaxFrozenSupplyTimegetMaxFrozenSupplyNumber,以及各批次总额与总供应量的关系)和免费带宽限额(getOneDayNetLimit)。违反任一限制时,节点会返回 transaction_rejected 及其原始错误信息。

该命令默认在交易提交后返回stage: "submitted"),不会等待确认。使用 --wait 可阻塞至交易确认或失败。命令需要一个账户;仅在需要签名的模式下,才必须通过 --password-stdin 提供 master password。--dry-run--build-only 不会解锁钱包,因此无需密码。仅观察账户无法签名,会返回 watch_only_no_signer

Ledger 的 TRON 应用无法对 TRC10 发行类合约签名。Ledger 账户可以做试运行或构建未签名的 hex,但签名模式会在与设备交互之前就以 ledger_unsupported 失败。

选项

选项 说明
--name <name> 必填。 token 名称,1–32 个可见 ASCII 字符
--supply <n> 必填。 总供应量,以完整 token 计,> 0
--price <trx>:<tokens> 必填。 ICO 比率,完整 TRX 兑完整 token(如 1:100);两侧都必须 > 0,按 --precision 换算
--start <datetime> 必填。 ICO 开始时间,UTC;必须在将来
--end <datetime> 必填。 ICO 结束时间,UTC;必须晚于 --start
--url <url> 必填。 项目页面,非空,≤ 256 字节
--abbr <s> token 缩写;字符规则同 --name(默认:空)
--precision <0-6> 小数位数(默认 0
--description <s> 简短描述,≤ 200 字节(默认:空)
--free-net-per-account <n> 每位持有人可用的免费带宽(默认 0
--public-free-net <n> 持有人共享的免费带宽池(默认 0
--freeze <amount>:<days> 可重复。 冻结批次;金额以完整 token 计,例如 100000000:30
--dry-run 只构建和估算,不签名/不广播;与 --sign-only / --build-only 互斥
--sign-only 只签名不广播,输出已签名的 hex;与 --dry-run / --build-only 互斥;配合 --expiration 使用
--build-only 构建并估算,输出未签名的 hex;与 --dry-run / --sign-only 互斥;配合 --expiration 使用
--expiration <ms> 交易过期时间(毫秒),最大 86400000(24 小时);仅可与 --sign-only--build-only 同用;省略时使用节点默认值(约 60 秒)
--permission-id <n> 用于签名的权限组(0=owner,1=witness,2-9=active);默认 0
--wait / --wait-timeout <ms> 广播后轮询直到已确认/失败(上限默认取配置 waitTimeoutMs,内置 60000)
--password-stdin 从 stdin(fd 0)读取 master password

此外还有全局选项

示例

示例中的 $PW 是你的 master password(来自环境变量、密码管理器等),通过 --password-stdin 从 stdin 传入。

echo "$PW" | wallet-cli asset issue --name MyToken --abbr MTK --supply 1000000000 --price 1:100 --precision 6 \
  --start 2026-08-01 --end 2026-08-31 --url https://mytoken.io --description "Demo TRC10" \
  --freeze 100000000:30 --freeze 50000000:90 --network tron:3448148188 --wait --password-stdin
✅ Asset issued
  Asset             MyToken  (id 1000123)
  Issuer            TQkXm4vN...5Zt7Uw
  Total supply      1,000,000,000
  Precision         6
  Price             1 TRX = 100 MyToken
  ICO start time    2026-08-01 00:00:00 UTC
  ICO end time      2026-08-31 00:00:00 UTC
  Url               https://mytoken.io
  Description       Demo TRC10
  Free net/account  0
  Public free net   0
    100,000,000     for 30 days
    50,000,000      for 90 days
  TxID              7d1...
  Block             #57,883,010
  Fee               1,024 TRX
  Status            success
echo "$PW" | wallet-cli asset issue --name MyToken --abbr MTK --supply 1000000000 --price 1:100 --precision 6 \
  --start 2026-08-01 --end 2026-08-31 --url https://mytoken.io --description "Demo TRC10" \
  --freeze 100000000:30 --freeze 50000000:90 --network tron:3448148188 --wait --password-stdin -o json
{"schema":"wallet-cli.result.v1","success":true,"command":"asset.issue","data":{"kind":"asset-issue","stage":"confirmed","txId":"7d1...","confirmed":true,"blockNumber":57883010,"feeSun":1024000000,"netUsed":312,"netFeeSun":0,"failed":false,"assetId":"1000123","issuerAddress":"TQkXm4vN...","name":"MyToken","abbr":"MTK","totalSupply":"1000000000000000","precision":6,"price":"1:100","trxNum":1,"num":100,"startTime":1785542400000,"endTime":1788134400000,"url":"https://mytoken.io","description":"Demo TRC10","freeAssetNetLimit":0,"publicFreeAssetNetLimit":0,"frozenSupply":[{"amount":"100000000000000","days":30},{"amount":"50000000000000","days":90}]},"meta":{"durationMs":6720,"warnings":[]},"chain":{"family":"tron","network":"tron:3448148188","chainId":"3448148188"}}

输出

data 随阶段而变:

阶段 字段
默认(提交) kind: "asset-issue"stage: "submitted"txId,以及下面列出的 token 定义字段(不含 assetId
--wait(已确认) 以上内容,外加 stage: "confirmed"confirmed(boolean)、blockNumber、返回时的扁平结算字段(feeSunenergyUsednetUsedenergyFeeSunnetFeeSun)、failed,以及 assetId——由链分配,因此只有确认后才可知

定义字段:issuerAddressnameabbrtotalSupply(原始十进制字符串)、precisionprice(由链上存储的数对反推出来的 trx:tokens 字符串,因此它是约分后的比率,未必等于你输入的内容——--price 2:200 --precision 6 会报告为 "1:100")连同存储的 trxNum / num 对、startTime / endTime(epoch 以来的毫秒数)、urldescriptionfreeAssetNetLimitpublicFreeAssetNetLimit,以及 frozenSupply[]amount 为原始十进制字符串,days)。确认后的资源字段是扁平的;没有 resource 对象,带宽字段叫 netUsed,不是 netUsage

退出码

0 已提交(早退模式下为已构建/已签名) · 1 执行失败(already_issued_asset——该账户已经发行过一个;transaction_rejected——节点拒绝了它,例如余额不足以支付发行费用,或触犯了链上的某项边界;watch_only_no_signerledger_unsupportedauth_failed) · 2 用法错误(missing_option——缺少必填参数;invalid_asset_name——名称或缩写不在 1–32 个可见 ASCII 字符范围内;invalid_value——比率、精度、供应量或冻结批次格式错误或非正数,日期格式错误,--start 不在未来,--end 不晚于 --start,或约分后比率超出 int32)。

另请参见

asset update · asset info · asset participate · chain params · 脚本安全