Eagle Virtual USDT & USDC Blacklist Tracker

Verifica cualquier billetera contra el registro en cadena de congelaciones, listas negras y incautaciones de stablecoins (USDT, USDC y 442 monedas más en 35 blockchains). Con fecha, citado, sin puntuaciones de riesgo. Servidor remoto, sin necesidad de cuenta.

Servidor MCP alojado

npx add-mcp 'https://mcp.eaglevirtual.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

El registro de listas negras y congelamientos, para asistentes de IA

Pregúntale a Claude, ChatGPT o Cursor si Tether, Circle o cualquier otro emisor ha incluido en listas negras, congelado o incautado una billetera. Es el mismo registro que muestra este sitio.

Qué es

Estas herramientas leen el registro de listas negras y congelamientos de stablecoins: lo que cada emisor, la empresa que creó una moneda y puede congelarla, ha hecho con las billeteras. Cada respuesta proviene del mismo registro en vivo que muestra este sitio, e indica la fecha en que se leyó.

ElementoDetalle
Endpointhttps://mcp.eaglevirtual.com/mcp
Transporte: una forma estándar para que un asistente de IA llame a una herramienta externa. Tu asistente envía la pregunta a nuestro servidor y recibe registros con fecha. Pegas la dirección anterior en tu asistente una vez, y él hace el resto.HTTP transmisible: JSON-RPC sobre POST. GET se rechaza con 405.
EspecificaciónRevisión MCP 2026-07-28
Nombre del servidoreagle-virtual, versión 1.1.1
AutenticaciónNinguna. Las seis herramientas solo leen. Sin una cuenta, una dirección de red obtiene 100 llamadas al día. Con sesión iniciada, o enviando una clave, las llamadas cuentan contra las 5,000 diarias de tu cuenta, o la clave tiene un plan de pago. Las llamadas desde los propios servidores de Anthropic, OpenAI y Perplexity no se cuentan.
Nombre de hosthttps://mcp.eaglevirtual.com, activo desde el 22 de agosto de 2026. Esta es la única dirección compatible.

Cómo conectarse

Pega https://mcp.eaglevirtual.com/mcp en tu cliente. Si una ruta de menú a continuación contradice la documentación del cliente, sigue la del cliente.

  1. Claude (web y escritorio)

    Configuración → Conectores → Agregar conector personalizado → pega https://mcp.eaglevirtual.com/mcp → Agregar. En los planes Team y Enterprise, un propietario lo agrega una vez.
  2. ChatGPT

    Activa el modo Desarrollador en Configuración, agrega un servidor MCP remoto, ingresa https://mcp.eaglevirtual.com/mcp, y elige sin autenticación.
  3. Claude Code, Cursor, VS Code o cualquier otro cliente MCP

    Usa los fragmentos a continuación, cada uno en el mcp.json de ese cliente.

Claude Code, Cursor, VS Code

# Claude Code — one command:
claude mcp add --transport http eaglevirtual https://mcp.eaglevirtual.com/mcp

# Claude Code — or .mcp.json at the project root (the type line is required):
{
  "mcpServers": {
    "eaglevirtual": {
      "type": "http",
      "url": "https://mcp.eaglevirtual.com/mcp"
    }
  }
}

# Cursor — .cursor/mcp.json in the project, or ~/.cursor/mcp.json:
{
  "mcpServers": {
    "eaglevirtual": {
      "url": "https://mcp.eaglevirtual.com/mcp"
    }
  }
}

# VS Code — .vscode/mcp.json:
{
  "servers": {
    "eaglevirtual": {
      "type": "http",
      "url": "https://mcp.eaglevirtual.com/mcp"
    }
  }
}

Lectura, indexación y acceso masivo

Los motores de búsqueda y los asistentes de IA son bienvenidos a leer, indexar y citar estas páginas. Para copiar el registro en masa, cuéntanos qué estás construyendo en sales@eaglevirtual.com.

Entrenar un modelo con el registro, o republicarlo en masa, requiere un acuerdo por escrito. Las reglas están en /license.

