Come viene attivato lo screening
Lo screening crypto viene eseguito automaticamente quando sono soddisfatte entrambe le condizioni:- La transazione ha
currency_kind: "crypto"nei dettagli della transazione - Il monitoraggio delle transazioni è attivo nelle tue impostazioni dell’applicazione
include_crypto_screening nel payload di creazione della transazione:
Selezione dell’asset e della rete
L’asset e la rete sono campi separati. Impostatransaction_details.currency al simbolo del token, transaction_details.currency_kind a crypto e transaction_details.crypto_params.crypto_chain alla rete.
Ad esempio, questo frammento registra un token personalizzato su Base:
BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE, OP, ARB, AVAX, ADA, XLM e HBAR.
BASE indica Base, OP indica Optimism, ARB indica Arbitrum One, AVAX indica Avalanche C-Chain, ADA indica Cardano, XLM indica Stellar e HBAR indica Hedera.
Sono accettati anche i nomi comuni delle reti, ad esempio POLYGON o POL per MATIC, BSC per BNB e TRON per TRX.
Celo, Mode e Plume non sono coperti dall’integrazione gestita: vengono sottoposti a screening tramite un account TRM Labs collegato (CELO, MODE, PLUME).
I provider collegati hanno una copertura propria; Lightning ha requisiti aggiuntivi, descritti più avanti.
Specifica sempre crypto_chain per un token, inclusi USDT e USDC.
Se manca, la valuta viene usata come rete, e USDT e USDC ricavano la rete dall’hash della transazione o, in assenza di hash, dall’indirizzo del wallet.
Un hash Tron o Solana seleziona Tron o Solana.
Un hash 0x è identico su ogni rete EVM, quindi per USDT, USDC ed ETH Didit lo cerca su Ethereum, BNB Chain, Polygon, Base, Arbitrum e Optimism ed esegue lo screening della transazione sulla rete in cui viene trovato.
ETH è incluso perché è nativo su Ethereum, Base, Arbitrum e Optimism ed è trasferito anche su BNB Chain come token BEP-20 con bridging.
Se nessuna rete contiene l’hash, oppure se le reti non possono essere verificate in quel momento, la transazione non viene sottoposta a screening e lo screening non viene addebitato.
In questo caso custom_values.aml_screening_status assume il valore FAILED, custom_values.aml_screening_error spiega il motivo e una transazione approvata passa in revisione.
Una transazione USDT o USDC senza hash sottopone a screening un wallet, e l’indirizzo del wallet seleziona la rete.
Un indirizzo Tron viene sottoposto a screening su Tron e un indirizzo Solana su Solana.
Un indirizzo 0x viene sottoposto a screening sulla prima rete, tra Ethereum, BNB Chain, Polygon, Base, Arbitrum e Optimism, in cui ha inviato una transazione o detiene il token.
Un indirizzo 0x senza attività su nessuna di queste reti, oppure uno le cui reti non possono essere verificate in quel momento, viene sottoposto a screening su Ethereum.
Inviare crypto_chain evita questa ricerca.
Non sostituire mai ETH con la rete effettiva.
Registrare un simbolo di token personalizzato non garantisce che i suoi trasferimenti siano indicizzati per lo screening tramite hash della transazione.
La copertura del token deve essere verificata usando il contratto del token e la rete.
Una transazione creata non è la prova di uno screening riuscito: controlla lo stato dello screening e il risultato del provider prima di considerarla sottoposta a screening.
In entrata vs in uscita
transaction_details.direction è obbligatorio perché indica a Didit quale lato del trasferimento deve essere sottoposto a screening.
Per lo screening prima del trasferimento, ometti
transaction_details.payment_reference_id: Didit esegue lo screening del wallet sull’indirizzo pertinente. Per lo screening dopo il trasferimento, includi l’hash della transazione blockchain in transaction_details.payment_reference_id: Didit esegue lo screening della transazione e memorizza i dati di riepilogo della transazione quando è disponibile l’arricchimento on-chain.
Rete Lightning
Impostatransaction_details.crypto_params.crypto_chain su LIGHTNING per lo screening sulla rete Lightning.
Lo screening Lightning richiede un provider BYOK Elliptic o Chainalysis collegato nel Marketplace della console.
I provider gestiti Merkle Science, Crystal e TRM Labs non accettano LIGHTNING: Didit rifiuta queste richieste con 400 prima dello screening o della fatturazione.
Con Elliptic, Didit effettua lo screening dell’identificatore Lightning fornito tramite l’analisi dei wallet Lightning BTC di Elliptic.
Con Chainalysis, Didit invia un trasferimento Lightning a KYT quando è presente transaction_details.payment_reference_id.
Campi obbligatori
Per tutte le richieste di screening crypto, invia:transaction_details.direction:INBOUNDoppureOUTBOUNDtransaction_details.currency_kind:cryptotransaction_details.currency: il simbolo dell’asset, per esempioBTC,ETH,USDCo il tuo token personalizzato- Un indirizzo nel partecipante selezionato in base alle regole di direzione sopra riportate
transaction_details.payment_reference_id: l’hash della transazione blockchain
Esempio: screening in uscita prima del trasferimento
Prima di inviare i fondi, crea una transazione crypto in uscita senza hash della transazione. Didit esegue lo screening del wallet di destinazione.Esempio: screening in entrata dopo il trasferimento
Dopo aver ricevuto i fondi, includi l’hash della transazione. Didit esegue lo screening dell’hash limitato al tuo indirizzo di deposito e arricchisce la risposta con le informazioni di riepilogo della transazione, quando disponibili.Provider supportati
Configura il provider preferito in Transazioni > Impostazioni > Provider Preferences nella Business Console, oppure collega la tua chiave del provider dal Marketplace della console (categoria Crypto monitoring).
LIGHTNING è supportato solo dalle configurazioni Chainalysis ed Elliptic con chiave connessa.
Risultati dello screening
Ogni screening produce un risultato standardizzato, indipendentemente dal provider utilizzato.Stato dello screening
custom_values.aml_screening_status indica se una transazione è stata sottoposta a screening.
Una transazione che altrimenti verrebbe approvata passa a
IN_REVIEW finché il suo screening non è COMPLETED.
Hash delle transazioni non ancora indicizzati
Un provider di analisi blockchain può impiegare alcuni minuti per indicizzare un trasferimento appena minato e, fino a quel momento, non può sottoporlo a screening. Quando il provider risponde che non ha ancora indicizzato un hash di transazione e la rete stessa conferma che la transazione esiste, Didit ripete lo screening in background invece di far fallire lo screening:- La risposta alla creazione mostra già
custom_values.aml_screening_statuscomePENDING, con il motivo incustom_values.aml_screening_error. Una transazione approvata viene trattenuta inIN_REVIEWcondecision_reason_codeaml_screening_pending. - Didit ripete lo screening dell’hash della transazione circa 2, 12 e 42 minuti dopo la creazione della transazione.
- Quando un nuovo tentativo completa lo screening, il risultato viene salvato come qualsiasi altro screening e lo screening viene addebitato una sola volta.
Le regole vengono eseguite di nuovo sui dati dello screening, il blocco viene rimosso e ricevi un webhook
transaction.status.updatedcon lo stato che la transazione ha dopo le regole, che sia cambiato o no. Una transazione rifiutata o risolta da un revisore nel frattempo mantiene il suo stato. - Se il provider non ha ancora indicizzato l’hash della transazione dopo l’ultimo nuovo tentativo, lo screening termina con
FAILED, come sarebbe accaduto alla creazione: la transazione restaIN_REVIEWcondecision_reason_codeaml_screening_failed, e lo screening viene addebitato come sarebbe stato addebitato un fallimento alla creazione: nessun costo per lo screening gestito da Didit, una richiesta al provider se l’ultimo tentativo ha raggiunto il provider collegato. I tentativi precedenti, sottoposti a nuovo tentativo, non vengono mai addebitati. - Se il saldo non è più sufficiente a coprire lo screening quando viene eseguito un nuovo tentativo, lo screening termina con
FAILEDe nulla viene addebitato.
Punteggio di rischio e gravità
Ogni wallet o transazione sottoposti a screening riceve:- Punteggio di rischio (0–100): punteggi più alti indicano una maggiore esposizione a entità rischiose
- Livello di gravità: derivato dal punteggio,
LOW,MEDIUM,HIGHoCRITICAL
Analisi dell’origine dei fondi
Una suddivisione percentuale dell’origine dei fondi, classificata per tipo di entità:
Ogni entità della suddivisione include la percentuale di fondi, gli importi ricevuti e inviati e se la connessione è diretta o indiretta.
Tabella dell’esposizione
Una tabella dell’esposizione che mostra le entità di origine, destinazione e controparte, includendo:- Nome e categoria dell’entità
- Connessione diretta o indiretta (distanza in hop)
- Importi ricevuti e inviati
- Livello di rischio per entità
Grafo della rete
Una rappresentazione visiva a nodi e archi delle relazioni di transazione del wallet:- Nodi rappresentano wallet, exchange, servizi e altre entità
- Archi rappresentano le transazioni tra i nodi, con importi e hash delle transazioni
- Metriche includono statistiche a livello di grafo, come centralità e profondità
Integrazione con le regole
I risultati dello screening alimentano direttamente il motore delle regole. Didit include regole predefinite che si attivano automaticamente in base ai dati dello screening:Campi dello screening per le regole
Lo screening crypto scrive queste chiavi neicustom_values della transazione, così le regole possono usarle come custom_values.<key>:
Usa
wallet_sanctioned per bloccare i trasferimenti verso un wallet sanzionato senza rifiutare i trasferimenti verso le grandi piattaforme di scambio che hanno solo un’esposizione indiretta.
Usa sanctions_hit o aml_sanctions_exposure_pct per sottoporre a revisione o assegnare un punteggio all’esposizione.
La regola predefinita Controparte sanzionata rifiuta quando wallet_sanctioned è true, mentre la regola predefinita Esposizione a sanzioni invia alla revisione i wallet con sola esposizione.
Le due non si applicano mai alla stessa transazione, quindi un wallet sanzionato viene sempre rifiutato.
Se hai installato Controparte sanzionata prima di questa modifica, Didit l’ha spostata su wallet_sanctioned per te e ha aggiunto Esposizione a sanzioni nella stessa modalità, quindi un trasferimento che la vecchia regola rifiutava per la sola esposizione ora va in revisione.
Al termine dello screening, Didit rivaluta automaticamente tutte le regole sui dati arricchiti della transazione e attiva gli eventuali webhook applicabili.
Prossimi passi
Invio delle transazioni
Come inviare le transazioni, compresi i dettagli del wallet crypto.
Regole e punteggi
Come i risultati dello screening alimentano il motore delle regole.
Guida alla console
Visualizzazione nella console dell’analisi crypto, dell’origine dei fondi e dei grafici di rete.