TRC20 地址:格式、合约与钱包的区别,以及如何通过 API 获取
为什么 TRON 地址以 T 开头,TRC20 合约地址与钱包地址有何区别,以及如何通过 REST 创建和监控 TRC20 存款地址。
TRC20 地址是 TRON 区块链上 TRX 和 TRC-20 代币(例如 USDT)的账户标识——一个以字母 T 开头的 Base58Check 字符串。无论你是在搭建接受 USDT-TRC20 的收银流程,还是只想分清钱包地址和合约地址的区别,本页都会介绍地址格式,以及如何通过 API 生成和监控 TRC20 地址。关于十六进制与 Base58 两种表示形式的完整技术拆解,请参阅博客上的 TRC20 地址指南。
什么是 TRC20 地址?tron 地址又泛指什么?
每个 TRON 账户,无论是否与 TRC20 相关,都只有一个地址,写作两种等价形式:以 T 开头的 Base58Check 字符串(用户实际看到的形式,例如 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t),以及以 41 开头、供 TRON 智能合约引擎 TVM 内部使用的十六进制形式。tron 地址并不专属于某一种代币——同一个地址可以持有 TRX、每一种 TRC-10 代币,以及该账户交互过的每一种 TRC-20 代币,因为 TRC-20 余额存储在各代币自己的合约中,以地址为键,而不是存储在地址本身上。
合约地址与钱包地址
在 TRON 上,两种不同的东西共享相同的 T... 格式,混淆二者是常见的集成错误。钱包地址属于某个用户或你自己的热钱包,可以发送和接收资金。trc20 合约地址——例如 USDT 的 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t——标识定义某种特定代币并追踪每个人余额的智能合约;你不会把资金直接作为存款发送到它,而是在调用转账时把它当作参数引用。当某个集成要求提供「tron trc20 contract address」时,指的就是第二种——代币标识符,而不是收款目标。
TRC10 与 TRC20:两种不同的代币标准
TRC10 代币是原生协议资产——转移时不执行任何智能合约,因此转账只消耗 Bandwidth。TRC20 代币存在于智能合约中,在概念上镜像 ERC-20 接口,并且每次转账还会额外消耗 Energy,因为合约需要执行代码来更新其余额表。USDT 以及几乎所有具有商业意义的 TRON 代币都是 TRC20。如果你正在决定新代币该采用哪种标准发行,TRC10 与 TRC20 对比深入介绍了两者在机制和成本上的差异——如果你打算自行创建一个 TRC20 代币,而不只是接受现有代币,这一点尤其相关。
TRON 不是 EVM:为什么「tron evm」这种说法不准确
TRON 的智能合约引擎 TVM,其设计目标是与为以太坊 EVM 编写的 Solidity 合约广泛兼容,这也是 Solidity 代码通常只需极少修改就能部署到 TRON 上的原因。但 TVM 是一套独立的运行时,而不是 EVM 本身——操作码、与 gas 等价的资源计量方式(用 Energy 和 Bandwidth 代替 gas)以及地址编码方式(Base58Check 的 T 地址而非 0x)都各不相同。「TRON EVM」作为字面表述并不准确;准确的说法是「在实践中对许多合约而言与 EVM 兼容」。
通过 REST 创建并监控 TRC20 地址
| 接口 | 作用 |
|---|---|
POST /api/v2/tron/addresses | 生成新的 TRON 地址 |
POST /api/v2/tron/addresses/import | 导入私钥,让 API 能够代表该地址签名 |
POST /api/v2/tron/webhooks | 为该地址注册 TRX、TRC-10 或 TRC-20 存款 Webhook |
POST /api/v2/tron/transactions/trc20 | 从该地址发送 TRC-20 代币,例如 USDT |
这就涵盖了如何以编程方式、按你的集成所需的任意规模获取 TRC20 钱包地址,而无需在钱包应用中手动生成地址再复制进数据库。
正在搭建需要大规模生成 TRC20 地址的收银系统或交易所后端?创建免费账户,在 testnet 中批量生成地址——7 天试用,无需信用卡,无需 KYC。
常见问题:TRC20 地址
准备好接入 TRON 了吗?
创建账户,今天就生成一个测试网 TRC20 地址——7 天试用,无需信用卡,无需 KYC。完整接口参考见 TRON API 文档,或使用 multi-chain blockchain API 覆盖全部七条链。