sales@eaglevirtual.com

Prueba estos

Cada indicación responde con registros fechados, de la herramienta nombrada junto a ella.

ElementoDetalle
¿Qué controles ha usado realmente Circle en USDC, y cuándo fue la última vez que usó cada uno?get_token_policy: cada control que ha usado, con fechas y conteos.
¿Cuántas billeteras incluyó Tether en listas negras en 2025, y cómo se compara con 2024?get_token_statistics: conteos de USDT por año, con eventos y billeteras.
¿Qué cadenas cubre esto, y qué tan actualizado está?get_coverage: cada cadena y moneda cubierta, y qué tan actualizada está cada una.
¿Tether ha congelado o incluido en listas negras esta billetera: TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81?get_address_status: su estado y un registro fechado para cada evento.
Muéstrame congelamientos recientes de USDT en Tron.list_freeze_events: las filas publicadas más recientes, USDT en Tron.
¿Cuál es la lista negra de stablecoins más grande y el congelamiento más grande jamás registrado?get_biggest, llamado dos veces: la lista negra más grande y el congelamiento más grande desde 2015.

La referencia completa de herramientas: cada herramienta, campo y respuesta

Consultar el servidor directamente

No necesitas una biblioteca cliente. El servidor habla JSON-RPC 2.0 sobre HTTP: un POST por cada llamada a https://mcp.eaglevirtual.com/mcp. Las seis herramientas de lectura no requieren cuenta ni clave, y GET se responde con 405. Se requieren cuatro encabezados: Content-Type: application/json; Accept: application/json, text/event-stream; MCP-Protocol-Version: 2026-07-28; y Mcp-Method nombrando el método JSON-RPC. Una llamada a tools/call también necesita Mcp-Name nombrando la herramienta. Debido a que el servidor implementa la revisión de protocolo 2026-07-28, cada solicitud también incluye el sobre por solicitud en params._meta (la versión del protocolo, el nombre y versión de tu cliente, y sus capacidades). Una solicitud sin él se rechaza con un error JSON-RPC que indica qué clave falta. Una solicitud cuyos encabezados y cuerpo no coinciden se rechaza con -32020 en lugar de adivinarse.

Las mismas formas de llamada funcionan para cada herramienta: tools/list para leer los seis esquemas, luego tools/call con el nombre de la herramienta y sus argumentos. El ejemplo a continuación verifica una billetera. La respuesta que sigue es lo que el servidor en vivo devolvió para ella el 12 de septiembre de 2026, reducida a un registro.

Solicitud: curl, tools/call get_address_status

curl -s https://mcp.eaglevirtual.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: tools/call' \
  -H 'Mcp-Name: get_address_status' \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": {
      "name": "get_address_status",
      "arguments": { "address": "0x9b2328055872e7470e9cfdafa0186c1c72c3bac4" },
      "_meta": {
        "io.modelcontextprotocol/protocolVersion": "2026-07-28",
        "io.modelcontextprotocol/clientInfo": { "name": "my-script", "version": "1" },
        "io.modelcontextprotocol/clientCapabilities": {}
      }
    }
  }'

Qué devuelve

Un resultado JSON-RPC. Su content[0].text es la respuesta como una cadena JSON, y su structuredContent es la misma respuesta como objeto. El estado es uno de restricted, clean o stale. Cada registro incluye un título, un texto de una oración que nombra al emisor como actor, una url en este sitio para citar, los datos del registro (incluyendo el monto y la cifra en dólares cuando el registro los tiene), y un bloque de metadatos con la fecha de corte y la licencia. known_name es el nombre primario ENS verificado de la billetera cuando tiene uno, y null en caso contrario, como en esta muestra. Ningún otro tipo de nombre se sirve jamás, por lo que known_name_verified es true siempre que haya un nombre presente. Una billetera sin nada registrado responde clean solo mientras podamos responder por cada cadena, y stale en caso contrario. No es un clean simple sobre un vacío.

Respuesta, reducida a un registro

