跳到主要内容

能量租赁 · 接口

本文含两类 HTTP:

  • 转 TRX 档位询价 GET|POST /energy-rental/trx-quote:无需 API Key。传入需要的能量,返回应付 TRX。
  • 积分下单 /energy-rental/quote 与 /energy-rental/orders:要 X-API-Key。

转原生 TRX 到平台地址本身不是 HTTP;询价只告诉你该转多少。能量时长固定 1 小时。到账后不能退款。

Base URL​

https://gateway.gelabs.org

认证​

/energy-rental/trx-quote 不要带 API Key。

积分下单每个请求都要带:

X-API-Key: your-api-key
Content-Type: application/json

Key 在 Console 的 App 详情产生。该 App 必须已开通能量租赁。积分接口不必传 appId,也不必传 durationHours。

回应格式​

与 开始接入 相同:

{
"code": 0,
"message": "success",
"data": {}
}

code 为 0 才是成功。JSON 用 camelCase。

接口一览​

方法路径说明认证
GET / POST/energy-rental/trx-quote按能量算出应付 TRX无
POST/energy-rental/quote积分询价,不扣费X-API-Key
POST/energy-rental/orders下单X-API-Key
GET/energy-rental/orders订单列表X-API-Key
GET/energy-rental/orders/:orderNo订单详情X-API-Key

积分下单后用详情接口轮询,直到 status 为 SUCCESS 或 FAILED。


GET / POST /energy-rental/trx-quote​

按转 TRX 档位,把「需要的能量」向上取成应付 TRX。无需 API Key,不扣积分,也不会自动转账。

用法:

  1. 调本接口,传入 energyAmount。
  2. 确认信封 code === 0。
  3. 转 data.trxAmount 个原生 TRX 到 data.payAddress。
  4. 能量打到付款地址,数量是 data.energyGranted,时长 data.durationHours 小时。用区块浏览器确认,没有订单号。

这条接口与下面的 POST /energy-rental/quote 无关:后者按积分 / USDT 计价,必须带 Key。

请求​

GET 用查询参数,POST 用 JSON 体。

字段类型必填说明
energyAmountinteger是需要的能量,必须 > 0

请求示例​

curl "https://gateway.gelabs.org/energy-rental/trx-quote?energyAmount=80000"

curl -X POST \
-H "Content-Type: application/json" \
https://gateway.gelabs.org/energy-rental/trx-quote \
-d '{"energyAmount":80000}'

回应 data​

字段类型说明
energyAmountinteger你传入的能量
trxAmountinteger该转的原生 TRX
energyGrantedinteger转够 trxAmount 后实际到账的能量(≥ 你要的)
payAddressstring收款地址,目前为 TEtK5Gfm24Bp3yc6LomkZGqr1wQrTE7Gx2
durationHoursinteger时长,固定 1
{
"code": 0,
"message": "success",
"data": {
"energyAmount": 80000,
"trxAmount": 8,
"energyGranted": 131000,
"payAddress": "TEtK5Gfm24Bp3yc6LomkZGqr1wQrTE7Gx2",
"durationHours": 1
}
}

energyAmount ≤ 0 或无法解析时 HTTP 400 / code=10001。


POST /energy-rental/quote​

按能量数量算出将扣的积分 / USDT,并告诉你当前余额够不够。不扣费。

建议先调询价再下单。data.sufficient 为 false 时不要下单。

请求头​

字段必填说明
X-API-Key是Console 产生的 Key
Content-Type是application/json

请求体​

字段类型必填说明
energyAmountinteger是要租的能量,≥ 65000
receiverAddressstring否TRON Base58,T 开头。传了会校验格式;下单时必填
durationHoursinteger否只能是 1 或省略

请求示例​

curl -X POST \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
https://gateway.gelabs.org/energy-rental/quote \
-d '{"energyAmount":65000,"receiverAddress":"TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf"}'

回应 data​

字段类型说明
energyAmountinteger本次询价的能量
durationHoursinteger时长,固定 1
creditsRequiredinteger按能量公式算出的所需积分
planCodestring当前套餐代码
creditsPerUsdtinteger1 USDT 对应多少积分
creditsToDeductinteger本次将扣的积分
usdtToDeductMicrointeger积分不够时将扣的 USDT;单位 micro,1 USDT = 1_000_000
availableCreditsinteger当前可用积分
availableUsdtMicrointeger当前可用 USDT micro
sufficientboolean余额是否够扣
pricingBaseEnergyinteger计价基准能量,目前 65000
pricingBaseCreditsinteger基准能量对应积分,目前 90000
creditsPerEnergyDisplaystring超出基准后每单位能量的积分展示值,目前 "1.3846"
equivalentTrxstring本次所需积分按 creditsPerUsdt 折成 USDT,再按询价当下的 TRX 美元价换成 TRX。十进制字符串,向上取整到 1 sun(1 TRX = 1_000_000 sun)。价格不可用时本接口回 503
{
"code": 0,
"message": "success",
"data": {
"energyAmount": 65000,
"durationHours": 1,
"creditsRequired": 90000,
"planCode": "basic",
"creditsPerUsdt": 61224,
"creditsToDeduct": 90000,
"usdtToDeductMicro": 0,
"availableCredits": 500000,
"availableUsdtMicro": 0,
"sufficient": true,
"pricingBaseEnergy": 65000,
"pricingBaseCredits": 90000,
"creditsPerEnergyDisplay": "1.3846",
"equivalentTrx": "5.880048"
}
}

上面示例里的 `"5.880048"` 是按当时 TRX 价格 `0.25` 美元算出的,价格变了这个数会变。

POST /energy-rental/orders​

建立一笔租赁订单:先预留积分,再把能量代理到 receiverAddress。

