Automating AML compliance on-chain (Part 1 of 2)
Ensure tokens you issue are only held by AML-screened parties, using Silent Data [Oracle] & Chainalysis
Web3 smart contracts have enabled parties to perform atomic exchanges where the rules of exchange are transparent and automatically enforced. This offers huge potential efficiencies to markets however in the cryptocurrency space it has also enabled a large amount of criminal activity - illicit cryptoasset transaction volumes hit $20.6 billion globally in 2023.
Silent Data [Oracle] can connect your smart contracts directly to the API of any AML compliance service without exposing your API keys to a third party. The AML API returns a risk assessment for an address based on configurable risk criteria. This allows the smart contract to execute based only on successful risk checks.
In this use case, a Token Contract checks whether the party receiving a token is AML compliant i.e. that the Destination Address is on the Whitelist. A token contract operates like a ledger, whereby token holders update the contract when transferring ownership of the token. Deploying a Whitelist contract is pertinent to decentralized exchanges (DEXs) and bridges to ensure parties exchanging assets on-chain are AML compliant.
In this example, Chainalysis Address Screening is the AML service leveraged.
The Token Contract queries the Whitelist Contract, triggering a Silent Data [Oracle] job. Oracle returns the result of the Chainalysis API request, ‘Passed Screening? T/F’, to the Whitelist Contract. The Token contract processes the transfer depending on the outcome of this check.
How do Silent Data [Oracle] and Chainalysis automatically enforce AML compliance?
Here is a brief overview of how to connect the Chainalysis API to your Whitelist contract using Silent Data [Oracle].
Step 0: Set up Chainalysis
Define which details of the risk assessment you want to verify. Create a secret to connect with the authorised Chainalysis API.
Step 1: Configure the job and trigger
A job is a set of steps that users assign Oracle to complete. Establish the starting point of the job, here it is a transaction from the whitelist contract passing the address you want to check to your Oracle Job.
Step 2: Configure the steps
Specify the kind of job you require. Set up Oracle to screen the wallet address on Chainalysis and retrieve the risk assessment.
Step 3: Configure the result
Connect your Callback contract (embedded within the whitelist contract) to Oracle in order to publish the results of the job back on-chain. In this case, Oracle will post the result of the AML check.
Step 4: Fund and publish your job
Finally, top up the funds on your Oracle account in order to trigger and ultimately publish the job itself. Oracle jobs need funding to run.
Step X: Deploy your Token Contract
Independent of these steps is your Token contract which depends on the Whitelist. A token contract is shown here but you can build any use case on top of your AML whitelist contract.
For step-by-step details check out part 2!
Consult our Documentation throughout for greater detail regarding these steps.