{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "content": [{ "type": "text", "text": "{ …the same object as structuredContent… }" }],
    "structuredContent": {
      "address": "0x9b2328055872E7470e9CFDAfA0186C1c72C3bAc4",
      "lookup_key": "0x9b2328055872e7470e9cfdafa0186c1c72c3bac4",
      "recognized": true,
      "known_name": null,
      "known_name_verified": null,
      "state": "restricted",
      "headline": "3 records found",
      "record_count": 3,
      "records": [
        {
          "id": "fae73fe502850f640120e24afa1c075d",
          "title": "USDT — balance taken on Ethereum, block 25,776,080",
          "url": "https://eaglevirtual.com/address/0x9b2328055872e7470e9cfdafa0186c1c72c3bac4",
          "text": "Tether took the balance of 0x9b2328055872e7470e9cfdafa0186c1c72c3bac4 on Ethereum on 2026-08-17, block 25,776,080. Transaction 0xd87f889460d81cb099eb1d617efad22728aae787fb2fb5d7f948bb634add4ad9. Amount 178,835.401131 USDT, as the event logged it ($178,835.40 at the event block, basis peg).",
          "metadata": {
            "source": "Eagle Virtual USDT & USDC Blacklist Tracker",
            "as_of": "2026-08-24",
            "corpus_as_of": "2026-08-24",
            "exported_at": "2026-08-24T21:01:57.000Z",
            "license": "https://eaglevirtual.com/license.xml"
          },
          "data": {
            "address": "0x9b2328055872e7470e9cfdafa0186c1c72c3bac4",
            "chain": "Ethereum", "chain_id": "1", "coin": "USDT", "issuer": "Tether",
            "category": "blacklist", "event_signature": "DestroyedBlackFunds(address,uint256)",
            "is_seizure": true, "is_release": false,
            "observed_at": "2026-08-17T16:44:47.000Z", "block_number": 25776080,
            "transaction_hash": "0xd87f889460d81cb099eb1d617efad22728aae787fb2fb5d7f948bb634add4ad9",
            "amount": "178,835.401131", "amount_unit": "USDT",
            "amount_basis": "logged", "amount_note": "As the event logged it.",
            "usd": "$178,835.40", "usd_basis": "peg"
          }
        }
      ]
    }
  }
}

Las seis herramientas

El servidor lista seis herramientas, en este orden, y cada una de ellas solo lee. Responden con conteos, fechas, la única dirección que proporcionaste, el feed publicado o los montos registrados más grandes. Nada aquí escribe nada ni necesita una cuenta.

Cada respuesta tiene la misma forma: un estado o un conteo, una lista de registros y un bloque de metadatos. Cada registro es un objeto que puedes citar: un id, un título, una url en este sitio, un texto fechado de una oración con el emisor como actor, y un bloque de datos con campos estructurados. Una billetera con seis eventos registrados devuelve seis registros, cada uno apuntando a la página de esa billetera aquí.

El bloque de metadatos tiene source, as_of (la fecha del evento registrado más reciente, no la fecha de hoy), corpus_as_of, exported_at (cuando publicamos por última vez los datos de los que este servidor responde) y license. Cuando no podemos responder por una cadena en el momento de la llamada, not_vouched_for la nombra: la cadena, si nunca fue escaneada o está atrasada, y el último bloque verificado. coverage_note dice lo mismo en una oración. Cuando nuestros datos no responden en absoluto, coverage_note lo dice en su lugar. Ninguno de los dos casos queda jamás en silencio.

