发行 TRC-721 Token

使用 TronLink 和 TronScan 部署 TRC-721 系列并铸造 NFT 的分步演练。

📘

前置阅读

本文演示如何在 TRON 上部署 TRC-721 系列并铸造第一枚 NFT,工作流基于 TronLink(浏览器钱包)与 TronScan(带合约编译 / 部署能力的区块浏览器)。

完成后,将得到:

  • 在 Shasta 测试网上部署的 TRC-721 合约。
  • 至少一个已铸造的 NFT。
  • 在 TronScan 上登记的系列,使钱包可以发现它。
  • 在 TronLink 钱包中可见的 NFT。

准备好在主网部署时,将文中所有 shasta.tronscan.org 替换为 tronscan.org

步骤 1——准备 TRON 账户

安装 TronLink 浏览器扩展,确保账户具备足够的质押能量,或保留足够 TRX 以便在资源不足时燃烧 TRX 支付资源成本。标准部署通常需要较高能量预算;保持充足余额可为潜在重试提供缓冲。测试网环境可通过 Shasta 测试网水龙头获取测试 TRX。

步骤 2——定制合约

TRC-721 合约示例开始。文件底部是可部署的合约:

contract TRC721Token is TRC721, TRC721Enumerable, TRC721MetadataMintable {
    constructor() public TRC721Metadata("Your Token Name", "YTN") {}
}

"Your Token Name" 改为系列名称,将 "YTN" 改为系列简称。保存文件。

步骤 3——使用 TronScan 部署合约

TronScan 内置合约编译器,可在一个界面中完成 Solidity 编译和部署。(偏好命令行的,也可使用 TronBox 或 TronIDE。)

步骤 3.1——连接 TronLink

打开编译器页面,点击连接钱包。在 TronLink 中批准连接。

步骤 3.2——上传合约代码

将步骤 2 中定制的合约粘贴到编辑器中。编辑器接受单文件源——参考实现本身已是一个独立的单文件。

步骤 3.3——编译

设置编译器版本 0.5.10。参考合约使用 pragma solidity 0.5.10,在未经修改的情况下无法在更新的工具链上编译。

点击编译。成功编译会生成合约列表。若编辑器显示错误,请检查最常见的原因:

  • 编译器版本不匹配:必须使用上述 0.5.10。
  • 缺少依赖文件:源码 import 的其他合约未上传。
  • 源码大小限制:拆分合约或删除未使用的库。

在编辑器中修复问题后重新编译。

步骤 3.4——部署

从编译后的合约列表中选择 TRC721Token(可部署的复合合约——而非其父合约之一)。

点击部署。TronLink 会弹出签名提示。查看能量和费用估算,然后接受。交易确认后,TronScan 返回已部署的合约地址。

复制并保存合约地址——后续每个步骤都需要用到它。

936

步骤 4——铸造第一个 NFT

使用步骤 3.4 中的地址在 TronScan 上打开已部署的合约。切换到合约 > 写合约标签页。

找到 mintWithTokenURI 函数。填写三个参数:

参数填写内容
to将拥有铸造 NFT 的地址。使用自己的地址即可铸造给当前账户。
tokenId唯一的整数标识符;系列中每个 Token 必须有不同的 tokenId。
tokenURI指向描述该 NFT 的 JSON 元数据文件的 URL(见下文)。
📘

元数据 URI

tokenURI 应指向至少包含 namedescriptionimage 字段的 JSON 文件。对于元数据,请参见将 NFT 元数据上传到 BTFS。关于 JSON 结构,请参见 TRC-721——元数据扩展

🚧

仅部署者可铸造

合约默认使用 MinterRole 模式,因此只有部署合约的地址可以铸造。要允许其他铸造者,请参见合约示例中的 MinterRole 逻辑。

点击发送。TronLink 提示签名,接受。返回值为 true 表示铸造成功。

步骤 5——在 TronScan 上登记系列

登记系列可使其对钱包和区块浏览器可见。若不进行此步骤,持有者需要手动添加合约地址才能看到其 Token。

打开 TronScan Token 创建页面,选择 TRC721 作为 Token 类型。

填写登记表单:

  • 合约地址:步骤 3.4 中的地址。
  • 名称和符号:必须与合约构造函数中的值匹配。
  • Token 图标:代表该系列的小型 PNG/JPG 图片。
  • 网站、社交链接和描述:可选,但有助于提高可发现性。

使用部署者地址签名

TronScan 强制要求只有部署合约的账户才能登记它。提交前请在 TronLink 中切换到部署者账户。

提交表单。TronLink 提示签名,接受。成功消息确认登记完成。

步骤 6——在 TronLink 中查看系列

在手机上打开 TronLink 应用(或浏览器扩展的资产标签页)。

  1. 点击**+ 添加资产**按钮。

  2. 按合约地址搜索。

  3. 粘贴 TRC-721 合约地址并确认。

该系列现在出现在你的资产列表中。

点击它可查看你持有的具体 NFT。

在任意 NFT 详情页使用发送将其转账到另一个地址。

成功确认表示 NFT 已成功转账。


后续操作

  • 铸造更多 NFT:使用不同的 tokenIdtokenURI 值重复步骤 4。
  • 设置铸造访问控制:默认只有部署者可铸造。参见合约示例中的 MinterRole 逻辑以添加其他铸造者。
  • 在 BTFS 上托管元数据:参见将 NFT 元数据上传到 BTFS,提高元数据托管的去中心化程度。
  • 主网部署前审计:在部署生产系列前,对合约进行审计。参见安全最佳实践

相关资源