Activator — 地址激活
激活从未在链上使用过的 TRON 地址。全新地址没有账户记录,因此在激活之前无法接收委托的 Energy 或 Bandwidth。此端点为您创建账户并返回激活交易哈希。
每个地址的激活操作仅需一次。如果地址已处于激活状态,端点会告知您且不收取任何费用。
端点基础 URL
https://netts.io/apiv2/activator请求标头
| Header | Required | Description |
|---|---|---|
| Content-Type | 是 | application/json |
| X-API-KEY | 是 | 您从 Netts 控制面板获取的 API 密钥 |
您的 user_id 是从 API 密钥派生的 — 您无需传递它。
激活 — POST /apiv2/activator
请求体
{ "targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE" }| 字段 | Type | Required | Description |
|---|---|---|---|
targetAddress | string | 是 | 要激活的 TRON 地址。必须匹配 ^T[A-Za-z0-9]{33}$(34 个字符,以 T 开头)。 |
Response — 已激活 (200, 代码 10000)
{
"detail": {
"code": 10000,
"msg": "Address activated successfully, 1.1 TRX deducted",
"data": {
"orderId": "A123456",
"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"activation_cost": 1.1,
"user_balance_before": 500.00,
"user_balance_after": 498.90,
"hash": "0000000000000000000000000000000000000000000000000000000000000000"
}
}
}| 字段 | Type | Description |
|---|---|---|
orderId | string | 激活订单号,始终为 A + 数字。用于对账。 |
targetAddress | string | 已激活的地址 |
activation_cost | float | 从您的余额中扣除的金额,单位为 TRX |
user_balance_before | float | 扣费前的余额 |
user_balance_after | float | 扣费后的余额 |
hash | string | 激活交易哈希。可在任何 TRON 区块浏览器上验证。 |
Response — 已处于激活状态 (200, 代码 2001)
在地址已存在于链上时返回。不收取任何费用。
{
"detail": {
"code": 2001,
"msg": "Address is already activated",
"data": {
"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"status": "already_activated",
"user_balance": 500.00,
"activation_cost": 0,
"activation_required": false
}
}
}在假定已产生费用前请先检查 code:10000 表示您已付费,2001 表示您未付费。
示例
curl -X POST https://netts.io/apiv2/activator \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-d '{"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"}'价格
| 项目 | 金额 |
|---|---|
| 激活 | 1.1 TRX |
| 地址已处于激活状态 | 0 |
该金额是固定的,不依赖于地址或网络状况。仅在激活成功的那一刻从您的 Netts 余额中扣除 — 绝不会提前扣除。失败的激活不收取任何费用。
您的余额必须足以支付该费用,否则请求将被拒绝并返回 403(1004),且不会创建订单。
适用场景
- 在为新地址租用 Energy 或 Bandwidth 之前。 向不存在的账户进行委托会失败。请先激活,然后下单。
- 在向您自己生成的地址进行第一笔入账转账之前。
您不需要为曾经接收过 TRX 或代币的地址调用此端点 — 它已经处于激活状态,调用只会直接返回 2001。
为新地址订购 Energy
1小时 Energy 端点在下单过程中会自动激活未激活的接收方,激活费用将计入该订单。如果您希望在进行任何租赁之前激活该地址(例如首先补充 Bandwidth,这需要活跃账户),请显式调用激活器。
时效
激活是一笔真实的链上交易。端点在交易广播并写入激活记录后返回,通常在几秒钟内完成。
该地址仅在交易被打包进区块后才可用 — 响应后最多约需 3 秒,因为这是 TRON 的出块间隔。如果您后续的步骤依赖于处于激活状态的地址(例如订购 Bandwidth),请通过返回的 hash 确认链上状态,而不是立即调用。
错误代码参考
| 代码 | Description | HTTP 状态 |
|---|---|---|
10000 | 地址已激活,余额已扣除 | 200 |
2001 | 地址已激活,未收取费用 | 200 |
-1 | 无效的 API 密钥 / IP 不在白名单中 | 401 |
1004 | 余额不足 — 消息中会说明所需金额和当前余额 | 403 |
- | 无效的 targetAddress 格式(必须为 34 个字符,以 T 开头) | 422 |
5003 | 激活失败或服务暂时不可用 — 请稍后重试 | 503 |
5000 | 内部服务器错误 | 500 |
503 意味着未产生任何费用且未激活任何地址:可以安全地重试该请求。
速率限制
限制按源 IP 计算:
| 周期 | 限额 |
|---|---|
| 1 秒 | 5 次请求 |
| 1 分钟 | 60 次请求 |
超出速率限制 (429)
{ "message": "API rate limit exceeded" }后付费账户
使用后付费结算的账户使用相同的端点、请求头和请求体。区别在于激活费用的支付方式:
- 不会从您的押金中扣除任何费用。 每次成功的激活都会以合同中约定的结算币种计入您的账户应付余额。您根据协议按发票进行支付。
- 您的账户拥有信用额度。只要应付金额在额度范围内,即使押金为零也接受激活请求。
- 仅对已完成的激活计费。已处于激活状态的地址(
2001)和失败的激活不收取任何费用。
根据申请,Netts 可为账户启用后付费结算。每个响应都会告知您激活的支付方式:paymentMode 为 postpaid 或 prepaid。
额外的请求字段
| 字段 | Type | Required | Description |
|---|---|---|---|
test | boolean | 否 | true — 仅计算价格并检查地址。不激活也不计费 |
freezePrice | boolean | 否 | true — 按您的合同锁定价格 60 秒。不激活也不计费 |
quoteId | string | 否 | 按照针对同一地址通过 freezePrice 生成的报价价格进行激活 |
priceCurrency | string | 否 | TRX(默认)或您合同中的币种,如同 settlement.asset。对于后付费账户,始终包含以您合同币种计价的金额 |
quoteId 不能与 test 或 freezePrice 同时使用。请求体中的任何其他字段都会被拒绝。
价格检查 (test: true)
{ "targetAddress": "TSMARToKjQGxroMnPKK6o6d4876VkQmHEH", "test": true }{
"detail": {
"code": 10010,
"msg": "Test calculation",
"data": {
"amount": 1,
"unitPriceSun": null,
"discount": null,
"energyTRX": "0.000000",
"activationTRX": "1.100000",
"wouldCostTRX": "1.100000",
"paidTRX": 0,
"paymentMode": "postpaid",
"activationCheck": "inactive",
"alt": {"USDC": {"energy": "0.000000", "activation": "0.364333", "total": "0.364333"}},
"fxAt": "2026-10-19T07:17:33.475335+00:00",
"targetAddress": "TSMARToKjQGxroMnPKK6o6d4876VkQmHEH"
}
}
}activationCheck:inactive — 地址需要激活并将计费;active — 地址已经处于激活状态,wouldCostTRX 为 0;unknown — 当前无法检查。
alt.<currency> — 以您合同币种表示的相同金额。fxAt — 所采用汇率的时间。
固定价格报价 (freezePrice: true)
- 发送带有
"freezePrice": true的请求。响应代码为10011(Quote issued),包含与价格检查相同的字段,以及quoteId和expiresAt。 - 在 60 秒内发送带有
"quoteId": "<quoteId>"和相同targetAddress的请求。 - 激活将按报价价格计费 — 即报价时您合同下的价格。
报价只能使用一次。过期或已使用的报价将被拒绝,且不会激活任何内容。
激活成功
{
"detail": {
"code": 10000,
"msg": "Address activated successfully, 1.1 TRX service cost, postpaid",
"data": {
"orderId": "A564125",
"targetAddress": "TSMARToKjQGxroMnPKK6o6d4876VkQmHEH",
"activation_cost": 1.1,
"user_balance_before": 0.0,
"user_balance_after": 0.0,
"hash": "bd9ea6ef92ce4ba6553af3930a03abe874cdfcc2399b7fdd9abdb11570de2920",
"paymentMode": "postpaid",
"activationTRX": "1.100000",
"totalTRX": "1.100000"
}
}
}| 字段 | Description |
|---|---|
activation_cost | 以 TRX 计价的激活费用。对于后付费账户,它不会从押金中扣除 |
user_balance_before / user_balance_after | 您的押金 — 对于后付费账户保持不变 |
paymentMode | postpaid |
activationTRX / totalTRX | 精确金额,保留 6 位小数 |
quoteId, alt | 当使用报价进行激活时出现 |
达到信用额度 (402)
{
"detail": {
"code": 1004,
"msg": "Postpaid credit limit reached.",
"paymentMode": "postpaid",
"reason": "limit_reached"
}
}不激活任何内容且不计费。一旦您的还款入账或信用额度提高,将重新接受新的激活请求。
后付费错误代码
| 代码 | HTTP | Description |
|---|---|---|
10010 | 200 | 价格检查结果 (test) |
10011 | 200 | 报价已出具 (freezePrice) |
1004 | 402 | 达到后付费信用额度 |
4100 | 400 | 无效请求 |
4101 | 400 | 不支持的 priceCurrency |
4102 | 400 | quoteId 与 test 或 freezePrice 混用 |
4103 | 409 | 报价已被使用 |
4104 | 409 | 报价已过期 |
4106 | 404 | 报价未找到 |
4107 | 409 | 请求参数与报价不符 |
4108 | 400 | 无效的 quoteId 格式 |
4109 | 422 | 不适用于子账户 |
5032 | 503 | 价格暂时不可用 |
5033 | 503 | 汇率暂时不可用 |
5034 | 503 | 计费服务暂时不可用 — 激活未被接受 |
5036 | 503 | 信用检查暂时不可用 — 请稍后重试 |
对于上述所有 4xx 和 503 响应,均不激活任何内容且不计费。
注意事项
- 幂等性由您把控。 该端点没有幂等键。对已经处于激活状态的地址重复请求是安全的且免费(
2001),但针对同一全新地址的两个并发请求可能会同时进行。请在您那边按地址串行化激活请求。 orderId格式为A+ 数字,在所有激活中具有唯一性。- 目前激活操作不发送 Webhook — 响应和
hash即为确认凭证。Webhook 目前仅覆盖已确认的 Energy 委托,请参阅 Webhooks。