ElementoDetalle
get_address_statusDale una billetera. Devuelve cada congelamiento, incautación, inclusión en lista negra o listado de sanciones en cadena registrado contra ella, con la transacción y el bloque de cada uno. Estado: clean, restricted o stale.
get_token_statisticsConteos por moneda, cadena, mes o año. No devuelve direcciones.
get_token_policyPara cada moneda, qué controles de restricción ha usado realmente el emisor, cuántas veces, y las fechas primera y más reciente. No devuelve direcciones.
get_coverageLas cadenas y monedas cubiertas, la fecha de corte, y qué cadenas no podemos respaldar en este momento.
list_freeze_eventsEl feed publicado de eventos recientes (las mismas filas que muestra la página de eventos, dentro de los últimos 6 meses), filtrable por moneda, cadena, tipo y fecha. Dale un mes para listar un mes completo en su lugar: los últimos 6 meses sin cuenta, los últimos 12 meses con una cuenta gratuita, y todos los meses en el plan Business. Es una de las dos herramientas que devuelven direcciones que no proporcionaste (la otra es la vista predeterminada de get_biggest), y no se puede paginar más allá.
get_biggestLas inclusiones en listas negras, congelamientos, incautaciones y liberaciones registradas más grandes, de mayor a menor, filtrables por moneda, cadena y tipo. Una restricción se clasifica por el saldo que tenía la billetera. Una incautación se clasifica por el saldo tomado. Cada fila dice cuál. La vista predeterminada es la misma ventana de 6 meses y nombra la billetera. El alcance all_time cubre todo el registro desde 2015 y no nombra billetera, transacción ni bloque.

get_address_status: verificar una billetera

Dale una dirección en cualquier forma que use su cadena (EVM, TRON, Solana o Stellar). Las mayúsculas no importan. La dirección se normaliza antes de la búsqueda, por lo que una dirección con mayúsculas de suma de verificación y su forma en minúsculas son la misma billetera.

Lo que devuelve: la dirección completa, el estado (clean, restricted o stale), un titular ("No se registró congelamiento, incautación o lista negra", "N registros encontrados" o "No podemos responder por esto en este momento"), y un registro por cada evento registrado. Cada registro tiene el emisor, la moneda, la cadena, la fecha, el bloque, el hash de la transacción, la firma del evento, y el monto y la cifra en dólares cuando el registro los tiene. known_name es el nombre primario ENS verificado y actual de la billetera, o null. Un nombre ENS que no sea el primario, una etiqueta externa o un nombre reportado nunca se sirve, por lo que known_name_verified es true siempre que haya un nombre presente. Cada registro también incluye el contrato y nombre completo de la moneda, la palabra de tipo que imprime la página y la base en dólares en inglés sencillo. Una cadena que no sea una dirección válida en ninguna cadena que verificamos devuelve recognized: false y no se ejecuta ninguna búsqueda, por lo que un error tipográfico no puede leerse como una billetera limpia.

stale significa que no pudimos responder por la respuesta en ese momento. O nuestros datos no respondieron, o una cadena de la que depende la respuesta estaba atrasada. Es una declaración sobre nosotros, no sobre la billetera.

Los montos y las cifras en dólares se devuelven donde el registro los tiene, y solo allí. amount es la cantidad en las unidades propias de la moneda. amount_unit nombra la moneda, y amount_basis dice de dónde provino la cifra: registrada, como el propio evento la nombró, o medida en cadena. Una cifra medida es el saldo que tenía la billetera en el bloque del evento para una restricción, o en el bloque anterior para una incautación, porque el bloque de incautación lo destruyó. usd es la cifra en dólares a un precio certificado para esa moneda en ese bloque, formateada al centavo, con usd_basis nombrando la fuente del precio. Donde no existe un precio certificado para ese bloque, usd es null. No es el precio de hoy sobre un evento antiguo, y no es $0.00. Donde el registro no tiene ningún monto, amount es null y amount_note lo dice.

ElementoDetalle
addressObligatorio. La dirección de la billetera, en cualquier formato que use la cadena; hasta 120 caracteres.

get_token_statistics: conteos, sin direcciones

Conteos de congelamientos, incautaciones e inclusiones en listas negras registrados, agrupados por moneda, cadena, mes o año, con la fecha del primer evento y la fecha de corte. Los conteos de billeteras son distintos dentro de cada agrupación y no suman el total a propósito: una billetera restringida por dos emisores es una billetera en general y una en cada una de dos filas, y la respuesta lo dice.

El total se cuenta sobre cada moneda que verificamos, lo que incluye monedas que no son stablecoins. La respuesta lo etiqueta de esa manera en lugar de permitir que se infiera "billeteras de stablecoins".

