商户与 API

能量租赁API对接:两次调用完成报价与下单

能量租赁API对接:两次调用完成报价与下单

简单说:能量租赁 API 让你的后端在每笔出款前自动给转出地址买能量,不需要人工盯着机器人。对接只涉及两个接口:GET /pricing/quote 查询价格,POST /orders 下单代理能量,按收款方情况每笔约 65,000 或 131,000 能量,费用从机器人余额扣除,认证用机器人里生成的 Bearer 密钥。

什么时候需要 API,而不是手动在机器人里下单?

如果每天只有几笔转账,打开机器人手动下单完全够用。问题出在转账由系统触发的时候:兑换商给客户打款、商户退款、支付网关把充值地址里的 USDT 归集到主地址、财务按计划批量付款。这些场景下,构造 USDT 交易的那段代码最清楚“马上要转一笔”,让人工去下单反而成了瓶颈。

钱包和 Telegram 机器人开发者是另一类典型用户。很多用户的 TokenPocket 或 imToken 钱包里只有 USDT、没有 TRX,转账时被提示“TRX 不足”。如果你的产品在用户发起转账前,先通过 API 给用户的地址下一笔能量,用户就能在几乎不持有 TRX 的情况下完成转账,费用由你的产品以自己的方式向用户收取或补贴。整个过程同样只需要用户的公开地址。

不租能量的代价很直接。2026-10-21 网络的能量单价为 100 SUN,一笔转给已持有 USDT 地址的转账约燃烧 6.43 TRX,转给新地址约 13.03 TRX。每月几百笔出款时,燃烧和租用能量之间的差额就是一笔不小的固定开支。企业在钱包结构、记账和资源选择上的整体思路,可以参考企业波场能量方案。

API 包含哪些接口,怎么调用?

两个接口都在请求头 Authorization 里使用 Bearer 密钥认证。API 基础地址和密钥都在机器人的 API 菜单里获取。

接口作用主要参数是否扣余额
GET /pricing/quote查询指定数量和租期的当前价格energy_amount、duration_minutes否
POST /orders把能量代理到指定地址receive_address、energy_amount、duration_minutes是

一个最小的调用流程如下:

# 1. 查询报价(只读)
GET {API_BASE}/pricing/quote?energy_amount=65000&duration_minutes=60
Authorization: Bearer <api_key>

# 2. 给转出地址下单能量
POST {API_BASE}/orders
Authorization: Bearer <api_key>
Content-Type: application/json

{
  "receive_address": "T…",
  "energy_amount": 65000,
  "duration_minutes": 60
}

下单返回的结果里包含订单 ID 和状态。建议把订单 ID 和对应的出款记录存在一起,方便之后对账。接口说明和接入步骤也可以在机器人的 API 栏目查看。

租期和能量数量该怎么选?

租期以分钟为单位传入,可选 15 分钟、1 小时、1 天和 3 天,对应 duration_minutes 为 15、60、1440、4320。原则是选“能安全覆盖从下单到广播交易这段时间”的最短租期:

  • 15 分钟:单笔出款,交易构造好后立刻广播。
  • 1 小时:出款需要排队,或者要等人工审核。
  • 1 至 3 天:热钱包持续出款,宁愿一次下单省事。

能量数量取决于收款方,与转账金额无关。转 10 USDT 和转 10,000 USDT 消耗的能量一样。

收款方情况每笔所需能量(2026-10-21)无能量时燃烧
已持有 USDT(如交易所充值地址)约 65,000约 6.43 TRX
从未持有过 USDT约 131,000约 13.03 TRX
同一地址连续转两笔给已持有方约 129,000约 12.86 TRX

差异来自 USDT 合约为新持有人写入余额记录所需的额外运算。实际消耗还会受波场动态能量机制影响,热门合约在高峰期消耗更多。能量的计量方式见官方的资源模型文档。

怎样把 API 嵌进出款流程?

大多数出款系统可以套用下面的顺序:

  1. 查询收款方的 USDT 余额。 通过自己的节点或公开接口读取。余额为零就按约 131,000 下单,否则按约 65,000。
  2. 报价(可选)。 不必每笔都查,但如果你想记录预计成本,或者给单笔能量设置价格上限,可以先调一次。
  3. 下单。 给转出地址下单,租期覆盖排队时间。
  4. 等待代理到账。 读取订单状态,再轮询转出地址的资源,确认代理能量已经出现。设置一个较短的超时加重试即可,正常情况下几秒内就能确认。
  5. 广播 USDT 转账。 合理设置 fee_limit,这样万一能量不足,交易会失败,而不是悄悄燃烧一大笔 TRX。
  6. 对账。 把订单 ID、转账哈希和实际消耗的能量对应起来。在 Tronscan 的交易详情页可以看到消耗的能量和燃烧的 TRX。

