Pular para o conteúdo principal
POST
curl

Autorizações

x-api-key
string
header
obrigatório

Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.

Corpo

application/json
wallet_address
string
obrigatório

O endereço cripto ou identificador de rede a ser analisado. Deve corresponder à rede selecionada (por exemplo, um endereço com prefixo 0x e 40 caracteres hexadecimais para redes EVM). Alias: address.

Exemplo:

"0x94f1b9b64e2932f6a2db338f616844400cd58e8a"

blockchain
enum<string>

Identificador de rede opcional. Quando omitido, a rede é identificada pelo formato do endereço: endereços bc1, 1 e 3 são Bitcoin (BTC), endereços T são Tron (TRX) e chaves públicas base58 são Solana (SOL). Um endereço 0x é válido em todas as redes EVM, então omitir blockchain para ele retorna 422 com as redes candidatas em candidate_chains. A triagem gerenciada oferece suporte a BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), ARB (Arbitrum One), AVAX (Avalanche C-Chain), ADA (Cardano), XLM (Stellar) e HBAR (Hedera). USDT e USDC são aliases legados do Ethereum, não buscas em várias redes. A cobertura de provedores conectados varia. LIGHTNING exige um provedor conectado compatível. CELO (Celo), MODE (Mode) e PLUME (Plume) são analisados por meio de uma conta TRM Labs conectada; a triagem gerenciada retorna 400 para eles. Alias: currency.

Opções disponíveis:
BTC,
LIGHTNING,
ETH,
LTC,
XRP,
BCH,
DOGE,
TRX,
SOL,
MATIC,
BNB,
USDT,
USDC,
BASE,
OP,
ARB,
AVAX,
ADA,
XLM,
HBAR,
CELO,
MODE,
PLUME
Exemplo:

"ETH"

direction
enum<string>

Opcional. Indica se o endereço está sendo analisado como contraparte de entrada (depósito) ou de saída (saque). Aceita inbound, outbound, deposit ou withdrawal. Quando omitido, o padrão é uma análise neutra pré-transferência. Esse valor é repassado ao provedor apenas como contexto; ele não altera o risk_score, a severity nem os detalhamentos source_of_funds/destination_of_funds retornados, que são sempre retornados ambos, independentemente de direction. Portanto, alterar ou omitir direction não exige analisar o endereço novamente.

Opções disponíveis:
inbound,
outbound,
deposit,
withdrawal

Resposta

O resultado normalizado da triagem de carteiras.

provider
string
obrigatório

Provedor que realizou a triagem (por exemplo, merklescience, crystal).

screening_type
enum<string>
obrigatório

Sempre WALLET_SCREENING neste endpoint.

Opções disponíveis:
WALLET_SCREENING
risk_score
integer
obrigatório

Pontuação de risco normalizada de 0 a 100. Quanto maior, maior a exposição a entidades de risco. A Merkle Science classifica um endereço de 0 a 5, o que corresponde a 0, 15, 35, 55, 75 ou 95.

severity
enum<string>
obrigatório

Faixa de risco derivada de risk_score: 0-9 UNKNOWN, 10-39 LOW, 40-69 MEDIUM, 70-89 HIGH, 90-100 CRITICAL. UNKNOWN é a faixa mais baixa, não um estado separado de ausência de dados. Um risk_score 0 (o caso comum de endereço limpo) significa que não há avaliação adversa. Já uma pontuação diferente de zero na faixa de 1-9 é um sinal real, mas abaixo de LOW. Leia o risk_score, não apenas a faixa. Nunca trate UNKNOWN como uma classificação afirmativa de baixo risco ou de aprovação, e não o exiba como aprovado.

Opções disponíveis:
UNKNOWN,
LOW,
MEDIUM,
HIGH,
CRITICAL
status
enum<string>
obrigatório

Status do resultado da análise.

Opções disponíveis:
SCREENED,
PENDING,
ERROR
summary
string
obrigatório