ElementoDetalle
tokenOpcional. Un símbolo de moneda, p. ej. USDT. Omítelo para todas las monedas.
chainOpcional. Un nombre de cadena o id de cadena, p. ej. Ethereum o 1.
group_byOpcional. Uno de token, chain, month, year, overall. El valor predeterminado es token.

get_token_policy: lo que ha hecho un emisor

Para una moneda, el registro de qué controles de restricción ha usado realmente el emisor (congelar, incluir en listas negras, tomar un saldo, levantar una restricción), cada uno con su firma de evento en cadena, cuántas veces, y las fechas primera y más reciente, en las cadenas que verificamos, a partir de la fecha as_of en la respuesta.

Informa lo que ha sucedido. No informa de lo que un contrato es capaz: la inspección de capacidad del contrato no se publica, el campo contract_capability es null en lugar de false, y la nota junto a él dice que la ausencia de eventos registrados no es evidencia de que un control esté ausente. Una moneda sin nada registrado devuelve nada registrado, fechado y con alcance. No devuelve "no puede congelar".

ElementoDetalle
tokenOpcional. Un símbolo de moneda, p. ej. USDT, USDC, EURC. Omítelo para todas las monedas registradas.

get_coverage: qué comprobamos y qué tan actualizado está

No acepta argumentos. Devuelve las cadenas y monedas cubiertas, el número de eventos registrados, las fechas del primer evento y de corte, un registro por cada cadena que indique si podemos responder por ella en este momento, y la misma lista not_vouched_for que incluyen todas las demás herramientas. all_lanes_current es true, false o null. Es null cuando no se pudo consultar nuestros datos, porque "no pudimos comprobarlo" no debe leerse como "todo está actualizado".

Llámalo antes de confiar en una respuesta sobre una cadena o una moneda. Una cadena que no estamos comprobando aparece como no verificada actualmente, y la ausencia de registros para ella no significa nada.

list_freeze_events: el feed publicado

Los mismos eventos recientes que muestra la página de eventos (los últimos 6 meses, limitados al feed publicado), filtrables por moneda, cadena, tipo y fecha, hasta 100 filas en una llamada y 25 por defecto. Cada fila es un registro que cita la página de esa billetera.

Pasa un mes (AAAA-MM) para listar un mes completo registrado en su lugar, las mismas filas que la página de eventos muestra para ese mes. El alcance de meses depende de la cuenta: los últimos 6 meses sin cuenta, los últimos 12 meses con cuenta gratuita y todos los meses en el plan Business. Un mes fuera de ese rango responde con un error llamado window y la frase que muestra la página de eventos. Cada respuesta indica su ventana en window_months y window_source. Una fila de mes muestra la cifra en dólares estadounidenses con precio y sin cantidad nativa. get_address_status muestra la cantidad.

Es una muestra publicada, no el registro completo, y la respuesta lo indica: subset_note establece el tamaño de la muestra y que no hay forma de paginar más allá, y matched_in_published_subset y truncated indican qué alcanzaron los filtros. No hay cursor, ni offset, ni búsqueda por prefijo ni "qué cambió desde". Cada uno de esos entregaría la lista completa fila por fila. Para una billetera, usa get_address_status. Para totales, usa get_token_statistics.

ElementoDetalle
tokenOpcional. Un símbolo de moneda, p. ej. USDT.
chainOpcional. Un nombre de cadena o id de cadena, p. ej. Tron o 1.
kindOpcional. Uno de blacklist, freeze, seizure, release, sanctions, delisting.
sinceOpcional. Solo eventos en o después de esta fecha, AAAA-MM-DD.
monthOpcional. Un mes completo registrado, AAAA-MM, en lugar del feed reciente. Los últimos 6 meses sin cuenta, los últimos 12 meses con cuenta gratuita y todos los meses en el plan Business.
limitOpcional. Filas a devolver, de 1 a 100. Por defecto 25.

get_biggest: los montos registrados más grandes

Listas negras, congelamientos, incautaciones y liberaciones ordenados por monto, de mayor a menor. Filtrable por moneda, cadena o tipo.

