Документация API

WebSocket API реального времени для мониторинга событий бана USDT/USDC в сетях Tron и Ethereum.

Начало работы

Подключитесь к WebSocket-эндпоинту для получения событий бана в реальном времени и запроса информации об адресах.

WebSocket Эндпоинт
wss://api.usdtbanlist.com/ws?apiKey=YOUR_API_KEY
💡

Получите API ключ

Откройте @USDTBanBot в Telegram, перейдите в Профиль → API Key для генерации ключа.

Аутентификация

Добавьте API ключ в URL подключения или отправьте auth-сообщение после подключения.

Вариант 1: Параметр URL (рекомендуется)
wss://api.usdtbanlist.com/ws?apiKey=mk_your_api_key_here
Вариант 2: Auth-сообщение
{
  "type": "auth",
  "apiKey": "mk_your_api_key_here"
}
Ответ при подключении
{
  "type": "connected",
  "clientId": "client_xxx",
  "authenticated": true,
  "tier": "free"  // or "premium"
}

События

После подключения и аутентификации вы будете получать события бана в реальном времени.

Тип событияОписаниеТариф
ban_submittedБан ожидает подтверждения в мультисигеПремиум
ban_executedАдрес забанен (подтверждено)Бесплатно
unban_submittedРазбан ожидает подтверждения в мультисигеПремиум
unban_executedАдрес разбаненБесплатно
destroy_submittedСжигание средств ожидает подтверждения в мультисигеПремиум
destroy_executedСредства сожжены с забаненного адресаБесплатно
Формат сообщения о событии
{
  "type": "event",
  "event": {
    "id": "uuid",
    "network": "trx",           // "trx" or "eth"
    "eventType": "ban_executed",
    "address": "41...",         // hex format
    "addressBase58": "T...",    // TRX only
    "symbol": "USDT",
    "txHash": "...",
    "blockNumber": 12345678,
    "timestamp": "2024-01-15T12:00:00Z",
    "amount": "1234.56",        // balance at event time
    "amountRaw": "1234560000"
  }
}

Методы JSON-RPC

Отправляйте JSON-RPC 2.0 запросы для получения данных и управления подписками.

ping

Проверка состояния соединения

Запрос
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "ping"
}
Ответ
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "pong"
}
getStatus

Получение текущего статуса подключения и информации о лимитах

Запрос
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getStatus"
}
Ответ
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tier": "free",
    "subscriptions": ["all"],
    "rateLimit": {
      "used": 5,
      "limit": 10,
      "windowMs": 60000
    }
  }
}
subscribe

Подписка на каналы событий

Запрос
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "subscribe",
  "params": {
    "channels": ["all"]  // "all", "eth", "trx", or address
  }
}
Ответ
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "subscribed": ["all"],
    "total": 1
  }
}
unsubscribe

Отписка от каналов

Запрос
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "unsubscribe",
  "params": {
    "channels": ["eth"]  // empty array to unsubscribe all
  }
}
Ответ
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "unsubscribed": ["eth"],
    "remaining": 1
  }
}
checkAddress

Проверка, забанен ли адрес

Запрос
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "checkAddress",
  "params": {
    "address": "TLJpijVuVyjAtKRahhGTAFkpZxfpzHMtWe"
  }
}
Ответ
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "address": "TLJpijVuVyjAtKRahhGTAFkpZxfpzHMtWe",
    "network": "trx",
    "isBanned": false,
    "usdt_status": "active",
    "usdc_status": "active",
    "usdt_balance": "0.00",
    "usdc_balance": "0.00",
    "tag": { "type": "GasFree", "tag": "GasFree" },
    "events": [{ "event_name": "UnBlock", "volume": "0.00", "symbol": "USDT", "status": "executed" }],
    "walletScore": { "totalScore": 45, "riskLevel": "medium" },
    "connections": { "totalConnections": 0, "categories": [] },
    "formattedText": "..."
  }
}
getAddressInfo

Получение подробной информации об адресе

Запрос
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getAddressInfo",
  "params": {
    "address": "TLJpijVuVyjAtKRahhGTAFkpZxfpzHMtWe",
    "network": "trx"
  }
}
Ответ
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "address": "TLJpijVuVyjAtKRahhGTAFkpZxfpzHMtWe",
    "network": "trx",
    "info": {
      "label": "Exchange Wallet",
      "firstSeen": "2023-01-15T10:00:00Z",
      "lastSeen": "2024-01-10T15:30:00Z"
    },
    "cached": true
  }
}

Лимиты запросов

ТарифRPC запросыСобытия
Бесплатно10 / минутуТолько исполненные
Премиум100 / минутуВсе события (ожидающие + исполненные)

При превышении лимита запросов вы получите ответ с ошибкой:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32000,
    "message": "Rate limit exceeded"
  }
}

Примеры

JavaScript / Node.js
example.js
const WebSocket = require('ws');

const API_KEY = 'mk_your_api_key';
const ws = new WebSocket(`wss://api.usdtbanlist.com/ws?apiKey=${API_KEY}`);

ws.on('open', () => {
  console.log('Connected');

  // Subscribe to TRX events
  ws.send(JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'subscribe',
    params: { channels: ['trx'] }
  }));
});

ws.on('message', (data) => {
  const msg = JSON.parse(data);

  if (msg.type === 'event') {
    console.log('Ban event:', msg.event.eventType, msg.event.address);
  }

  if (msg.jsonrpc) {
    console.log('RPC response:', msg);
  }
});

ws.on('error', console.error);
Python
example.py
import json
import websocket

API_KEY = 'mk_your_api_key'

def on_message(ws, message):
    msg = json.loads(message)

    if msg.get('type') == 'event':
        event = msg['event']
        print(f"Ban event: {event['eventType']} - {event['address']}")

    if msg.get('type') == 'connected' and msg.get('authenticated'):
        # Subscribe to all events
        ws.send(json.dumps({
            'jsonrpc': '2.0',
            'id': 1,
            'method': 'subscribe',
            'params': {'channels': ['all']}
        }))

def on_error(ws, error):
    print(f"Error: {error}")

ws = websocket.WebSocketApp(
    f"wss://api.usdtbanlist.com/ws?apiKey={API_KEY}",
    on_message=on_message,
    on_error=on_error
)

ws.run_forever()

Нужна помощь?

Свяжитесь с нами в Telegram для поддержки или запросов функций.

Связаться с поддержкой
Документация API — USDT Ban List