How it works
Your integration is a server that exposes two endpoints that Wavy Node calls:GET /users/{foreign_user_id}— Wavy Node requests user data from your system for compliance checks.POST /webhook— Wavy Node sends you real-time alerts when suspicious activity is detected.
Wallet-to-user matching
The match between wallets and users happens when you register addresses in our system. When you create an address via the API, you include theforeign_user_id, which is the user’s ID in your system. This is how we know which user owns each wallet.
If a user has multiple wallets, simply register each wallet with the same foreign_user_id. We handle the linking automatically.
When we need user data (for example, to generate a compliance report), we call your integration endpoint /users/{foreign_user_id}. You must return the required user data for each legislation you have enabled in your project.
For example, if you have Mexican legislation active, all users must include the mexico field populated with the user’s personal and fiscal information:
@wavynode/utils package.
| Active Legislation | Required Field | Content |
|---|---|---|
| Mexico (MX) | mexico | Personal data, RFC/CURP, address, ID document |
| Colombia (CO) | colombia | User data required by Colombian AML regulations |
Integration flow
The integration flow works like this:Register addresses for monitoring
Use
POST /projects/{projectId}/addresses to add wallet addresses you want to monitor. Include the foreign_user_id parameter to link each wallet to a user in your system.Wavy Node monitors on-chain activity
Wavy Node watches your registered addresses for suspicious transactions, regulatory violations, and interactions with blacklisted wallets.
Wavy Node requests user data when needed
When Wavy Node needs user information (e.g., to generate a compliance report), it calls your
GET /users/{foreign_user_id} endpoint. You must return the required user data for all the legislations you have enabled in your project. See the type definitions in @wavynode/utils for the exact fields required by each legislation.Getting started
There are two ways to create a new integration:Use the template
A ready-to-go Nitro application with all required endpoints and authentication already set up.
Build from scratch
Use any framework or language. Start by setting up authentication.
@wavynode/utils package
We provide an npm package with utilities to simplify the integration process:
validateSignature— Verify the authenticity of requests from Wavy Node.- Type definitions for each legislation’s required user data (e.g.,
MexicoUserData,ColombiaUserData).
Next steps
Authentication
Learn how to verify requests from Wavy Node.
Endpoints
Implement the required endpoints for your integration.
API Reference
Explore the full API documentation.