找回密码
 立即注册
搜索
热搜: GTokenTool
查看: 90|回复: 1

波场跟evm地址如何互相转换

[复制链接]

212

主题

211

回帖

1228

积分

管理员

积分
1228
发表于 2025-8-13 19:16:52 | 显示全部楼层 |阅读模式
波场跟evm地址如何互相转换

212

主题

211

回帖

1228

积分

管理员

积分
1228
 楼主| 发表于 2025-8-13 19:18:44 | 显示全部楼层
波场(Tron)的地址和以太坊虚拟机(EVM)兼容链的地址(如以太坊、BSC、Polygon等)在格式上有所不同,但可以通过一定的规则互相转换。以下是详细的转换方法:

1. 波场(Tron)地址 ↔ EVM 地址基础概念
  • Tron 地址:以 T 开头(例如 TNP4...),基于 Base58Check 编码。
  • EVM 地址:以 0x 开头(例如 0x5A...),基于 16 进制编码。
  • 底层原理:两者的地址本质上是同一公钥的哈希值,只是编码方式不同。


2. 转换方法(1) Tron 地址 → EVM 地址
步骤:
  • 去掉 T 前缀:得到 Base58Check 编码的字符串(例如 NP4...)。
  • Base58Check 解码:解码为字节数组(通常是 21 字节,含地址类型前缀 0x41)。
  • 去掉前缀 0x41:保留后 20 字节(即 EVM 地址的原始字节)。
  • 转换为 0x 开头:将这 20 字节转为 16 进制字符串,并添加 0x。

工具实现:
  • JavaScript(使用 tronweb 或 bs58 库):
    javascript





    const bs58 = require('bs58');function tronToEvm(tronAddress) {    // Base58Check 解码    const bytes = bs58.decode(tronAddress.substring(1));    // 去掉第一个字节(0x41),取后20字节    const evmBytes = bytes.slice(1, 21);    // 转为 0x 开头的小写地址    return '0x' + Buffer.from(evmBytes).toString('hex');}console.log(tronToEvm('TNP4...')); // 输出 0x...

  • 在线工具:
    使用 TronscanTron-EVM 转换工具


(2) EVM 地址 → Tron 地址
步骤:
  • 去掉 0x 前缀:得到 40 字符的 16 进制字符串。
  • 添加前缀 0x41:在开头补上 1 字节的 Tron 地址标识符(0x41)。
  • Base58Check 编码:将合并后的 21 字节进行 Base58Check 编码。
  • 添加 T 前缀:最终生成 Tron 地址。

工具实现:
  • JavaScript:
    javascript





    const bs58 = require('bs58');function evmToTron(evmAddress) {    // 去掉 0x,转为字节    const evmBytes = Buffer.from(evmAddress.substring(2), 'hex');    // 合并 0x41 前缀    const tronBytes = Buffer.concat([Buffer.from([0x41), evmBytes);    // Base58Check 编码    return 'T' + bs58.encode(tronBytes);}console.log(evmToTron('0x5A...')); // 输出 T...

  • Python:
    python





    import base58def evm_to_tron(evm_address):    evm_bytes = bytes.fromhex(evm_address[2:)    tron_bytes = b'\x41' + evm_bytes    return 'T' + base58.b58encode_check(tron_bytes).decode('utf-8')



3. 注意事项
  • 大小写敏感:EVM 地址通常小写,但校验时需注意大小写兼容性。
  • 校验和:Tron 的 Base58Check 编码自带校验,转换时无需额外处理。
  • 跨链使用:
    • 在 Tron 上,EVM 地址可通过转换后直接用于 TRC20 合约交互。
    • 在 EVM 链上,Tron 地址需转换为 0x 格式才能调用合约。



4. 常见场景
  • 在 MetaMask 中使用 Tron 地址:
    将 Tron 地址转为 0x 格式后,可导入 MetaMask(私钥相同)。
  • 在 TronLink 中使用 EVM 地址:
    将 0x 地址转为 T 开头格式即可。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telegram|手机版|小黑屋|GTokenTool

GMT+8, 2025-9-11 04:09 , Processed in 0.021678 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表