Активатор — активация адреса
Активируйте адрес TRON, который никогда не использовался в сети. У совершенно нового адреса отсутствует запись аккаунта, поэтому он не может получать делегированные Energy или Bandwidth до тех пор, пока не будет активирован. Этот эндпоинт создает аккаунт для вас и возвращает хеш транзакции активации.
Активация — это однократная операция для каждого адреса. Если адрес уже активен, эндпоинт сообщит об этом и ничего не спишет.
Базовый URL эндпоинта
https://netts.io/apiv2/activatorЗаголовки запроса
| Заголовок | Обязательный | Описание |
|---|---|---|
| Content-Type | Да | application/json |
| X-API-KEY | Да | Ваш API-ключ из панели управления Netts |
Ваш user_id определяется на основе API-ключа — передавать его не требуется.
Активация — POST /apiv2/activator
Тело запроса
{ "targetAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE" }| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
targetAddress | string | Да | Адрес TRON для активации. Должен соответствовать шаблону ^T[A-Za-z0-9]{33}$ (34 символа, начинается с T). |
Ответ — активирован (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"
}
}
}| Поле | Тип | Описание |
|---|---|---|
orderId | string | Номер заказа активации, всегда A + цифры. Используйте его для сверки. |
targetAddress | string | Адрес, который был активирован |
activation_cost | float | Сумма, списанная с вашего баланса, в TRX |
user_balance_before | float | Баланс до списания |
user_balance_after | float | Баланс после списания |
hash | string | Хеш транзакции активации. Проверьте его в любом обозревателе блоков TRON. |
Ответ — уже активен (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, а не вызывайте его немедленно.
Справочник кодов ошибок
| Код | Описание | 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.
Дополнительные поля запроса
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
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"
}
}
}| Поле | Описание |
|---|---|
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 | Описание |
|---|---|---|
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+ цифры, он уникален для всех активаций. - Вебхуки для активации в настоящее время не отправляются — ответ и
hashслужат подтверждением. Вебхуки сейчас охватывают только подтвержденные делегирования Energy, см. Вебхуки.