请求头​

字段必填说明
X-API-Key是与询价相同
Content-Type是application/json
Idempotency-Key是幂等键,建议 UUID

请求体​

字段类型必填说明
energyAmountinteger是与询价一致,≥ 65000
receiverAddressstring是能量打到的 TRON 地址,Base58,T 开头
durationHoursinteger否只能是 1 或省略
gatewayOrderNostring否不要传。平台生成 GER_…
authorizationIdstring否产品 API 不要传

幂等​

Idempotency-Key 用来避免超时重试时重复扣费:

情况结果
第一次使用这把 Key建立新单并预留积分
同一 Key,地址和能量相同返回原单,不再扣费
同一 Key,地址或能量不同409 / code=10003
再租一次(哪怕同一地址)换一把新 Key

请求示例​

curl -X POST \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7c9e6679-7425-40de-944b-e07fc1f90ae7" \
https://gateway.gelabs.org/energy-rental/orders \
-d '{"energyAmount":65000,"receiverAddress":"TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf"}'

成功时 data 是一笔订单,字段见下方「订单字段」。网络超时用同一把 Idempotency-Key 重试。


GET /energy-rental/orders​

列出当前 App 的订单。

请求头​

X-API-Key

查询参数​

参数类型必填说明
statusstring否PROCESSING / SUCCESS / FAILED
orderNostring否精确匹配履约单号
receiverAddressstring否精确匹配接收地址
pageinteger否默认 1
pageSizeinteger否默认 50

请求示例​

curl -H "X-API-Key: $API_KEY" \
"https://gateway.gelabs.org/energy-rental/orders?page=1&pageSize=20"

回应 data​

字段类型说明
listobject[]当前页订单
totalinteger总笔数
pageinteger当前页
pageSizeinteger每页笔数

GET /energy-rental/orders/:orderNo​

查一笔订单。路径参数是下单返回的 orderNo,不是 gatewayOrderNo。

curl -H "X-API-Key: $API_KEY" \
https://gateway.gelabs.org/energy-rental/orders/ER_20260915120000_123456

data 就是下面的订单字段,没有 list 包一层。

建议每 2–3 秒轮询,直到 SUCCESS 或 FAILED。


订单字段​

时间是 UTC Unix 秒;尚未发生为 null。

字段类型说明
orderNostring履约单号,用来查详情
gatewayOrderNostring平台生成的 GER_…
appIdstring所属 App
receiverAddressstring能量接收地址
statusstringPROCESSING / SUCCESS / FAILED
creditsReservedinteger预留积分;确认前还不算已扣
usdtReservedMicrointeger预留 USDT micro
creditsChargedinteger已扣积分;处理中为 0
usdtChargedstring已扣 USDT,固定 6 位小数
usdtChargedMicrointeger已扣 USDT micro
energyAmountinteger下单能量
completedEnergyAmountinteger已到账能量;成功前为 0
durationHoursinteger时长,目前固定 1
paidAtinteger / null预留成功时间
delegatedAtinteger / null能量委托时间
expiresAtinteger / null能量到期时间
sourcestringapi 或 console
upstreamOrderIdstring / null上游单号;未提交为 null
createdAtinteger建立时间
updatedAtinteger最后更新
failReasonstring / null失败原因;处理中或成功为 null
{
"code": 0,
"message": "success",
"data": {
"orderNo": "ER_20260915120000_123456",
"gatewayOrderNo": "GER_20260915120000_123456",
"appId": "app_xxx",
"receiverAddress": "TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf",
"status": "PROCESSING",
"creditsReserved": 90000,
"usdtReservedMicro": 0,
"creditsCharged": 0,
"usdtCharged": "0.000000",
"usdtChargedMicro": 0,
"energyAmount": 65000,
"completedEnergyAmount": 0,
"durationHours": 1,
"paidAt": 1757923200,
"delegatedAt": null,
"expiresAt": null,
"source": "api",
"upstreamOrderId": null,
"createdAt": 1757923200,
"updatedAt": 1757923200,
"failReason": null
}
}

状态​

status含义
PROCESSING已预留,正在代理能量
SUCCESS能量已打到 receiverAddress,积分已实扣
FAILED失败,预留已释放

如何确认能量已到账​

  1. 详情接口 status 为 SUCCESS,且 completedEnergyAmount > 0。
  2. 到 TronScan 打开 receiverAddress,查看 Energy。
  3. 可选,调 TRON 节点:
curl -X POST https://api.trongrid.io/wallet/getaccountresource \
-H "Content-Type: application/json" \
-d '{"address":"TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf","visible":true}'

看回应里的 EnergyLimit / EnergyUsed。


错误码​

HTTP 状态码与信封 code 一起看。code !== 0 不要当成成功。

HTTPcode何时出现
40010001参数非法:能量 ≤ 0(TRX 询价)、能量低于 65000(积分接口)、地址不是 T 开头、时长不是 1
40120001缺少或无效 X-API-Key
40320002App 未开通能量租赁
40410002单号不存在或不属于此 App
40910003同一 Idempotency-Key 但地址 / 能量与原单不同
40250001积分 / USDT 不足(先看询价 sufficient)
50310005上游暂时不可用

转 TRX 档位​

转 原生 TRX 到 TEtK5Gfm24Bp3yc6LomkZGqr1wQrTE7Gx2。能量打到付款地址。到账金额向下靠档。

到账 TRX得到的能量
少于 4不租,TRX 留下
465,000
8131,000(特例,不是 130,000)
4n(n≥3)65000 × n

已知能量、要算应付 TRX 时向上取档,或调 GET|POST /energy-rental/trx-quote。要 80,000 能量就转 8 TRX(实际得到 131,000)。