AML
To keep Nest secure and globally compliant, we implemented a sub-second and seamless AML (Anti-Money Laundering) check that happens before users deposit into any Nest vault.
What You Need to Know
AML checks are required to deposit into Nest vaults and are powered by TRM Labs.
AML checks run on both the app and smart contracts (to ensure they can't be bypassed).
Policies are disclosed to asset issuers and protocols whose assets are available through Nest vaults.

How It Works
We use TRM, a leading blockchain intelligence provider, to run AML checks. Nest's legal team defines the rules, and Predicate helps us apply them securely and efficiently under the hood — so you don’t have to worry about a thing. In order to asses compliance for each vault you will need to grab the Slug of the vault using the below.
Fetch a list of vaults based on query parameters.
Exclude geo-restricted vaults.
Filter vaults by status (Live or ComingSoon).
Include hidden vaults in the response.
A list of vaults.
Invalid query parameters.
Server error.
GET /api/vaults HTTP/1.1
Host: app.nest.credit
Accept: */*
[
{
"vaultStatus": "ComingSoon",
"slug": "text",
"image": "text",
"name": "text",
"description": "text",
"tvl": 1,
"formattedTvl": "text",
"apy": 1,
"price": 1,
"isEstimatedApy": true,
"hasBoostedRewards": true,
"formattedApy": "text",
"formattedCooldownDays": "text",
"estimatedApy": 1,
"showLiveApy": true,
"featuredAssets": [
{
"title": "text",
"description": "text",
"image": "text",
"darkImage": "text",
"comingSoon": true,
"badgeSize": "sm"
}
],
"ethereum": {
"contractAddress": "text"
},
"plume": {
"contractAddress": "text"
}
}
]
You will then plug in the slug into the below API call to grab the compliance information
Fetch compliance information for a token using its slug.
Unique slug identifier for the token.
User address (Ethereum format).
^0x[a-fA-F0-9]{40}$
Chain ID for the compliance check.
Indicates if the compliance check is for deposit and bridge.
Compliance details.
Invalid query parameters.
Token not found.
Server error.
GET /api/{slug}/compliance?user=text&chainId=1 HTTP/1.1
Host: app.nest.credit
Accept: */*
{
"isCompliant": true,
"predicateMessage": {
"taskId": "text",
"expireByBlockNumber": 1,
"signerAddresses": [
"text"
],
"signatures": [
"text"
]
}
}
Need Help
If you have any questions or believe there’s an error, we’re here to help. Reach out in our Discord community and the team will get back to you promptly. You can also navigate to theDeveloperssection for more API details.
Last updated