POST /apiv2/time/add
Добавление TRON адреса в Host Mode для автоматического непрерывного управления энергией.
Обзор
Эндпоинт Time Add регистрирует TRON адрес для управления в Host Mode, активируя автоматические 24-часовые циклы делегации энергии. После добавления адрес будет получать 131,000 единиц энергии с автоматическим обновлением на основе паттернов использования.
URL эндпоинта
POST https://netts.io/apiv2/time/add
Аутентификация
Этот эндпоинт использует аутентификацию через JSON тело (не заголовки). Ваш API ключ и целевой адрес предоставляются в теле запроса.
Заголовки запроса
Заголовок | Обязательный | Описание |
---|---|---|
Content-Type | Да | application/json |
Тело запроса
{
"api_key": "ваш_api_ключ",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}
Параметры
Параметр | Тип | Обязательный | Валидация | Описание |
---|---|---|---|---|
api_key | string | Да | Должен существовать в системе | Ваш API ключ для аутентификации и биллинга |
address | string | Да | Формат TRC-20 | TRON адрес для добавления в Host Mode (должен начинаться с 'T' и содержать 34 символа) |
Валидация параметров
- api_key: Должен быть действительным API ключом, связанным с вашим аккаунтом и иметь достаточный баланс
- address: Должен соответствовать формату TRC-20
^T[1-9A-HJ-NP-Za-km-z]{33}$
- IP адрес: IP вашего запроса должен быть в белом списке, связанном с вашим API ключом
Примеры запросов
cURL
curl -X POST https://netts.io/apiv2/time/add \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY_HERE",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}'
Python
import requests
url = "https://netts.io/apiv2/time/add"
data = {
"api_key": "YOUR_API_KEY_HERE",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}
response = requests.post(url, json=data, verify=True)
if response.status_code == 200:
result = response.json()
if result['code'] == 0:
print(f"✅ Адрес добавлен успешно: {result['data']['address']}")
print(f"Временная метка: {result['data']['timestamp']}")
else:
print(f"❌ Ошибка: {result['msg']}")
else:
print(f"HTTP Ошибка: {response.status_code}")
Node.js
const axios = require('axios');
const url = 'https://netts.io/apiv2/time/add';
const data = {
api_key: 'YOUR_API_KEY_HERE',
address: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE'
};
axios.post(url, data)
.then(response => {
const result = response.data;
if (result.code === 0) {
console.log(`✅ Адрес добавлен: ${result.data.address}`);
} else {
console.log(`❌ Ошибка: ${result.msg}`);
}
})
.catch(error => {
console.error('Запрос не удался:', error.response?.data || error.message);
});
Ответ
Успешный ответ (200 OK)
{
"code": 0,
"msg": "Address added to Host Mode successfully",
"data": {
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"timestamp": "2025-09-02T07:30:15.123456"
}
}
Поля ответа
Поле | Тип | Описание |
---|---|---|
code | integer | Код ответа (0 = успех, отрицательный = ошибка) |
msg | string | Человекочитаемое сообщение ответа |
data.address | string | TRON адрес который был добавлен |
data.timestamp | string | ISO временная метка когда адрес был добавлен |
Ответы с ошибками
Ошибка аутентификации (401)
{
"code": -1,
"msg": "Invalid API key or IP not in whitelist",
"data": null
}
Неверный формат адреса (400)
{
"code": -1,
"msg": "Invalid TRC-20 address format",
"data": null
}
Адрес уже существует (400)
{
"code": -1,
"msg": "This address is already managed in Host Mode",
"data": null
}
Ошибка базы данных (500)
{
"code": -1,
"msg": "Database error adding address",
"data": null
}
Внутренняя ошибка сервера (500)
{
"code": -1,
"msg": "Internal server error",
"data": null
}
Ограничения частоты запросов
Следующие ограничения применяются к этому эндпоинту (на IP адрес):
Период | Лимит | Описание |
---|---|---|
1 секунда | 1 запрос | Максимум 1 запрос в секунду |
1 минута | 60 запросов | Максимум 60 запросов в минуту |
Заголовки ограничений
API возвращает информацию об ограничениях в заголовках ответа:
RateLimit-Limit: 1
RateLimit-Remaining: 0
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 1
X-RateLimit-Remaining-Second: 0
X-RateLimit-Limit-Minute: 60
X-RateLimit-Remaining-Minute: 59
Retry-After: 1
Превышение лимита (429)
{
"message": "API rate limit exceeded"
}
При превышении лимита ждите время, указанное в заголовке Retry-After
.
Что происходит после добавления адреса
- Регистрация в базе данных: Адрес регистрируется в системе Host Mode
- Установка статуса: Статус адреса устанавливается в 0 (готов к активации)
- Режим циклов: Адрес устанавливается в режим infinity по умолчанию (cycle_set = 0)
- Готовность к энергии: Адрес теперь готов получать автоматическую делегацию энергии
Поведение Host Mode
После добавления адреса в Host Mode:
- Количество энергии: 131,000 единиц энергии за делегацию
- Длительность: 24 часа на цикл делегации
- Авто-обновление: Энергия автоматически обновляется когда:
- Обнаружен USDT перевод (немедленный возврат + переделегация)
- Прошло 24 часа без активности (автоматическое обновление)
- Потребление циклов: Каждая делегация потребляет 1 цикл из вашего баланса
Безопасность и валидация
Валидация адреса
- Проверка формата: Адрес должен соответствовать формату TRC-20
T[1-9A-HJ-NP-Za-km-z]{33}
- Проверка длины: Ровно 34 символа
- Предотвращение дубликатов: Нельзя добавить один адрес дважды
Безопасность аутентификации
- Валидация API ключа: Ключ должен существовать и быть активным
- IP белый список: IP запроса должен быть в белом списке вашего аккаунта
- Проверка пользователя: Система проверяет TG и обычных пользователей
Безопасность базы данных
- Безопасность транзакций: Использует транзакции базы данных для консистентности
- Защита от откатов: Автоматический откат при ошибках
- Пулинг соединений: Безопасное управление соединениями с HAProxy
Технические детали
Архитектура сервиса
- Порт: 9010
- Framework: FastAPI с Pydantic моделями
- База данных: PostgreSQL с пулингом соединений
- Балансировка нагрузки: HAProxy для read/write операций
- Логирование: Подробное логирование в
/path/to/your/logs/time_api.log
Операции с базой данных
- Таблица:
netts_web_hosting_mode
- Операция: INSERT новой записи
- Значения по умолчанию:
status = 0
(готов)cycle_set = 0
(режим infinity)
- Временные метки: Автоматические
created_at
иupdated_at
Связанные эндпоинты
После добавления адреса вы можете:
- Time Status - Проверить статус адреса и циклы
- Time Order - Купить определенное количество циклов
- Time Infinity Start - Активировать неограниченные циклы
- Time Stop - Временно приостановить делегацию энергии
- Time Delete - Удалить адрес из Host Mode
Лучшие практики
Перед добавлением адреса
- Проверить адрес: Дважды проверить правильность TRON адреса и его активацию
- Проверить баланс: Убедиться в достаточности TRX баланса для циклов
- IP белый список: Подтвердить что ваш IP находится в белом списке
- Тестировать API ключ: Проверить что API ключ работает с другими эндпоинтами
После добавления адреса
- Мониторить статус: Использовать эндпоинт Time Status для отслеживания циклов
- Установить циклы: Использовать Time Order для покупки определенных циклов при необходимости
- Активировать Infinity: Использовать Time Infinity Start для непрерывной работы
- Отслеживать использование: Мониторить ваши циклы делегации энергии и затраты
Устранение неполадок
Частые проблемы
Проблема | Причина | Решение |
---|---|---|
Ошибка аутентификации | Неверный API ключ или IP не в белом списке | Проверить API ключ и добавить IP в белый список |
Неверный формат адреса | Адрес не соответствует формату TRC-20 | Проверить что адрес 34 символа начинающихся с 'T' |
Адрес уже существует | Попытка добавить дублирующийся адрес | Проверить существующие адреса через Time Status |
Ошибка базы данных | Временная проблема базы данных | Повторить запрос через несколько секунд |
Справочник кодов ошибок
Код | HTTP статус | Описание | Требуемое действие |
---|---|---|---|
0 | 200 | Успех | Нет - адрес добавлен успешно |
-1 | 400/401/500 | Различные ошибки | Проверить сообщение об ошибке для подробностей |
Ограничения частоты запросов
Следующие ограничения применяются к этому эндпоинту (на IP адрес):
Период | Лимит | Описание |
---|---|---|
1 секунда | 1 запрос | Максимум 1 запрос в секунду |
1 минута | 60 запросов | Максимум 60 запросов в минуту |
Заголовки ограничений
API возвращает информацию об ограничениях в заголовках ответа:
RateLimit-Limit: 1
RateLimit-Remaining: 0
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 1
X-RateLimit-Remaining-Second: 0
X-RateLimit-Limit-Minute: 60
X-RateLimit-Remaining-Minute: 59
Retry-After: 1
Превышение лимита (429)
{
"message": "API rate limit exceeded"
}
При превышении лимита ждите время, указанное в заголовке Retry-After
.
Примечания
- Режим по умолчанию: Адреса добавляются в режим infinity по умолчанию (неограниченные циклы)
- Делегация энергии: Система начнет управление энергией для этого адреса
- Биллинг: Циклы списываются с баланса вашего аккаунта автоматически
- Лимит адресов: Проверьте лимиты вашего аккаунта на максимальное количество адресов в Host Mode
- Активация: Адрес должен быть активирован в сети TRON перед добавлением
- Мониторинг: Используйте эндпоинт Time Status для мониторинга производительности адреса