Una lista negra o un congelamiento se clasifica por el saldo que la billetera TENÍA cuando fue restringida. Una incautación se clasifica por el saldo que fue TOMADO. Son dos cantidades diferentes y el registro las mantiene separadas. Cada fila indica qué base usó: medida en el bloque del evento para una restricción, y en el bloque anterior para una incautación, porque el bloque de incautación destruyó el saldo. Una clasificación que las mezclara estaría comparando dinero congelado con dinero desaparecido.

La vista predeterminada cubre la misma ventana de 6 meses que el feed publicado e incluye la billetera, el bloque y la transacción para cada fila. Nuestro registro se remonta a 2015, por lo que los eventos más grandes en él probablemente sean más antiguos que esa ventana.

Para esos, pasa scope all_time. Esa clasificación cubre todo el registro y NO nombra NINGUNA billetera, NINGUNA transacción ni NINGÚN bloque para ninguna fila. Omitirlos es lo que permite retroceder tanto. Las direcciones de billetera en listas se muestran durante los últimos 6 meses sin cuenta, 12 meses con cuenta gratuita y en su totalidad en el plan Business. Cada conteo y total es el registro completo. Una clasificación de montos que no identifica a nadie no es una lista de billeteras, por lo que la ventana no se aplica a ella. Lo que obtienes es el monto, la moneda, la cadena, el emisor y la fecha.

Un monto aparece solo donde el registro tiene uno. Donde no lo tiene, la fila se omite de la clasificación en lugar de ordenarse como cero. Un cero colocaría una billetera cuyo monto nunca registramos por debajo de una cuyo monto fue genuinamente pequeño, y eso es una afirmación sobre ambas que no podemos hacer.

ElementoDetalle
tokenOpcional. Un símbolo de moneda, p. ej. USDT. Omítelo para todas las monedas.
chainOpcional. Un nombre de cadena o id de cadena, p. ej. Tron o 1.
kindOpcional. Uno de blacklist, freeze, seizure, release o sanctions. Omítelo para todos.
scopeOpcional. recent (el predeterminado) son los últimos 6 meses y nombra la billetera, el bloque y la transacción. all_time cubre todo el registro hasta 2015 y no nombra ninguno de ellos.
limitOpcional. Filas a devolver. Por defecto, el tamaño de página estándar del servidor.

Esquema de herramientas compatible con OpenAI

Las seis herramientas como definiciones de función, en la forma que esperan la API de chat-completions de OpenAI y los frameworks que la copian: un tipo, y una función con nombre, descripción y parámetros. Los objetos de parámetros son los propios esquemas de entrada del servidor, sin cambios. Una prueba falla si este bloque y el servidor alguna vez difieren.

Un agente que no puede hablar MCP puede mostrar estos a su modelo y retransmitir cada llamada al endpoint anterior como una solicitud de herramientas/llamada MCP con los mismos argumentos. Un agente que puede hablar MCP simplemente debería conectarse. El servidor lista las mismas seis.

tools, en la forma de llamada de función de OpenAI

