TRC20 交易记录导出:用 Tronscan 和 API 导出 CSV 用于记账

如何导出地址的 TRC20 交易记录:Tronscan CSV 导出、通过 TronGrid API 分页拉取 USDT 转账、TRX 和能量手续费,以及记账前的数据整理。

Overtron Editorial

简要回答:TRC20 交易记录保存在 TRON 区块链上,任何人都可以通过钱包地址查询。用于记账时有两种导出方式:在 Tronscan 地址页面点击导出 CSV 按钮,速度快,但单次数量和时间范围有限制;或者使用 TronGrid API,按页拉取任意时间段内的全部 USDT 转账记录。TRX 手续费和燃烧的能量最好单独导出,因为代币转账列表中通常不包含这些数据。

金属档案盒中叠放着带有发光网格的玻璃板,象征导出到表格中用于记账的 TRC20 交易记录
区块链保存了地址的全部历史,但记账时需要把它导出到表格并整理清楚

为什么要导出 USDT 转账记录

钱包应用会显示最近的操作,但它不能作为记账凭证:没有按时间、交易对象和手续费筛选的功能,换一个钱包应用后,界面上的历史记录就“消失”了。而在区块链上,记录会永久保存,所以导出只是把数据转换成方便使用的格式。

通常在以下四种情况下需要导出:

  • 与会计对账或给合作方出报表:本月收到和转出了多少 USDT。
  • 统计网络手续费支出:燃烧了多少 TRX,转账消耗了多少能量。
  • 核查有争议的付款:查找某一天的交易哈希、时间和付款地址。
  • 准备报税数据。每笔交易如何处理取决于您所在国家的法律和您的会计师,本文不构成税务建议。

地址历史包含什么,不包含什么

一个 TRON 地址有几类记录,不同的导出会分别存放:

  • TRX 转账:原生币的普通转账交易。
  • TRC-20 代币转账(USDT 等):调用智能合约并产生 Transfer 事件。Tronscan 在代币转账标签页中显示的就是这些记录。
  • 系统操作:冻结 TRX、委托能量、投票、修改 permissions、approve。
  • 手续费:消耗了多少 bandwidth 和能量,资源不足时燃烧了多少 TRX。这些是每笔交易回执(receipt)中的字段,而不是单独的交易。

记账时要注意一个细节:状态为 REVERT 或 OUT_OF_ENERGY 的失败交易不会转移 USDT,因此不会出现在代币转账列表中。但这笔交易的 TRX 已经燃烧,应计入手续费支出。

交易状态的含义和查看方法,请参阅 TRC20 交易查询;REVERT 时为什么会燃烧 TRX,请参阅 TRON 失败交易解析。

如何从 Tronscan 导出 TRC20 交易记录为 CSV

这是最简单的方法,不需要编程。适合交易数量不多、只需要一次性报表的情况。

  • 打开 tronscan.org,在搜索框中粘贴钱包地址。不需要私钥或助记词:交易记录是公开的。
  • 进入转账(Transfers)标签页,选择 TRC-20 代币部分。
  • 筛选 USDT 代币。核对合约地址:TRON 上真正的 USDT 合约是 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t。
  • 设置时间范围。记账时按自然月导出最方便。
  • 点击下载按钮(Export / Download CSV)。Tronscan 可能会要求完成人机验证。
  • 用 Excel 或 Google 表格打开文件。如果字符或数字显示异常,请通过“数据 → 从文本/CSV”导入,选择 UTF-8 编码和逗号分隔符。

请提前了解限制。Tronscan 对单次导出的数量和时间范围有限制,界面也会随时间变化。如果历史记录很长,请按月导出,并核对行数是否与页面上的交易数量一致。代币转账导出通常没有手续费列,需要单独获取。

更多关于 Tronscan 和 TRON 网络数据的指南,请访问我们的博客。

如何通过 API 获取 TRC20 交易记录

如果交易有数百上千笔,或者需要定期出报表,使用 API 更方便。TronGrid 有专门按地址查询 TRC-20 转账的接口:

GET https://api.trongrid.io/v1/accounts/<地址>/transactions/trc20?contract_address=TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t&limit=200

对记账有用的参数:

  • contract_address:只保留 USDT,过滤垃圾代币。
  • limit:每页记录数,根据文档最大为 200。
  • fingerprint:下一页的标记,取自上一次响应的 meta.fingerprint 字段。只要还返回该字段,就继续请求下一页。
  • min_timestamp 和 max_timestamp:时间范围的起止,单位为毫秒。
  • only_confirmed=true:只返回已确认的交易,避免把尚未最终确认的记录计入报表。
  • only_to 或 only_from:只返回转入或只返回转出的记录。

