API 快速入门 · 买方流程
通过 API 提交第一笔买单
此流程使用当前公开市场端点和现行买单合同。请在已登录的浏览器中创建凭据,将只显示一次的密钥保存在源代码之外,查看实时订单簿并确认平台额度,然后提交一笔幂等订单。
在面板中创建 Read + Buy 密钥
连接 TRON 钱包并签名登录,打开 API 密钥面板,创建启用 Read 和 Buy 的密钥。创建密钥是浏览器会话操作;API 密钥不能创建另一个密钥,也不能提升自己的权限。
完整密钥只显示一次。请将其复制到密钥管理器或临时 shell 环境变量,不要放入 URL、日志、截图、仓库或客户端 bundle。若已丢失,请撤销后重新创建。读取公开实时价格和一档市场深度
这些 GET 端点不需要凭据。价格按资源区分;深度还按租期和最小数量区分。选择 price_sun 前,请查看响应中的实时 asks。
curl --silent --show-error --fail-with-body \ 'https://tet.energy/v1/price?resource=energy' curl --silent --show-error --fail-with-body \ 'https://tet.energy/v1/market/depth?resource=energy&duration=86400&min_lot=65000'确认可用的平台额度
使用同一密钥的 Read 权限检查 available_trx。示例订单会从内部可用余额预留 4.225 TRX:65 sun × 65,000 energy × 一个计费日。
curl --silent --show-error --fail-with-body \ 'https://tet.energy/v1/balance' \ -H 'Authorization: Bearer <YOUR_API_KEY>'内部余额不等于已连接钱包显示的 TRX 余额。GET /v1/balance 会在充值服务就绪时返回个人 deposit_address 和准确的 deposit_minimum_trx。仅当两者都存在时才充值:向 deposit_address 发送不少于该最低金额的真实 TRX,并等待确认后再使用。切勿向登录钱包转账;当前不支持提现。使用唯一幂等键提交订单
替换三个占位符。JSON 只包含 OrderCreate 的五个必填字段。示例采用一天期 energy 的最低价 65 sun;若没有价格不高于该限价的 ask,订单可能保持开放,因此示例并不保证成交。
curl --silent --show-error --fail-with-body \ -X POST 'https://tet.energy/v1/orders' \ -H 'Authorization: Bearer <YOUR_API_KEY>' \ -H 'Idempotency-Key: <UNIQUE_REQUEST_ID>' \ -H 'Content-Type: application/json' \ --data-binary '{ "resource": "energy", "amount": 65000, "duration_sec": 86400, "price_sun": 65, "receiver_address": "<VALID_TRON_RECEIVER_ADDRESS>" }'首次创建返回 HTTP 201。使用相同 Idempotency-Key 和完全相同 body 重试时,返回已有订单和 HTTP 200。
必填请求字段
- resource
- energy 或 bandwidth。
- amount
- 资源单位的正整数数量。
- duration_sec
- 当前提供的一个租期,以秒为单位;86400 表示一天。
- price_sun
- 每个资源单位、每个计费日的 sun 限价,不能低于当前最低价。
- receiver_address
- 接收所委托资源的有效 base58 TRON 地址,可以与登录钱包不同。
重试规则。 仅在响应不确定且 body 完全相同时复用同一键。新的逻辑订单必须使用新键;同一键搭配不同 body 会返回 conflict。
排查当前错误合同
所有失败都使用同一个错误 envelope。联系支持时请保留 request_id 和响应头 X-Request-ID;其中不含您的密钥。
{
"error": {
"code": "<ERROR_CODE>",
"message": "<MESSAGE>",
"request_id": "<REQUEST_ID>"
}
} - 401 · unauthorized
- 缺少 Bearer 请求头,或凭据认证失败。格式错误、未知、内容不匹配和已撤销的密钥会故意返回相同结果。绝不要在 query string 中传递 api_key。
- 403 · forbidden
- 密钥已通过认证,但缺少所需 scope。请在已登录的面板中创建新的 Read + Buy 密钥;密钥不能自行升级权限。
- 402 · insufficient_balance
- available_trx 无法覆盖托管预留金额。钱包中的 TRX 不满足此内部 ledger 检查。
- 422 · invalid_request
- 请求未通过验证。error.details 存在时会列出字段路径;服务层验证可能只返回 message。请检查可用租期、价格下限、正整数以及接收地址。
- 409 · conflict
- 同一个幂等键与不同订单 body 一起使用。不要修改重试请求;新订单请使用新键。
- 429 · rate_limited
- 停止发送请求,遵守 Retry-After 响应头,并采用退避策略重试。
- 503 · unavailable
- 服务或所需的实时网络比率暂时不可用。请稍后重试,不要使用猜测的价格或比率。