[
  {
    "type": "function",
    "function": {
      "name": "get_address_status",
      "description": "Check one wallet address against the record of stablecoin blacklistings, freezes and seizures. Returns every recorded action against that address — which issuer took it, on which blockchain, on what date, and in which transaction and block, so it can be verified independently. Covers USDT, USDC and every other coin in this record, on every blockchain it checks. Returns a dated record of what an issuer did, never a risk score, rating, or opinion about the address or its owner. Needs no account.",
      "parameters": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "The wallet address to check, in any format the chain uses. Accepts EVM, TRON, Solana and Stellar forms; casing does not matter.",
            "maxLength": 120,
            "examples": [
              "0x000000000000000000000000000000000000dead",
              "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb"
            ]
          }
        },
        "required": [
          "address"
        ],
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "get_token_statistics",
      "description": "Counts of recorded stablecoin blacklistings, freezes and seizures — by coin, by blockchain, by month, or by year. Answers questions like \"how many wallets has Tether blacklisted\", \"which coin is frozen most often\", and \"how many seizures happened in 2025\". Returns counts and dates only; no wallet addresses are returned by this tool.",
      "parameters": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Optional coin ticker, e.g. USDT. A ticker two issuers use returns both coins, each with its issuer. Omit for every coin.",
            "maxLength": 32
          },
          "chain": {
            "type": "string",
            "description": "Optional blockchain name or chain id, e.g. Ethereum or 1.",
            "maxLength": 32
          },
          "group_by": {
            "type": "string",
            "enum": [
              "token",
              "chain",
              "month",
              "year",
              "overall"
            ],
            "description": "Which breakdown to return. Defaults to token."
          }
        },
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "get_token_policy",
      "description": "For a given coin, the record of which restriction controls the issuer has actually used — blacklisting, freezing, taking a balance, lifting a restriction — with the on-chain event signature, how many times, and the first and most recent dates. Reports what has happened, dated. It does not report what a contract is capable of: contract capability inspection is not published yet, and this tool says so rather than inferring that a coin cannot freeze from an absence of records. Discloses no wallets.",
      "parameters": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Coin ticker, e.g. USDT, USDC, EURC. A ticker two issuers use returns both coins, each with its issuer. Omit for every coin on record.",
            "maxLength": 32
          }
        },
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "get_coverage",
      "description": "The blockchains and coins covered by this stablecoin blacklist and freeze record, the date of the most recent recorded event, and which lanes we cannot currently vouch for. Call this to find out whether a chain or coin is in scope before relying on an answer about it, and to check whether any part of the record is behind. \`chains_claimed\`, \`coins_covered\`, \`contracts_checked\` and \`companies_checked\` are what a check covers; the \`coins\` array lists only the coins that have at least one recorded event, which is a smaller set. A coin is one name run by one issuer, so a name that two issuers use appears once per issuer, with the issuer after it.",
      "parameters": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "list_freeze_events",
      "description": "The published feed of recent stablecoin blacklist, freeze, seizure, release and on-chain sanctions events — the same rows eaglevirtual.com shows publicly — with the wallet, coin, blockchain, date, block and transaction for each. Covers every coin on every chain: omit the filters and it returns all of them, newest first. Filter by coin, blockchain, event kind or date to narrow it. Each result reports which chains, coins and issuers it actually contains. This is a published sample of the record, not the full corpus, and there is no way to page beyond it. Add month (YYYY-MM) to list one whole recorded month instead. Without an account the last 6 months can be listed, with a free account the last 12 months, and every month on the Business plan. To check a specific wallet, use get_address_status instead; for totals use get_token_statistics.",
      "parameters": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Coin symbol, e.g. USDT.",
            "maxLength": 32
          },
          "chain": {
            "type": "string",
            "description": "Blockchain name or chain id, e.g. Tron or 1.",
            "maxLength": 32
          },
          "kind": {
            "type": "string",
            "enum": [
              "blacklist",
              "freeze",
              "seizure",
              "release",
              "sanctions",
              "delisting"
            ],
            "description": "Restrict to one kind of event."
          },
          "since": {
            "type": "string",
            "description": "Only events on or after this date, YYYY-MM-DD.",
            "maxLength": 10
          },
          "month": {
            "type": "string",
            "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
            "minLength": 7,
            "maxLength": 7,
            "description": "One whole recorded month, YYYY-MM, instead of the recent feed. Without an account the last 6 months can be listed, with a free account the last 12 months, and every month on the Business plan."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Rows to return, up to 100. Defaults to 25."
          }
        },
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "get_biggest",
      "description": "The largest recorded stablecoin blacklistings, freezes, seizures and releases, ranked by amount, largest first. Answers \"what is the largest blacklist\", \"the biggest freeze\", and \"the biggest seizure\". Filter by coin, blockchain or kind. A blacklisting or freeze is ranked by the balance the wallet held when it was restricted; a seizure by the balance that was taken — two different quantities, and each row says which it is. Covers the last 6 months with the wallet, date, block and transaction for each; set scope to \"all_time\" for the largest in the whole record, which names no wallet, transaction or block.",
      "parameters": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Coin symbol, e.g. USDT. Omit for every coin.",
            "maxLength": 32
          },
          "chain": {
            "type": "string",
            "description": "Blockchain name or chain id, e.g. Tron or 1.",
            "maxLength": 32
          },
          "kind": {
            "type": "string",
            "enum": [
              "blacklist",
              "freeze",
              "seizure",
              "release",
              "sanctions"
            ],
            "description": "Restrict to one kind of action. \"blacklist\" is a deny-list entry in the token contract; \"freeze\" locks an account; \"seizure\" took the balance. Omit for all."
          },
          "scope": {
            "type": "string",
            "enum": [
              "recent",
              "all_time"
            ],
            "description": "Defaults to \"recent\": the last 6 months, with the wallet, block and transaction on every row. \"all_time\" ranks the whole record from its first event and names no wallet, transaction or block for any of it."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Rows to return, up to 50. Defaults to 10."
          }
        },
        "additionalProperties": false
      }
    }
  }
]