特别注意第 3 步里的地址是转出方,也就是付手续费、发起合约调用的那个钱包。把能量下到收款方地址,对你的出款毫无作用。

另外别忘了带宽。一笔 USDT 转账约 345 字节,每个激活地址每天有 600 点免费带宽。出款频繁的热钱包很快会用完免费额度,之后每笔约燃烧 0.35 TRX,所以热钱包上要保留少量 TRX。

接入调试时常见哪些问题?

建议按“先只读、后小额”的顺序调试。报价接口不扣费,可以反复调用,确认认证头、参数格式和返回结构都没问题。之后用少量余额下一笔真实订单,最小订单是一笔转账所需的能量,再用一笔小额 USDT 转账走完整个流程。

调试阶段最常碰到的情况有这么几种:

  • 地址未激活。 新生成的地址在链上还没有账户,无法接收代理的能量。给一批新充值地址下单前,先确认它们已经激活,比如已经收到过 TRX 或代币。
  • 能量下错了地址。 把能量下到了收款方,转出方仍然没有能量,交易照样燃烧 TRX。代码里要明确区分“发款地址”和“收款地址”两个变量。
  • 余额不足。 API 订单和机器人订单共用同一个余额,人工下单也会消耗它。建议在自己的监控里加一个余额阈值提醒。
  • 钱包预估滞后。 有些钱包或 SDK 的手续费预估在能量刚到账时还没刷新,显示仍要燃烧 TRX。以链上读取到的资源为准,而不是以预估为准。
  • 租期太短。 交易在队列里等待超过 15 分钟,能量已经到期回收。排队时间不确定时,用 1 小时更稳妥。

以归集为例算一笔账:假设每天要从 100 个充值地址把 USDT 归集到主地址,主地址已经持有 USDT,每笔约需 65,000 能量。全部燃烧的话,按 2026-10-21 的参数约为 100 × 6.43 = 643 TRX;用 API 为每个充值地址下单,就只需支付租金,另加各地址自身的带宽开销。实际能省多少取决于当时的市场价格,可以先用报价接口按自己的数量查一下。

密钥和余额怎么保管才安全?

API 密钥可以动用账户余额,应当像数据库密码一样对待:

  • 只放在服务器端。 不要写进移动端 App、前端代码或公开的代码仓库。
  • 用环境变量或密钥管理工具保存。 不要写进纳入版本控制的配置文件。
  • 有怀疑就更换。 机器人里可以随时注销旧密钥、重新生成。
  • 控制余额规模。 按几天的预计用量充值,而不是一次充几个月。万一密钥泄露,损失也有上限。
  • 下单前校验地址。 receive_address 写错一个字符,能量就会发到一个用不上的地址。

整个对接过程中,API 只需要公开地址,不接触任何钱包私钥。这也是它适合冷热分离、签名机独立部署架构的原因:下单的服务器和签名的机器可以完全隔离。

API 不适合哪些场景?

如果是同一个地址每天多次转 USDT,而且时间大致固定,每笔都调 API 下单可能反而麻烦。自动能量补充(智能模式)会在地址上常备约 131,000 能量,每笔转账后自动补足,你这边不需要写任何调用代码。

不少团队两者结合使用:主热钱包开智能模式,偶尔从充值地址归集时再用 API 单独下单。转出地址经常变化、出款时间不规律,或者需要把每一笔能量开支精确对应到自己账本里的某笔交易时,API 是更合适的工具。

下一笔转账,用租来的能量

当前 65,000 能量 1 小时: 3.15 TRX. 能量几秒到你的地址,无需私钥。

打开机器人

智能模式 · 计算器

常见问题

对接 API 需要准备什么?

在 Telegram 机器人的 API 菜单里生成密钥,并给账户充值余额。API 基础地址和密钥一起在机器人里显示,API 订单和手动订单共用同一个余额。

查询报价会扣费吗?

不会。GET /pricing/quote 只返回价格,不扣余额,适合作为接入时的第一步调试。只有 POST /orders 下单才会扣款。

给客户地址下单,需要客户的私钥吗?

不需要。每个订单都单独指定接收能量的地址,能量从出租方的质押代理过去,你和客户的私钥都不离开各自的系统。

每笔 USDT 转账应该下多少能量?

以 2026-10-21 为例,收款地址已持有 USDT 约需 65,000,从未持有过 USDT 约需 131,000。转账金额大小不影响能量消耗。

密钥泄露了怎么办?

立即在机器人里注销旧密钥并重新生成。同时检查余额和订单记录,确认没有异常下单。