Documentación API

API WebSocket en tiempo real para monitorear eventos de bloqueo USDT/USDC en redes Tron y Ethereum.

v1.0wss://api.usdtbanlist.com/ws

Primeros Pasos

Conéctate al endpoint WebSocket para recibir eventos de bloqueo en tiempo real y consultar información de direcciones.

Endpoint WebSocket
wss://api.usdtbanlist.com/ws?apiKey=YOUR_API_KEY
🔑

Obtén tu clave API

Go to your Account → Profile to generate an API key, or use @USDTBanBot on Telegram.

Autenticación

Incluye tu clave API en la URL de conexión o envía un mensaje de autenticación después de conectarte.

Opción 1: Parámetro URL (recomendado)
wss://api.usdtbanlist.com/ws?apiKey=mk_your_api_key_here
Opción 2: Mensaje de Autenticación
{
  "type": "auth",
  "apiKey": "mk_your_api_key_here"
}
Respuesta de Conexión
{
  "type": "connected",
  "clientId": "client_xxx",
  "authenticated": true,
  "tier": "free"
}

Eventos

Una vez conectado y autenticado, recibirás eventos de bloqueo en tiempo real.

⚠️

Importante

Los eventos en tiempo real se entregan solo para direcciones en su lista de monitoreo. Agregue direcciones a través de @USDTBanBot (sección Billeteras), Panel de cuenta, Telegram Mini App.

Tipo de EventoDescripciónPlan
ban_submittedBloqueo pendiente en multisigPremium
ban_executedDirección bloqueada (confirmado)Gratis
unban_submittedDesbloqueo pendiente en multisigPremium
unban_executedDirección desbloqueadaGratis
destroy_submittedQuema de fondos pendiente en multisigPremium
destroy_executedFondos quemados de dirección bloqueadaGratis
Formato de Mensaje de Evento
{
  "type": "event",
  "event": {
    "id": "uuid",
    "network": "trx",
    "eventType": "ban_executed",
    "address": "41...",
    "addressBase58": "T...",
    "symbol": "USDT",
    "txHash": "...",
    "blockNumber": 12345678,
    "timestamp": "2024-01-15T12:00:00Z",
    "amount": "1234.56",
    "amountRaw": "1234560000"
  }
}

Métodos JSON-RPC

Envía solicitudes JSON-RPC 2.0 para consultar datos y gestionar suscripciones.

ping

Verificar estado de conexión

Request
{ "jsonrpc": "2.0", "id": 1, "method": "ping" }
Response
{ "jsonrpc": "2.0", "id": 1, "result": "pong" }
getStatus

Obtener estado actual de conexión e información de límites

Request
{ "jsonrpc": "2.0", "id": 1, "method": "getStatus" }
Response
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "tier": "free",
    "subscriptions": ["all"],
    "rateLimit": { "used": 5, "limit": 10, "windowMs": 60000 }
  }
}
subscribe

Suscribirse a canales de eventos

Request
{
  "jsonrpc": "2.0", "id": 1,
  "method": "subscribe",
  "params": { "channels": ["all"] }
}
Response
{ "jsonrpc": "2.0", "id": 1, "result": { "subscribed": ["all"], "total": 1 } }
unsubscribe

Cancelar suscripción de canales

Request
{
  "jsonrpc": "2.0", "id": 1,
  "method": "unsubscribe",
  "params": { "channels": ["eth"] }
}
Response
{ "jsonrpc": "2.0", "id": 1, "result": { "unsubscribed": ["eth"], "remaining": 1 } }
checkAddress

Verificar si una dirección está bloqueada

Request
{
  "jsonrpc": "2.0", "id": 1,
  "method": "checkAddress",
  "params": { "address": "TLJpijVuVyjAtKRahhGTAFkpZxfpzHMtWe" }
}
Response
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "address": "TLJpijVuVyjAtKRahhGTAFkpZxfpzHMtWe",
    "network": "trx",
    "isBanned": false,
    "usdt_status": "active",
    "usdt_balance": "0.00",
    "tag": { "type": "Exchange", "tag": "Binance" },
    "events": [{ "event_name": "Block", "volume": "1234.56", "symbol": "USDT", "status": "executed" }],
    "walletScore": { "totalScore": 45, "riskLevel": "medium" },
    "connections": { "totalConnections": 3, "categories": ["Blacklist"] }
  }
}
amlCheck$1.50

AML compliance check for a wallet address — risk score, fund sources breakdown

