Activator — address activation
Activate a TRON address that has never been used on-chain. A brand-new address has no account record, so it cannot receive delegated energy or bandwidth until it is activated. This endpoint creates the account for you and returns the activation transaction hash.
Activation is a one-time operation per address. If the address is already active, the endpoint tells you so and charges nothing.
Endpoint base URL
https://netts.io/apiv2/activatorThe legacy path https://netts.io/apiv2/activation is served by the same service and behaves identically. New integrations should use /apiv2/activator.
Request Headers
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| X-API-KEY | Yes | Your API key from the Netts dashboard |
| X-Real-IP | Yes | IP address from your whitelist |
Your user_id is derived from the API key — you never pass it.
Activate — POST /apiv2/activator
Request body
{ "targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE" }| Field | Type | Required | Description |
|---|---|---|---|
targetAddress | string | Yes | TRON address to activate. Must match ^T[A-Za-z0-9]{33}$ (34 chars, starts with T). |
Response — activated (200, code 10000)
{
"detail": {
"code": 10000,
"msg": "Address activated successfully, 1.10001 TRX deducted",
"data": {
"orderId": "A123456",
"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"activation_cost": 1.10001,
"user_balance_before": 500.00,
"user_balance_after": 498.90,
"hash": "0000000000000000000000000000000000000000000000000000000000000000"
}
}
}| Field | Type | Description |
|---|---|---|
orderId | string | Activation order number, always A + digits. Use it for reconciliation. |
targetAddress | string | The address that was activated |
activation_cost | float | Amount deducted from your balance, in TRX |
user_balance_before | float | Balance before the deduction |
user_balance_after | float | Balance after the deduction |
hash | string | Activation transaction hash. Verify it on any TRON explorer. |
Response — already active (200, code 2001)
Returned when the address already exists on-chain. Nothing is charged.
{
"detail": {
"code": 2001,
"msg": "Address is already activated",
"data": {
"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"status": "already_activated",
"user_balance": 500.00,
"activation_cost": 0,
"activation_required": false
}
}
}Check code before assuming a charge occurred: 10000 means you paid, 2001 means you did not.
Example
curl -X POST https://netts.io/apiv2/activator \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-d '{"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"}'Price
| Item | Amount |
|---|---|
| Activation | 1.10001 TRX |
| Address already active | 0 |
The amount is fixed and does not depend on the address or on network conditions. It is deducted from your Netts balance at the moment the activation succeeds — never before. A failed activation costs nothing.
Your balance must cover the cost, otherwise the request is rejected with 403 (1004) and no order is created.
When you need this
- Before renting energy or bandwidth for a fresh address. Delegation to a non-existent account fails. Activate first, then order.
- Before the first incoming transfer to an address you generated yourself.
You do not need to call this endpoint for an address that has ever received TRX or a token — it is already active, and the call would simply return 2001.
Ordering energy for a new address
The 1-hour energy endpoint activates a non-active receiver on its own as part of the order, and the activation cost is added to that order. Call the activator explicitly when you want the address active before any rental — for example to top up bandwidth first, which does require an active account.
Timing
Activation is a real on-chain transaction. The endpoint returns after it is broadcast and the activation record is written, typically within a few seconds.
The address becomes usable only once the transaction is included in a block — up to ~3 seconds after the response, since that is the TRON block interval. If your next step depends on the address being active (ordering bandwidth, for instance), confirm the state on-chain by the returned hash instead of calling immediately.
Error Code Reference
| Code | Description | HTTP Status |
|---|---|---|
10000 | Address activated, balance deducted | 200 |
2001 | Address already activated, nothing charged | 200 |
-1 | Invalid API key / IP not in whitelist | 401 |
1004 | Insufficient funds — the message states what is required and what you have | 403 |
- | Invalid targetAddress format (must be 34 chars, start with T) | 422 |
5003 | Activation failed or service temporarily unavailable — retry later | 503 |
5000 | Internal server error | 500 |
A 503 means no charge occurred and no address was activated: the request may be retried safely.
Rate Limits
Limited per source IP:
| Period | Limit |
|---|---|
| 1 second | 5 requests |
| 1 minute | 60 requests |
Rate Limit Exceeded (429)
{ "message": "API rate limit exceeded" }Notes
- Idempotency is on you. The endpoint has no idempotency key. Repeating a request for an address that is already active is safe and free (
2001), but two simultaneous requests for the same brand-new address may both proceed. Serialise activation per address on your side. orderIdformat isA+ digits and is unique across activations.- No webhook is sent for activation today — the response and the
hashare the confirmation. Webhooks currently cover confirmed energy delegations only, see Webhooks.