使用 TronWeb 和 TronBox 部署 TRC-20 代币
在 TRON 上部署 TRC-20 代币可让您创建与 TronLink、SunSwap 以及支持自定义 TRC-20 列表的交易所兼容的可替代资产。标准镜像 ERC-20 — TVM 上的 Solidity 以及 TronBox 或 TronWeb 部署脚本。
本指南从合约代码到主网部署和TronScan验证。
TRC-20 要求
最小接口(参见TRON上的Solidity):
name()、symbol()、decimals()totalSupply()、balanceOf(address)transfer(address,uint256)、approve(address,uint256)、transferFrom(...)- 活动:
Transfer、Approval
使用适用于 TRON 工具链的 OpenZeppelin ERC20 来生产代币。
使用 TronBox {#tronbox} 设置项目
npm install -g tronbox tronbox init
结构:
contracts/ MyToken.sol migrations/ 2_deploy_token.js tronbox.js
在 tronbox.js 中配置网络 — Shasta 和主网 fullHost 指向 TronGrid。
完整的 TronBox 参考:TronBox 智能合约。
合约示例
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor(uint256 initialSupply) ERC20("My Token", "MTK") {
_mint(msg.sender, initialSupply * 10 ** decimals());
}
}
根据用例调整 decimals() 默认值 (18) 与 USDT (6)。
迁移脚本
const MyToken = artifacts.require('MyToken');
module.exports = async function (deployer) {
await deployer.deploy(MyToken, 1000000); // 1M tokens
};
部署到 Shasta
- 资金部署者地址为 Shasta TRX(水龙头)。
- 在
tronbox.js或 env 中设置私钥(不提交)。 - 运行:
tronbox compile tronbox migrate --network shasta
- 记下输出中部署的合约地址。
- 通过TronWeb或TronIDE测试
transfer。
部署到主网
飞行前:
- [ ] 安全审查 — 智能合约安全
- [ ] 足够的TRX/部署者能量
- [ ] 构造函数参数final(名称、供应、管理)
- [ ] 仓库中没有测试私钥
tronbox migrate --network mainnet
仅使用 TronWeb 进行部署
没有 TronBox 的替代方案 — 本地编译,部署字节码:
const contract = await tronWeb.contract().new({
abi,
bytecode,
feeLimit: 1_000_000_000,
callValue: 0,
parameters: [1000000],
});
console.log(contract.address);
在 TronScan {#verify} 上验证
1、在TronScan开通合约地址。
- 验证合约 — 上传源码、编译器版本、优化。
- 用户可以读取
name/symbol并信任字节码匹配。
未经验证的代币会引发用户的fake USDT-style怀疑。
部署后
- 仅在代币经济需要时才铸造额外供应 - 公开文件
- 如果需要公开交易,则创建SunSwap流动性
- 向探索者提交代币信息(流程各不相同)
- 在您的应用程序中集成余额查询
成本和能源
大合约消耗更多能源。在迁移之前冻结部署者帐户上的 TRX 以减少 TRX 消耗。
部署后清单
部署后:在 TronScan 上验证来源,将所有权转移到多重签名,公开记录小数和供应上限,首先在 Shasta 克隆上测试转移/批准,并通过 TronScan 提交添加代币徽标(如果适用于钱包可见性)。
代币经济学参数
部署前决定:decimals(通常是 6 或 18)、totalSupply、可铸造性、可暂停性和黑名单功能。如果密钥被泄露,每个权限都是一个攻击面。许多社区代币使用放弃所有权的固定供应——公开记录您的选择,以便持有者了解信任假设。
相关指南 {#相关}
常见问题解答
部署一个TRC-20需要多少钱TRX?
部署会消耗能量和TRX,具体取决于合约大小——如果能量不被冻结,通常会消耗数十到数百个TRX。首先在 Shasta 上进行测试。
已部署的TRC-20代币是否会自动列在SunSwap上?
不可以。任何人都可以创建一个池,但在主要 UI 和交易所上市需要单独的流动性和审核流程。
TRC-20 vs TRC-10?
TRC-20 是 Solidity 智能合约代币。 TRC-10是原生资产发行,没有完整的合约逻辑。 USDT 是 TRC-20。
我可以克隆 USDT 吗?
技术上是的;法律和道德上都有问题。骗子就是这样做的——不要使用欺骗性符号。
什么编译器版本?
匹配 TronBox 支持的 Solidity — 检查 tronbox compile --help 和 TVM 解释。
感谢你的反馈——帮助我们改进文档。