Request
{
  "jsonrpc": "2.0", "id": 1,
  "method": "amlCheck",
  "params": { "address": "TGpnJAXqxmMoPQhaKcPN3jc6nDYbbiyYCz" }
}
Response
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "address": "TGpnJAXqxmMoPQhaKcPN3jc6nDYbbiyYCz",
    "network": "tron",
    "riskScore": 75,
    "riskLevel": "high",
    "sources": {
      "byType": [{ "name": "Cross-chain protocol", "share": 85.2 }, { "name": "Exchange", "share": 14.8 }],
      "byName": [{ "name": "Swft Swap", "share": 85.2 }, { "name": "OKX", "share": 14.8 }]
    },
    "details": {
      "directTxCount": 14, "depth": 3, "totalVolume": 225046.97,
      "flags": ["risky", "has_risky_sources"], "riskySourcesCount": 9
    },
    "price": 1.50,
    "balanceAfter": 8.50
  }
}
txCheck$1.50

AML compliance check for a transaction — trace fund sources (USDT/USDC only)

Request
{
  "jsonrpc": "2.0", "id": 1,
  "method": "txCheck",
  "params": {
    "txHash": "a1b2c3d4e5f6...64_hex_chars",
    "direction": 0
  }
}

// direction: 0 = Source of Funds (default), 1 = Use of Funds
// Supported: USDT on TRON, USDT/USDC on Ethereum
// Network is auto-detected: 0x-prefix → Ethereum, plain hex → TRON
Response
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "txHash": "a1b2c3d4...",
    "network": "tron",
    "direction": 0,
    "riskScore": 82,
    "riskLevel": "high",
    "sources": {
      "byType": [{ "name": "Mixing service", "share": 65.3 }, { "name": "Exchange", "share": 34.7 }],
      "byName": [{ "name": "Tornado Cash", "share": 65.3 }, { "name": "Binance", "share": 34.7 }]
    },
    "details": { "timestamp": 1716500000 },
    "price": 1.50,
    "balanceAfter": 7.00
  }
}
getAddressInfo

Obtener información detallada sobre una dirección

Request
{
  "jsonrpc": "2.0", "id": 1,
  "method": "getAddressInfo",
  "params": { "address": "T...", "network": "trx" }
}
Response
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "address": "T...", "network": "trx",
    "info": { "label": "Exchange", "firstSeen": "2023-01-15" },
    "cached": true
  }
}

Límites de Velocidad

PlanSolicitudes RPCEventos
Gratis10 / minutoSolo ejecutados
Premium100 / minutoTodos los eventos (pendientes + ejecutados)

Error Codes

Errors follow JSON-RPC 2.0 format with numeric codes.

CodeMessageDescription
-32000Rate limit exceededToo many requests per minute
-32003Authentication requiredMissing or invalid API key
-32010Insufficient balanceNot enough balance for paid method (amlCheck, txCheck)
-32600Invalid requestMalformed JSON-RPC request
-32601Method not foundUnknown method name
-32602Invalid paramsMissing or invalid parameters
-32603Internal errorServer-side error
Error Response Example
{
  "jsonrpc": "2.0", "id": 1,
  "error": {
    "code": -32010,
    "message": "Insufficient balance",
    "data": { "balance": 0, "price": 1.5 }
  }
}

Ejemplos

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'] } }));
  // AML check on wallet address (costs $1.50)
  ws.send(JSON.stringify({ jsonrpc: '2.0', id: 2, method: 'amlCheck', params: { address: 'T...' } }));
  // AML check on transaction hash (costs $1.50)
  ws.send(JSON.stringify({ jsonrpc: '2.0', id: 3, method: 'txCheck', params: { txHash: '...64hex...' } }));
});

ws.on('message', (data) => {
  const msg = JSON.parse(data);
  if (msg.type === 'event') console.log('Ban event:', msg.event.eventType, msg.event.addressBase58);
  if (msg.id === 2 && msg.result) console.log('Address AML:', msg.result.riskScore, msg.result.riskLevel);
  if (msg.id === 3 && msg.result) console.log('Tx AML:', msg.result.riskScore, msg.result.riskLevel);
});
Python
example.py
import json, websocket

API_KEY = 'mk_your_api_key'

def on_message(ws, message):
    msg = json.loads(message)
    if msg.get('type') == 'event':
        print(f"Ban: {msg['event']['eventType']} - {msg['event'].get('addressBase58', msg['event']['address'])}")
    if msg.get('type') == 'connected' and msg.get('authenticated'):
        ws.send(json.dumps({ 'jsonrpc': '2.0', 'id': 1, 'method': 'amlCheck', 'params': {'address': 'T...'} }))

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

¿Necesitas Ayuda?

Contáctanos en Telegram para soporte o solicitudes de funciones.

Contactar Soporte
Documentación API — USDT Ban List