Eagle Virtual USDT & USDC Blacklist Tracker
Verifique qualquer carteira contra o registro on-chain de congelamentos, listagens negras e apreensões de stablecoins (USDT, USDC e mais 442 moedas em 35 blockchains). Datado, citado, sem pontuações de risco. Servidor remoto, sem necessidade de conta.
Servidor MCP hospedado
npx add-mcp 'https://mcp.eaglevirtual.com/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
O registro de lista negra e congelamento, para assistentes de IA
Pergunte ao Claude, ChatGPT ou Cursor se a Tether, Circle ou qualquer outro emissor colocou uma carteira na lista negra, congelou ou apreendeu. É o mesmo registro deste site.
O que é
Estas ferramentas leem o registro de lista negra e congelamento de stablecoins: o que cada emissor, a empresa que criou uma moeda e pode congelá-la, fez com as carteiras. Cada resposta vem do mesmo registro ao vivo que este site mostra e informa a data em que foi lida.
| Item | Detalhe |
|---|---|
| Endpoint | https://mcp.eaglevirtual.com/mcp |
| Transporte Uma forma padrão de um assistente de IA chamar uma ferramenta externa. Seu assistente envia a pergunta ao nosso servidor e recebe registros datados. Você cola o endereço acima no seu assistente uma vez, e ele faz o resto. | HTTP Streamable: JSON-RPC via POST. GET é recusado com 405. |
| Especificação | Revisão MCP 2026-07-28 |
| Nome do servidor | eagle-virtual, versão 1.1.1 |
| Autenticação | Nenhuma. Todas as seis ferramentas apenas leem. Sem conta, um endereço de rede recebe 100 chamadas por dia. Com login ou envio de chave, as chamadas contam contra as 5.000 por dia da sua conta, ou contra o plano pago da sua chave. Chamadas dos próprios servidores da Anthropic, OpenAI e Perplexity não são contadas. |
| Hostname | https://mcp.eaglevirtual.com, ativo desde 22 de agosto de 2026. Este é o único endereço suportado. |
Como conectar
Cole https://mcp.eaglevirtual.com/mcp no seu cliente. Se um caminho de menu abaixo discordar da documentação do próprio cliente, siga a do cliente.
-
Claude (web e desktop)
Configurações → Conectores → Adicionar conector personalizado → cole https://mcp.eaglevirtual.com/mcp → Adicionar. Nos planos Team e Enterprise, um proprietário adiciona uma vez. -
ChatGPT
Ative o Modo desenvolvedor nas Configurações, adicione um servidor MCP remoto, insira https://mcp.eaglevirtual.com/mcp, e escolha sem autenticação. -
Claude Code, Cursor, VS Code ou qualquer outro cliente MCP
Use os trechos abaixo, cada um no próprio mcp.json do 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"
}
}
}
Leitura, indexação e acesso em massa
Mecanismos de busca e assistentes de IA são bem-vindos para ler, indexar e citar estas páginas. Para copiar o registro em massa, conte-nos o que você está construindo em sales@eaglevirtual.com.
Treinar um modelo com o registro, ou republicá-lo em massa, exige um acordo por escrito. As regras estão em /license.
Experimente estes
Cada prompt responde com registros datados, da ferramenta nomeada ao lado.
| Item | Detalhe |
|---|---|
| Quais controles a Circle realmente usou no USDC e quando foi a última vez que usou cada um? | get_token_policy: cada controle que ela usou, com datas e contagens. |
| Quantas carteiras a Tether colocou na lista negra em 2025 e como isso se compara a 2024? | get_token_statistics: contagens de USDT por ano, com eventos e carteiras. |
| Quais cadeias isso cobre e quão atualizado está? | get_coverage: cada cadeia e moeda coberta, e quão atualizada cada uma está. |
| A Tether já congelou ou colocou na lista negra esta carteira: TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81? | get_address_status: seu estado e um registro datado para cada evento. |
| Mostre-me congelamentos recentes de USDT na Tron. | list_freeze_events: as linhas publicadas mais recentes, USDT na Tron. |
| Qual é a maior lista negra de stablecoins e o maior congelamento já registrados? | get_biggest, chamado duas vezes: a maior lista negra e o maior congelamento desde 2015. |
A referência completa das ferramentas: cada ferramenta, campo e resposta
Consultando o servidor diretamente
Você não precisa de uma biblioteca cliente. O servidor fala JSON-RPC 2.0 sobre HTTP: um POST para cada chamada a https://mcp.eaglevirtual.com/mcp. As seis ferramentas de leitura não precisam de conta nem chave, e GET é respondido com 405. Quatro cabeçalhos são obrigatórios: Content-Type: application/json; Accept: application/json, text/event-stream; MCP-Protocol-Version: 2026-07-28; e Mcp-Method nomeando o método JSON-RPC. Uma chamada tools/call também precisa de Mcp-Name nomeando a ferramenta. Como o servidor implementa a revisão de protocolo 2026-07-28, toda solicitação também inclui o envelope por solicitação em params._meta (a versão do protocolo, o nome e a versão do seu cliente e suas capacidades). Uma solicitação sem isso é recusada com um erro JSON-RPC que informa qual chave está faltando. Uma solicitação cujos cabeçalhos e corpo discordam é recusada com -32020 em vez de ser adivinhada.
Os mesmos formatos de chamada funcionam para todas as ferramentas: tools/list para ler os seis esquemas e depois tools/call com o nome da ferramenta e seus argumentos. O exemplo abaixo verifica uma carteira. A resposta que segue é o que o servidor ao vivo retornou para ela em 12 de setembro de 2026, reduzida a um registro.
Solicitação: 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": {}
}
}
}'
O que vem de volta
Um resultado JSON-RPC. Seu content[0].text é a resposta como uma string JSON, e seu structuredContent é a mesma resposta como um objeto. O estado é um de restricted, clean ou stale. Cada registro inclui um título, um texto de uma frase que nomeia o emissor como o ator, uma url neste site para citar, os dados do registro (incluindo o valor e o valor em dólares quando o registro os tem) e um bloco de metadados com a data de referência e a licença. known_name é o nome primário ENS verificado da carteira quando ela tem um, e null caso contrário, como nesta amostra. Nenhum outro tipo de nome é jamais servido, então known_name_verified é true sempre que um nome está presente. Uma carteira sem nada no registro responde clean apenas enquanto podemos garantir por todas as cadeias, e stale caso contrário. Não é um clean simples sobre uma lacuna.
Resposta, reduzida a um 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"
}
}
]
}
}
}
As seis ferramentas
O servidor lista seis ferramentas, nesta ordem, e cada uma delas apenas lê. Elas respondem com contagens, datas, o único endereço que você forneceu, o feed publicado ou os maiores valores registrados. Nada aqui escreve nada nem precisa de conta.
Toda resposta tem o mesmo formato: um estado ou uma contagem, uma lista de registros e um bloco de metadados. Cada registro é um objeto que você pode citar: um id, um título, uma url neste site, um texto datado de uma frase com o emissor como ator e um bloco de dados com campos estruturados. Uma carteira com seis eventos registrados volta como seis registros, cada um apontando para a página da carteira aqui.
O bloco de metadados tem source, as_of (a data do evento registrado mais recente, não a data de hoje), corpus_as_of, exported_at (quando publicamos pela última vez os dados dos quais este servidor responde) e license. Quando não podemos garantir por uma cadeia no momento da chamada, not_vouched_for a nomeia: a cadeia, se nunca foi escaneada ou está atrasada, e o último bloco verificado. coverage_note diz o mesmo em uma frase. Quando nossos dados não respondem de forma alguma, coverage_note diz isso em vez disso. Nenhum caso é jamais deixado em silêncio.
| Item | Detalhe |
|---|---|
| get_address_status | Dê a ele uma carteira. Ele retorna cada congelamento, apreensão, inclusão em lista negra ou listagem de sanções on-chain registrada contra ela, com a transação e o bloco de cada um. Estado: clean, restricted ou stale. |
| get_token_statistics | Contagens por moeda, cadeia, mês ou ano. Não retorna endereços. |
| get_token_policy | Para cada moeda, quais controles de restrição o emissor realmente usou, quantas vezes, e as primeiras e mais recentes datas. Não retorna endereços. |
| get_coverage | As cadeias e moedas cobertas, a data de referência e quais cadeias não podemos garantir agora. |
| list_freeze_events | O feed publicado de eventos recentes (as mesmas linhas que a página de eventos mostra, dentro dos últimos 6 meses), filtrável por moeda, cadeia, tipo e data. Dê a ele um mês para listar um mês inteiro em vez disso: os últimos 6 meses sem conta, os últimos 12 meses com conta gratuita e todos os meses no plano Business. É uma das duas ferramentas que retornam endereços que você não forneceu (a outra é a visualização padrão de get_biggest), e não pode ser paginada além. |
| get_biggest | As maiores inclusões em lista negra, congelamentos, apreensões e liberações registradas, das maiores para as menores, filtráveis por moeda, cadeia e tipo. Uma restrição é classificada pelo saldo que a carteira detinha. Uma apreensão é classificada pelo saldo tomado. Cada linha diz qual. A visualização padrão é a mesma janela de 6 meses e nomeia a carteira. scope all_time cobre todo o registro desde 2015 e não nomeia carteira, transação ou bloco. |
get_address_status: verifique uma carteira
Dê a ele um endereço em qualquer formato que sua cadeia use (EVM, TRON, Solana ou Stellar). Maiúsculas e minúsculas não importam. O endereço é normalizado antes da consulta, então um endereço com checksum e sua forma em minúsculas são a mesma carteira.
O que vem de volta: o endereço completo, o estado (clean, restricted ou stale), um título ("Nenhum congelamento, apreensão ou lista negra registrado", "N registros encontrados" ou "Não podemos garantir por isso agora") e um registro para cada evento registrado. Cada registro tem o emissor, a moeda, a cadeia, a data, o bloco, o hash da transação, a assinatura do evento e o valor e o valor em dólares quando o registro os tem. known_name é o nome primário ENS verificado e atual da carteira, ou null. Um nome ENS que não é o primário, um rótulo externo ou um nome relatado nunca é servido, então known_name_verified é true sempre que um nome está presente. Cada registro também inclui o contrato e o nome completo da moeda, a palavra de tipo que a página imprime e a base em dólares em inglês simples. Uma string que não é um endereço válido em nenhuma cadeia que verificamos retorna recognized: false e nenhuma consulta é executada, então um erro de digitação não pode ser lido como uma carteira limpa.
stale significa que não pudemos garantir pela resposta naquele momento. Ou nossos dados não responderam, ou uma cadeia da qual a resposta depende estava atrasada. É uma declaração sobre nós, não sobre a carteira.
Valores e valores em dólares são retornados onde o registro os tem, e somente lá. amount é a quantidade nas unidades próprias da moeda. amount_unit nomeia a moeda, e amount_basis diz de onde veio o valor: registrado, como o próprio evento o nomeou, ou medido on-chain. Um valor medido é o saldo que a carteira detinha no bloco do evento para uma restrição, ou no bloco anterior para uma apreensão, porque o bloco da apreensão o destruiu. usd é o valor em dólares a um preço certificado para aquela moeda naquele bloco, formatado ao centavo, com usd_basis nomeando a fonte do preço. Onde nenhum preço certificado existe para aquele bloco, usd é null. Não é o preço de hoje sobre um evento antigo, e não é $0,00. Onde o registro não tem valor algum, amount é null e amount_note diz isso.
| Item | Detalhe |
|---|---|
| address | Obrigatório. O endereço da carteira, em qualquer formato que a cadeia use; até 120 caracteres. |
get_token_statistics: contagens, sem endereços
Contagens de congelamentos, apreensões e inclusões em lista negra registrados, agrupados por moeda, cadeia, mês ou ano, com a data do primeiro evento e a data de referência. As contagens de carteiras são distintas dentro de cada agrupamento e não somam o total de propósito: uma carteira restrita por dois emissores é uma carteira no geral e uma em cada uma de duas linhas, e a resposta diz isso.
O total é contado sobre cada moeda que verificamos, o que inclui moedas que não são stablecoins. A resposta o rotula dessa forma em vez de deixar "carteiras de stablecoins" ser inferido.
| Item | Detalhe |
|---|---|
| token | Opcional. Um símbolo de moeda, ex.: USDT. Omita para todas as moedas. |
| chain | Opcional. Um nome de cadeia ou id de cadeia, ex.: Ethereum ou 1. |
| group_by | Opcional. Um de token, chain, month, year, overall. Padrão: token. |
get_token_policy: o que um emissor fez
Para uma moeda, o registro de quais controles de restrição o emissor realmente usou (congelar, colocar em lista negra, tomar um saldo, levantar uma restrição), cada um com sua assinatura de evento on-chain, quantas vezes, e as primeiras e mais recentes datas, nas cadeias que verificamos, conforme a data as_of na resposta.
Ele relata o que aconteceu. Ele não relata do que um contrato é capaz: a inspeção de capacidade de contrato não é publicada, o campo contract_capability é null em vez de false, e a nota ao lado diz que uma ausência de eventos registrados não é evidência de que um controle está ausente. Uma moeda sem nada registrado volta como nada registrado, datado e escopado. Não volta como "não pode congelar".
| Item | Detalhe |
|---|---|
| token | Opcional. Um símbolo de moeda, ex.: USDT, USDC, EURC. Omita para todas as moedas registradas. |
get_coverage: o que verificamos e quão atualizado está
Não recebe argumentos. Retorna as redes e moedas cobertas, o número de eventos registrados, as datas do primeiro evento e da última atualização, um registro para cada rede indicando se podemos garantir sua validade no momento, e a mesma lista not_vouched_for que todas as outras ferramentas incluem. all_lanes_current é true, false ou null. É null quando nossos dados não puderam ser consultados, porque "não conseguimos verificar" não deve ser lido como "tudo está atualizado".
Chame-o antes de confiar em uma resposta sobre uma rede ou moeda. Uma rede que não estamos verificando aparece como não verificada atualmente, e a ausência de registros para ela não significa nada.
list_freeze_events: o feed publicado
Os mesmos eventos recentes que a página de eventos mostra (os últimos 6 meses, limitados ao feed publicado), filtráveis por moeda, rede, tipo e data, até 100 linhas em uma chamada e 25 por padrão. Cada linha é um registro que cita a página daquela carteira.
Forneça um mês (AAAA-MM) para listar um mês inteiro registrado, as mesmas linhas que a página de eventos mostra para aquele mês. Quais meses são alcançados depende da conta: os últimos 6 meses sem conta, os últimos 12 meses com conta gratuita e todos os meses no plano Business. Um mês fora disso responde com um erro chamado window e a frase que a página de eventos mostra. Toda resposta informa sua janela em window_months e window_source. Uma linha de mês mostra o valor em dólar americano e nenhuma quantidade nativa. get_address_status mostra a quantidade.
É uma amostra publicada, não o registro completo, e a resposta diz isso: subset_note informa o tamanho da amostra e que não há como paginar além dela, e matched_in_published_subset e truncated indicam o que os filtros atingiram. Não há cursor, offset, busca por prefixo nem "o que mudou desde". Cada um desses entregaria a lista completa linha por linha. Para uma carteira, use get_address_status. Para totais, use get_token_statistics.
| Item | Detalhe |
|---|---|
| token | Opcional. Um símbolo de moeda, ex.: USDT. |
| chain | Opcional. Um nome de rede ou ID de rede, ex.: Tron ou 1. |
| kind | Opcional. Um de blacklist, freeze, seizure, release, sanctions, delisting. |
| since | Opcional. Apenas eventos nesta data ou posteriores, AAAA-MM-DD. |
| month | Opcional. Um mês inteiro registrado, AAAA-MM, em vez do feed recente. Os últimos 6 meses sem conta, os últimos 12 meses com conta gratuita e todos os meses no plano Business. |
| limit | Opcional. Linhas a retornar, de 1 a 100. Padrão: 25. |
get_biggest: os maiores valores registrados
Blacklistings, congelamentos, apreensões e liberações ordenados por valor, do maior para o menor. Filtre por moeda, rede ou tipo.
Um blacklisting ou congelamento é classificado pelo saldo que a carteira DETINHA quando foi restringida. Uma apreensão é classificada pelo saldo que foi TOMADO. São duas quantidades diferentes e o registro as mantém separadas. Cada linha informa qual base usou: medida no bloco do evento para uma restrição, e no bloco anterior para uma apreensão, porque o bloco da apreensão destruiu o saldo. Uma classificação que as misturasse compararia dinheiro congelado com dinheiro perdido.
A visão padrão cobre a mesma janela de 6 meses que o feed publicado, e inclui a carteira, o bloco e a transação para cada linha. Nosso registro remonta a 2015, então os maiores eventos nele provavelmente são mais antigos que essa janela.
Para esses, passe scope all_time. Essa classificação cobre todo o registro e NÃO nomeia NENHUMA carteira, NENHUMA transação e NENHUM bloco para qualquer linha. Deixá-los de fora é o que permite ir tão longe. Endereços de carteiras em listas aparecem nos últimos 6 meses sem conta, 12 meses com conta gratuita e integralmente no plano Business. Cada contagem e total é o registro completo. Uma classificação de valores que não identifica ninguém não é uma lista de carteiras, então a janela não se aplica a ela. O que você obtém é o valor, a moeda, a rede, o emissor e a data.
Um valor aparece apenas onde o registro o possui. Onde não possui, a linha é omitida da classificação em vez de classificada como zero. Um zero colocaria uma carteira cujo valor nunca registramos abaixo de uma cujo valor era genuinamente pequeno, e isso é uma afirmação sobre ambas que não podemos fazer.
| Item | Detalhe |
|---|---|
| token | Opcional. Um símbolo de moeda, ex.: USDT. Omita para todas as moedas. |
| chain | Opcional. Um nome de rede ou ID de rede, ex.: Tron ou 1. |
| kind | Opcional. Um de blacklist, freeze, seizure, release ou sanctions. Omita para todos. |
| scope | Opcional. recent (o padrão) são os últimos 6 meses e nomeia a carteira, o bloco e a transação. all_time cobre todo o registro desde 2015 e não nomeia nenhum deles. |
| limit | Opcional. Linhas a retornar. Padrão: o tamanho padrão de página do servidor. |
Esquema de ferramentas compatível com OpenAI
As seis ferramentas como definições de função, no formato que a API chat-completions da OpenAI e os frameworks que a copiam esperam: um tipo, e uma função com nome, descrição e parâmetros. Os objetos de parâmetros são os próprios esquemas de entrada do servidor, inalterados. Um teste falha se este bloco e o servidor divergirem.
Um agente que não fala MCP pode mostrar isso ao seu modelo e retransmitir cada chamada ao endpoint acima como uma solicitação MCP tools/call com os mesmos argumentos. Um agente que fala MCP deve apenas conectar. O servidor lista as mesmas seis.
tools, no formato de chamada de função da 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
}
}
}
]
O que não é
São dados de referência, não aconselhamento. Não é uma decisão de conformidade nem uma liberação.
Escopo, licença e privacidade: a declaração completa
O registro, não um julgamento
Uma carteira sem nada registrado não tem nada registrado nas moedas e redes que verificamos, na data da resposta, e isso é tudo o que significa.
Não há pontuação de risco, faixa ou opinião sobre qualquer endereço ou pessoa. O estado da máquina é limpo, restrito ou desatualizado. A frase ao lado diz o que foi encontrado. Nenhum dos dois é um julgamento sobre ninguém.
Cada registro é um fato datado sobre o que um emissor fez, com o emissor como ator: "Tether restringiu esta carteira na Ethereum em 2026-08-17", não "USDT congelou você". Cada "nenhum" informa quais redes e moedas cobre e a partir de qual data.
A lista completa não é publicada aqui nem em nenhum lugar. list_freeze_events retorna o mesmo feed publicado que o site mostra, ou um mês por vez dentro dos meses que a conta pode ver, e não pode ser paginado além. get_biggest nomeia carteiras apenas dentro dessa mesma janela, e sua visão de todos os tempos não nomeia nenhuma. As outras quatro retornam contagens, datas ou o único endereço que você forneceu. Endereços de carteiras em listas aparecem nos últimos 6 meses sem conta, 12 meses com conta gratuita e integralmente no plano Business. Cada contagem e total é o registro completo. Qualquer carteira, de qualquer idade, pode ser encontrada perguntando sobre ela.
Não inventamos valores em dólar. Um valor é retornado nas unidades da própria moeda onde o registro o possui, e um valor em USD apenas onde existe um preço certificado para essa moeda naquele bloco. O site segue a mesma regra e mostra um traço onde não há preço. O servidor coloca null lá. Não é o preço de hoje em um evento antigo, e não é $0,00.
Perguntas que as pessoas fazem
Preciso de uma conta ou chave?
Não. Toda ferramenta é aberta e somente leitura a partir de 12 de setembro de 2026. Cole o endpoint e pergunte.
Retorna uma pontuação de risco?
Não. Retorna registros datados e contagens, cada um com a transação que o fez. Não caracteriza nenhum endereço ou pessoa.
Posso baixar a lista completa de endereços congelados?
Não. list_freeze_events retorna o feed publicado, as mesmas linhas que o site mostra dentro dos últimos 6 meses, ou um mês por vez com o argumento month, e não pode ser paginado além. Endereços de carteiras em listas aparecem nos últimos 6 meses sem conta, 12 meses com conta gratuita e integralmente no plano Business. Cada contagem e total é o registro completo.
Qual URL eu colo?
https://mcp.eaglevirtual.com/mcp, incluindo o caminho /mcp. Nenhum outro hostname é suportado.