Lo que no es

Esto son datos de referencia, no asesoramiento. No es una decisión de cumplimiento ni una autorización.

Alcance, licencia y privacidad: la declaración completa

El registro, no un juicio

Una billetera sin nada registrado no tiene nada registrado en las monedas y cadenas que comprobamos, a la fecha de la respuesta, y eso es todo lo que significa.

No hay puntuación de riesgo, ni banda, ni opinión sobre ninguna dirección o persona. El estado de la máquina es limpio, restringido o desactualizado. La frase junto a él dice qué se encontró. Ninguno es un juicio sobre nadie.

Cada registro es un hecho fechado sobre lo que hizo un emisor, con el emisor como actor: "Tether restringió esta billetera en Ethereum el 2026-08-17", no "USDT te congeló". Cada "ninguno" indica qué cadenas y monedas cubre, y a qué fecha.

La lista completa no se publica aquí ni en ningún otro lugar. list_freeze_events devuelve el mismo feed publicado que muestra el sitio, o un mes a la vez dentro de los meses que la cuenta puede ver, y no se puede paginar más allá. get_biggest nombra billeteras solo dentro de esa misma ventana, y su vista de todos los tiempos no nombra ninguna. Las otras cuatro devuelven conteos, fechas o la única dirección que proporcionaste. Las direcciones de billetera en listas se muestran durante los últimos 6 meses sin cuenta, 12 meses con cuenta gratuita y en su totalidad en el plan Business. Cada conteo y total es el registro completo. Cualquier billetera, a cualquier edad, se puede encontrar preguntando por esa billetera.

No inventamos cifras en dólares. Un monto se devuelve en las unidades propias de la moneda donde el registro tiene uno, y una cifra en USD solo donde existe un precio certificado para esa moneda en ese bloque. El sitio sigue la misma regla y muestra un guion donde no hay precio. El servidor pone null allí en su lugar. No es el precio de hoy sobre un evento antiguo, y no es $0.00.

Preguntas frecuentes

¿Necesito una cuenta o una clave?

No. Cada herramienta es abierta y de solo lectura a partir del 12 de septiembre de 2026. Pega el endpoint y pregunta.

¿Devuelve una puntuación de riesgo?

No. Devuelve registros y conteos fechados, cada uno con la transacción que lo hizo. No caracteriza ninguna dirección ni persona.

¿Puedo descargar la lista completa de direcciones congeladas?

No. list_freeze_events devuelve el feed publicado, las mismas filas que muestra el sitio dentro de los últimos 6 meses, o un mes a la vez con el argumento month, y no se puede paginar más allá. Las direcciones de billetera en listas se muestran durante los últimos 6 meses sin cuenta, 12 meses con cuenta gratuita y en su totalidad en el plan Business. Cada conteo y total es el registro completo.

¿Qué URL pego?

https://mcp.eaglevirtual.com/mcp, incluyendo la ruta /mcp. No se admite ningún otro nombre de host.