Resumo legível do resultado da triagem.

wallet_address
string
obrigatório

O endereço analisado, devolvido na resposta.

blockchain
string
obrigatório

A blockchain que foi analisada.

source_of_funds
object[]
obrigatório

De onde o endereço recebeu fundos, atribuídos por entidade. Cada entrada é um detalhamento de exposição.

destination_of_funds
object[]
obrigatório

Para onde o endereço enviou fundos, atribuídos por entidade. Mesmo formato de item de source_of_funds, com exposure_direction = outgoing.

counterparty_connections
object[]
obrigatório

Entidades às quais o provedor atribui o endereço analisado. Para a Merkle Science, elas vêm das tags de proprietário e de usuário do próprio endereço, então a mesma entidade pode aparecer duas vezes, e não trazem fluxos de fundos: received_usd, sent_usd, received_hops e sent_hops são null e percentage é 0. Não tome decisões com base em risk_level ou is_direct aqui: use sanctions_hit, dominant_risk_category e risk_factors[].is_high_risk para o veredito, e exposure_type em source_of_funds/destination_of_funds para saber se a exposição é direta.

sanctions_hit
boolean
obrigatório

True se o endereço tem exposição direta ou indireta a sanções.

dominant_risk_category
string | null
obrigatório

Categoria de alto risco com maior peso, ou null quando nenhuma predomina (por exemplo, sanctioned, mixer, stolen_funds).

report_signature
string
obrigatório

Assinatura HMAC-SHA256 opaca sobre exatamente este resultado, restrita à sua aplicação. Não tem significado por si só: reenvie o corpo completo da resposta, sem modificações e incluindo este campo, para POST /v3/wallet-screening/pdf/ para gerá-lo como PDF. O endpoint de PDF rejeita a requisição com 400 se report_signature estiver ausente ou se qualquer campo assinado (por exemplo, risk_score, severity, sanctions_hit) tiver sido editado antes do reenvio.

transaction_hash
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

block_timestamp
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

total_value_usd
number | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

fee_usd
number | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

sender_rows
object[]

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre vazio em um resultado de triagem de carteiras.

receiver_rows
object[]

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre vazio em um resultado de triagem de carteiras.

transaction_flows
object[]

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre vazio em um resultado de triagem de carteiras.

transaction_flows_status
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

transaction_flows_error
string | null

Campo de triagem de transações, compartilhado com o formato do resultado. Sempre null em um resultado de triagem de carteiras.

network_nodes
object[]

Nós do grafo de exposição para a triagem de transações. Vazio em um resultado de Triagem de carteiras.

network_edges
object[]

Arestas do grafo de exposição para a triagem de transações. Vazio em um resultado de Triagem de carteiras.

pep_counterparty
boolean | null

Exposição como pessoa politicamente exposta. null quando não há nenhuma constatação de PEP disponível, o que ocorre hoje em todos os resultados, pois nenhum provedor a informa; false somente para um resultado de triagem explicitamente negativo. Não interprete null como uma verificação de PEP concluída.

risk_factors
object[]

Explicação ordenada de risk_score: o que levou a este veredito. Os provedores avaliam um endereço com o próprio modelo e retornam apenas um veredito (a Merkle Science retorna um inteiro de 0 a 5), então a pontuação sozinha não permite agir. A ordem é primeiro os de alto risco, depois o valor que passou por cada fator, limitada aos cinco mais fortes; source_of_funds e destination_of_funds sempre trazem o detalhamento completo. Um risk_score alto sem nenhuma entrada is_high_risk significa que o provedor não informou correspondência com sanções nem com entidade atribuída e avaliou o endereço apenas com o próprio modelo de exposição. O summary informa isso explicitamente.

raw_response
object

O payload próprio do provedor. O formato dele é específico de cada provedor e pode mudar sem aviso: leia os campos normalizados em vez de interpretá-lo.

Última modificação em 1 de novembro de 2026