每条记录包含 transaction_id(哈希)、block_timestamp、from、to、value,以及带有小数位数的 token_info。做报表时需要三步转换:把 value 除以 10 的 decimals 次方(USDT 有 6 位小数,value 中的 1 000 000 等于 1 USDT);把 UTC 毫秒时间转换为您所在的时区;把 from 和 to 与您自己的地址比对,确定转入还是转出。

没有 API 密钥时,请求频率限制很严格。免费密钥可在 TronGrid 控制台申请,通过 TRON-PRO-API-KEY 请求头传递。该密钥只能读取公开数据,与您的资金无关。

接口和参数的完整说明见 TronGrid 文档。

如何在报表中加入手续费:能量和燃烧的 TRX

TRC-20 转账接口不返回手续费。需要用每笔交易的哈希调用 gettransactioninfobyid 获取。响应中的 fee 字段表示燃烧的 TRX,单位为 SUN(1 TRX = 1 000 000 SUN);回执 receipt 中,energy_usage_total 是该交易消耗的总能量,energy_fee 是因能量不足而燃烧的 SUN,net_usage 和 net_fee 则是 bandwidth 的对应数据。

核对数字的参考值:向已持有 USDT 的地址转账 USDT,大约消耗 64 500–65 000 能量;向空地址转账大约翻倍,约 131 000。如果没有自己的或租用的能量,网络大约燃烧 6.5 TRX,空地址约 13 TRX。如果导出中相同的转账消耗差别明显,请检查当天该合约的动态能量系数是否更高。

TRON 手续费由哪些部分组成等网络知识,请参阅 Overtron 博客。

记账前如何整理导出数据

  • 删除来自相似地址的零金额或极小金额转入记录:这是地址投毒攻击的痕迹,不是真实付款。
  • 只保留合约 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t。名称为 USDT 但合约不同的代币是假币。
  • 按哈希去重:分页导出时,同一条记录可能在页与页的交界处出现两次。
  • 把自己钱包之间的转账与外部转账分开,否则流水会被重复计算。
  • 每一行都保留哈希:多年后也能凭它在 Tronscan 上核查任何一笔交易。
  • 对于交易所的充值和提现,还需要下载交易所自己的对账单。链上只能看到交易所热钱包的地址,交易所内部操作不会上链。

手续费总额能说明什么

带有 fee 和 energy_usage_total 的导出数据,能显示您实际向网络支付了多少。如果报表中有很多燃烧 TRX 的记录,说明这些转账是在没有能量的情况下发出的。对于频繁转账,租用能量可以解决这个问题:能量在约定期限内委托到您的地址,无需提供私钥或钱包访问权限。

您可以在我们的网站上为转账计算并购买 TRON 能量。最终费用取决于市场和租用期限,到账速度取决于网络和供应商。

区块链已经替您记好了账。您要做的是把数据正确取出来:转账一份,手续费一份,每一行都带上哈希。

希望下一次导出中少一些燃烧的 TRX?在 @overtronbot 中为您的地址计算所需能量。

延伸阅读

FAQ

在哪里查看一个地址的 TRC20 交易记录?

在 tronscan.org 搜索框中粘贴地址,打开 TRC-20 代币转账标签页即可。交易记录是公开的,查看时不需要任何密钥。

如何把 USDT TRC20 交易记录下载到 Excel?

在 Tronscan 地址页面选择 USDT 代币和时间范围,点击导出 CSV,然后在 Excel 中以 UTF-8 编码导入该 CSV 文件。

为什么 Tronscan 导出的交易不完整?

导出有数量和时间范围限制,而且失败的交易不会出现在代币转账列表中。可以按月导出,或使用支持分页的 API。

如何知道本月在手续费上花了多少 TRX?

用 gettransactioninfobyid 获取每笔交易哈希的 fee 字段,并把该时间段内的数值相加。fee 的单位是 SUN:1 TRX = 1 000 000 SUN。

没有 API 密钥能导出交易记录吗?

可以,通过 Tronscan 的 CSV 导出,或者不带密钥调用 TronGrid API,但请求频率限制很严。大量或定期导出时,使用免费的 TronGrid 密钥更方便。

把地址提供给别人导出记录有风险吗?

地址本来就是公开的,只能用来查看历史。真正危险的是泄露助记词或私钥,而导出记录永远不需要它们。

为什么记录里有我没做过的 0 USDT 转账?

通常是地址投毒攻击:骗子从相似的地址发起转账,希望您复制错地址。记账时应删除这些记录。

交易所账户之间的转账会显示在链上吗?

不会。交易所内部操作不上链,链上只能看到充值和提现,所以完整记账还需要交易所自己的对账单。