Appearance
Activator — ativação de endereço
Ative um endereço TRON que nunca foi usado on-chain. Um endereço totalmente novo não possui registro de conta, portanto não pode receber energy ou bandwidth delegadas até ser ativado. Este endpoint cria a conta para você e retorna o hash da transação de ativação.
A ativação é uma operação de execução única por endereço. Se o endereço já estiver ativo, o endpoint informa isso a você e não cobra nada.
URL base do endpoint
https://netts.io/apiv2/activatorCabeçalhos da requisição
| Header | Required | Description |
|---|---|---|
| Content-Type | Sim | application/json |
| X-API-KEY | Sim | Sua chave de API do painel da Netts |
Seu user_id é derivado da chave de API — você nunca o envia.
Ativar — POST /apiv2/activator
Corpo da requisição
json
{ "targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE" }| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
targetAddress | string | Sim | Endereço TRON a ser ativado. Deve corresponder a ^T[A-Za-z0-9]{33}$ (34 caracteres, começa com T). |
Response — ativado (200, code 10000)
json
{
"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"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
orderId | string | Número do pedido de ativação, sempre A + dígitos. Use-o para conciliação. |
targetAddress | string | O endereço que foi ativado |
activation_cost | float | Valor debitado do seu saldo, em TRX |
user_balance_before | float | Saldo antes do débito |
user_balance_after | float | Saldo após o débito |
hash | string | Hash da transação de ativação. Verifique-o em qualquer explorador TRON. |
Response — já ativo (200, code 2001)
Retornado quando o endereço já existe on-chain. Nada é cobrado.
json
{
"detail": {
"code": 2001,
"msg": "Address is already activated",
"data": {
"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"status": "already_activated",
"user_balance": 500.00,
"activation_cost": 0,
"activation_required": false
}
}
}Verifique o code antes de assumir que ocorreu uma cobrança: 10000 significa que você pagou, 2001 significa que não pagou.
Exemplos
bash
curl -X POST https://netts.io/apiv2/activator \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-d '{"targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"}'Preço
| Item | Valor |
|---|---|
| Ativação | 1.1 TRX |
| Endereço já ativo | 0 |
O valor é fixo e não depende do endereço ou das condições da rede. Ele é debitado do seu saldo da Netts no momento em que a ativação tem sucesso — nunca antes. Uma ativação com falha não custa nada.
Seu saldo deve cobrir o custo, caso contrário a solicitação é rejeitada com 403 (1004) e nenhum pedido é criado.
Quando você precisa disso
- Antes de alugar energy ou bandwidth para um endereço novo. A delegação para uma conta inexistente falha. Ative primeiro, depois faça o pedido.
- Antes da primeira transferência recebida para um endereço gerado por você mesmo.
Você não precisa chamar este endpoint para um endereço que já recebeu TRX ou um token alguma vez — ele já está ativo, e a chamada simplesmente retornará 2001.
Pedindo energy para um novo endereço
O endpoint de energy de 1 hora ativa um destinatário não ativo por conta própria como parte do pedido, e o custo de ativação é adicionado a esse pedido. Chame o ativador explicitamente quando desejar o endereço ativo antes de qualquer aluguel — por exemplo, para recarregar bandwidth primeiro, o que exige uma conta ativa.
Tempo de processamento
A ativação é uma transação on-chain real. O endpoint responde após sua transmissão e gravação do registro de ativação, normalmente dentro de alguns segundos.
O endereço se torna utilizável somente assim que a transação for incluída em um bloco — até ~3 segundos após a resposta, já que esse é o intervalo de bloco da TRON. Se a sua próxima etapa depender de o endereço estar ativo (pedir bandwidth, por exemplo), confirme o estado on-chain pelo hash retornado em vez de fazer a chamada imediatamente.
Respostas de erro
| Código | Descrição | Status HTTP |
|---|---|---|
10000 | Endereço ativado, saldo debitado | 200 |
2001 | Endereço já ativado, nada cobrado | 200 |
-1 | Chave de API inválida / IP fora da whitelist | 401 |
1004 | Saldo insuficiente — a mensagem informa o que é necessário e o que você possui | 403 |
- | Formato de targetAddress inválido (deve ter 34 caracteres, começar com T) | 422 |
5003 | Falha na ativação ou serviço temporariamente indisponível — tente novamente mais tarde | 503 |
5000 | Erro interno do servidor | 500 |
Um 503 significa que nenhuma cobrança ocorreu e nenhum endereço foi ativado: a solicitação pode ser repetida com segurança.
Limites de taxa
Limitado por IP de origem:
| Período | Limite |
|---|---|
| 1 segundo | 5 requisições |
| 1 minuto | 60 requisições |
Limite de taxa excedido (429)
json
{ "message": "API rate limit exceeded" }Contas Pós-pagas
Contas no faturamento pós-pago usam o mesmo endpoint, headers e corpo da solicitação. A diferença está em como a ativação é paga:
- Nada é debitado do seu depósito. Cada ativação bem-sucedida é adicionada ao saldo devedor da sua conta na moeda de liquidação acordada em seu contrato. Você efetua o pagamento por fatura, de acordo com o seu contrato.
- Sua conta possui um limite de crédito. Enquanto o valor devedor estiver dentro do limite, as ativações são aceitas mesmo com saldo de depósito zero.
- Apenas ativações concluídas são faturadas. Um endereço que já está ativo (
2001) e uma ativação que falhou não custam nada.
O faturamento pós-pago é ativado pela Netts para uma conta mediante solicitação. Cada resposta informa como a ativação é paga: paymentMode é postpaid ou prepaid.
Campos de requisição adicionais
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
test | boolean | Não | true — calcula o preço e apenas verifica o endereço. Nada é ativado ou faturado |
freezePrice | boolean | Não | true — congela o preço do seu contrato por 60 segundos. Nada é ativado ou faturado |
quoteId | string | Não | Ativa com o preço de uma cotação emitida por freezePrice para o mesmo endereço |
priceCurrency | string | Não | TRX (padrão) ou a moeda do seu contrato, como em settlement.asset. Para contas pós-pagas, os valores na moeda do seu contrato são sempre incluídos |
quoteId não pode ser combinado com test ou freezePrice. Qualquer outro campo no corpo da requisição será rejeitado.
Consulta de preço (test: true)
json
{ "targetAddress": "TSMARToKjQGxroMnPKK6o6d4876VkQmHEH", "test": true }json
{
"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 — o endereço precisa de ativação e será faturado; active — o endereço já está ativo, wouldCostTRX é 0; unknown — não foi possível verificar no momento.
alt.<currency> — os mesmos valores na moeda do seu contrato. fxAt — o horário da taxa de câmbio utilizada.
Cotação com preço fixo (freezePrice: true)
- Envie a requisição com
"freezePrice": true. A resposta conterá o código10011(Quote issued), os mesmos campos de uma consulta de preço, além dequoteIdeexpiresAt. - Dentro de 60 segundos, envie a requisição com
"quoteId": "<quoteId>"e o mesmotargetAddress. - A ativação será faturada pelo preço cotado — o preço sob o seu contrato no momento da cotação.
Uma cotação pode ser usada uma única vez. Uma cotação expirada ou já utilizada será rejeitada e nada será ativado.
Ativação bem-sucedida
json
{
"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"
}
}
}| Campo | Descrição |
|---|---|
activation_cost | Custo da ativação em TRX. Para contas pós-pagas, ele não é deduzido do depósito |
user_balance_before / user_balance_after | Seu saldo de depósito — inalterado para contas pós-pagas |
paymentMode | postpaid |
activationTRX / totalTRX | Valores exatos, com 6 casas decimais |
quoteId, alt | Presentes quando a ativação foi solicitada com uma cotação |
Limite de crédito atingido (402)
json
{
"detail": {
"code": 1004,
"msg": "Postpaid credit limit reached.",
"paymentMode": "postpaid",
"reason": "limit_reached"
}
}Nada é ativado e nada é faturado. Novas ativações serão aceitas novamente assim que seu pagamento for registrado ou seu limite for aumentado.
Códigos de erro pós-pago
| Código | HTTP | Descrição |
|---|---|---|
10010 | 200 | Resultado da consulta de preço (test) |
10011 | 200 | Cotação emitida (freezePrice) |
1004 | 402 | Limite de crédito pós-pago atingido |
4100 | 400 | Requisição inválida |
4101 | 400 | priceCurrency não suportado |
4102 | 400 | quoteId combinado com test ou freezePrice |
4103 | 409 | Cotação já utilizada |
4104 | 409 | Cotação expirada |
4106 | 404 | Cotação não encontrada |
4107 | 409 | Os parâmetros da requisição diferem da cotação |
4108 | 400 | Formato de quoteId inválido |
4109 | 422 | Não disponível para subcontas |
5032 | 503 | Preço temporariamente indisponível |
5033 | 503 | Taxa de câmbio temporariamente indisponível |
5034 | 503 | Faturamento temporariamente indisponível — a ativação não foi aceita |
5036 | 503 | Verificação de crédito temporariamente indisponível — tente novamente mais tarde |
Para todas as respostas 4xx e 503 acima, nada é ativado e nada é faturado.
Observações
- A idempotência fica a seu critério. O endpoint não possui chave de idempotência. Repetir uma requisição para um endereço que já está ativo é seguro e gratuito (
2001), mas duas requisições simultâneas para o mesmo endereço novo podem prosseguir ao mesmo tempo. Serialize a ativação por endereço do seu lado. - O formato de
orderIdéA+ dígitos e é exclusivo entre as ativações. - Nenhum webhook é enviado para ativação atualmente — a resposta e o
hashsão a confirmação. No momento, os webhooks cobrem apenas delegações confirmadas de energy, veja Webhooks.